[go: up one dir, main page]

JP2018514868A - 改良された命令セットを有する中央処理ユニット - Google Patents

改良された命令セットを有する中央処理ユニット Download PDF

Info

Publication number
JP2018514868A
JP2018514868A JP2017554326A JP2017554326A JP2018514868A JP 2018514868 A JP2018514868 A JP 2018514868A JP 2017554326 A JP2017554326 A JP 2017554326A JP 2017554326 A JP2017554326 A JP 2017554326A JP 2018514868 A JP2018514868 A JP 2018514868A
Authority
JP
Japan
Prior art keywords
volatile memory
integrated circuit
segment
protection
instruction
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
JP2017554326A
Other languages
English (en)
Other versions
JP2018514868A5 (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.)
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 JP2018514868A publication Critical patent/JP2018514868A/ja
Publication of JP2018514868A5 publication Critical patent/JP2018514868A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)
  • Advance Control (AREA)

Abstract

集積回路は、不揮発性メモリと結合される中央処理ユニットを伴う、マスタ処理コアと、マスタ処理コアから独立して動作し、揮発性プログラムメモリと結合される中央処理ユニットを有する、スレーブ処理コアとを有し、マスタ中央処理ユニットは、プログラム命令をスレーブ処理コアの不揮発性メモリの中に転送するように構成され、プログラム命令の転送は、マスタ処理コアの中央処理ユニット内で専用命令を実行することによって行われる。

Description

(関連特許出願)
本願は、2015年4月30日に出願された共有に係る米国仮特許出願第62/154,927号に対する優先権を主張するものであり、該米国仮特許出願は、あらゆる目的のために参照により本明細書中に援用される。
(技術分野)
本開示は、中央処理ユニット(CPU)に関し、特に、デジタル信号処理ユニット(DSP)を伴うマイクロコントローラに関する。本開示はさらに、マルチプロセッサ集積回路デバイスに関し、特に、複数のプロセッサを伴うマイクロコントローラに関する。
(背景)
内蔵システムは、概して、中央処理ユニット(CPC)と、メモリと、複数の周辺デバイスとを備え、単一チップシステムまたは単一チップマイクロコントローラを形成する。多くの高度なシステムは、1つを上回るCPUを備える。CPUはさらに、本願の譲受人によって製造されたdsPICコア等のデジタル信号処理能力を有するように拡張されてもよい。図1は、そのような処理コアのブロック図を示す。図から分かるように、本コアは、X Data RAMおよび別個のY Data RAM等の典型的デジタル信号処理能力と、RAMの両方が並行してアクセスされ得るようにRAMおよびレジスタファイルと結合されるDSPエンジンとを有する。本処理コアの他の典型的要素も、示される。加えて、本従来のDSP拡張マイクロコントローラは、図1の下に、システムバスを通してコアと結合されるある周辺デバイスを示す。図2は、レジスタファイルおよびDSPエンジンのアキュムレータのワーキングレジスタならびに他の典型的DSPレジスタ等のコアのレジスタを示す。図3は、図1のブロック図のDSPエンジンのより詳細なブロック図を示す。処理コアは、図1−3に示されるように、デジタル信号処理能力を備える、単一処理コアである。これは、コアのうちの1つとしてマルチコアデバイス内で使用されることができる。
特に、例えば、そのコアのうちの少なくとも1つ内に信号処理能力を備えるデュアルコアマイクロコントローラ等のマルチコアデバイス内で使用されるとき、そのような処理コアのための改良された命令セットの必要性がある。
マルチプロセッサコアマイクロコントローラは、完全に分離されたコアを用いて設計されてもよく、各コアは、異なるシステムクロック上で動作してもよい。したがって、2つまたはそれを上回るコア間で通信する能力を提供するために、具体的通信インターフェースが、必要である。特に、マルチプロセッサデバイス上のプロセッサメモリ間でコード保護されたデータを移動させるための手段が、必要とされる。ソリューションは、完全に構成可能であるが、シリコン使用に関して効率的である必要があった。
マルチプロセッサマイクロコントローラのマスタ−スレーブ構成では、プログラムがスレーブの中にロードされた後もコード保護が維持されながら、デュアルコアスレーブプロセッサプログラムロード/検証方法論のためのサポートが必要とされる。
ある実施形態によると、集積回路は、不揮発性メモリと結合される中央処理ユニットを有する、マスタ処理コアと、マスタ処理コアから独立して動作し、揮発性プログラムメモリと結合される中央処理ユニットを有する、スレーブ処理コアとを備えてもよく、マスタ中央処理ユニットは、プログラム命令をスレーブ処理コアの不揮発性メモリの中に転送するように構成され、該プログラム命令の転送は、マスタ処理コアの中央処理ユニット内で専用命令を実行することによって行われる。
さらなる実施形態によると、専用命令は、ソースアドレスを定義する第1のオペランドと、宛先アドレスを定義する第2のオペランドとを有し、宛先アドレスは、命令の実行後、自動インクリメントされる。さらなる実施形態によると、専用命令は、情報ワードをバッファの中に転送させ、情報は、バッファから揮発性プログラムメモリの中に書き込まれる。さらなる実施形態によると、命令は、不揮発性メモリに該情報を出力させ、それに応じて、該情報は、該バッファによって捕捉される。さらなる実施形態によると、情報は、24ビットワードである。さらなる実施形態によると、集積回路は、複数のスレーブ処理コアを備え、専用命令は、標的スレーブ処理ユニットを定義する第3のオペランドを有する。さらなる実施形態によると、第1のオペランド内に記憶されるソースアドレスは、随意に、命令の実行後、自動インクリメントされることができる。さらなる実施形態によると、ソースアドレスは、マスタ処理コアと関連付けられた周辺デバイスの特殊機能レジスタである。さらなる実施形態によると、周辺デバイスは、シリアル通信周辺機器である。さらなる実施形態によると、周辺デバイスは、パラレル入力ポートである。さらなる実施形態によると、マスタ処理コアは、不揮発性プログラムメモリ内に記憶される情報を検証するさらなる命令を実行するようにさらに動作可能である。さらなる実施形態によると、さらなる命令は、第1の情報をバッファの中に転送させ、バッファのコンテンツは、揮発性メモリ内に記憶される第2の情報と比較される。さらなる実施形態によると、さらなる命令は、不揮発性メモリに適用され、第1の情報を出力する、第1のアドレスと、揮発性メモリに適用され、第2の情報を出力する、第2のアドレスとを備える。さらなる実施形態によると、さらなる命令はさらに、第1および第2の情報と関連付けられたエラー補正コード(ECC)を検証する。さらなる実施形態によると、不揮発性メモリと関連付けられたECCは、不揮発性メモリから読み取られることができ、ソースと関連付けられたECCは、別個に生成される。さらなる実施形態によると、第1の処理コアの不揮発性メモリは、保護スキームによって定義されたコード保護を備え、スレーブ処理ユニットの揮発性プログラムメモリは、保護スキームの設定に依存するコード保護を有する。さらなる実施形態によると、保護スキームは、不揮発性メモリの複数のセグメントを定義し、各セグメントは、保護スキーム内に保護設定を有する。さらなる実施形態によると、不揮発性メモリのための各保護設定は、読取動作のための設定と、プログラムまたは消去動作のための設定とを有する。さらなる実施形態によると、保護スキームは、所定の数のセキュリティレベルを提供し、各セキュリティレベルは、セグメント毎に保護設定を定義する。さらなる実施形態によると、揮発性プログラムメモリのためのコード保護は、不揮発性メモリのセグメントのうちの1つのためのコード保護と同一である。さらなる実施形態によると、レジスタが、不揮発性メモリのどのセグメントが揮発性メモリのためのコード保護設定を提供するように選択されるかを記憶する。さらなる実施形態によると、不揮発性メモリの読取動作のための設定は、揮発性メモリの読取および書込動作に適用される。さらなる実施形態によると、セグメントが保護されるとき、保護設定に応じて、1つのセグメントから実行される命令は、異なるセグメント上で動作し得ない。さらなる実施形態によると、セグメントが保護されるとき、保護設定に応じて、1つのセグメントから実行される読取命令は、異なるセグメントの所定のエリア上のみで動作し得る。さらなる実施形態によると、所定のエリアは、インタラプトベクトルを記憶する。さらなる実施形態によると、不揮発性メモリは、ブートセグメントと、一般セグメントとを備える。さらなる実施形態によると、不揮発性メモリはさらに、試験セグメントを備える。
別の実施形態によると、不揮発性メモリと結合される第1の中央処理ユニットを有する、第1の処理コアと、第1の処理コアから独立して動作し、揮発性プログラムメモリと結合される第2の中央処理ユニットを有する、第2の処理コアとを備える、マルチコア集積回路処理デバイス内の処理コアのためのファームウェアを提供するための方法は、データをスレーブ処理コアの不揮発性メモリの中に書き込ませる、第1の中央処理ユニット内の専用命令を実行するステップを含んでもよい。
本方法のさらなる実施形態によると、専用命令は、ソースアドレスを定義する第1のオペランドと、宛先アドレスを定義する第2のオペランドとを有し、宛先アドレスは、命令の実行後、自動インクリメントされる。本方法のさらなる実施形態によると、専用命令の実行に応じて、情報ワードは、不揮発性メモリからバッファの中に転送され、情報は、バッファから揮発性プログラムメモリの中に書き込まれる。本方法のさらなる実施形態によると、方法はさらに、該専用命令をループ内で繰り返すステップを含んでもよい。本方法のさらなる実施形態によると、集積回路は、複数のスレーブ処理コアを備え、専用命令は、標的スレーブ処理ユニットを定義する第3のオペランドを有する。本方法のさらなる実施形態によると、第1のオペランド内に記憶されるソースアドレスは、随意に、命令の実行後、自動インクリメントされることができる。本方法のさらなる実施形態によると、方法はさらに、マスタ処理コアによって、不揮発性プログラムメモリ内に記憶される情報を検証するさらなる命令を実行するステップを含んでもよい。本方法のさらなる実施形態によると、さらなる命令は、第1の情報をバッファの中に転送させ、バッファのコンテンツは、揮発性メモリ内に記憶される第2の情報と比較される。本方法のさらなる実施形態によると、さらなる命令は、不揮発性メモリに適用され、第1の情報を出力する、第1のアドレスと、揮発性メモリに適用され、第2の情報を出力する、第2のアドレスとを備える。本方法のさらなる実施形態によると、さらなる命令はさらに、第1および第2の情報と関連付けられたエラー補正コード(ECC)を検証する。本方法のさらなる実施形態によると、不揮発性メモリと関連付けられたECCは、不揮発性メモリから読み取られることができ、ソースと関連付けられたECCは、別個に生成される。本方法のさらなる実施形態によると、第1の処理コアの不揮発性メモリは、保護スキームによって定義されたコード保護を備え、スレーブ処理ユニットの揮発性プログラムメモリは、保護スキームの設定に依存するコード保護を有する。本方法のさらなる実施形態によると、保護スキームは、不揮発性メモリの複数のセグメントを定義し、各セグメントは、保護スキーム内に保護設定を有する。本方法のさらなる実施形態によると、不揮発性メモリのための各保護設定は、読取動作のための設定と、プログラムまたは消去動作のための設定とを有する。本方法のさらなる実施形態によると、保護スキームは、所定の数のセキュリティレベルを提供し、各セキュリティレベルは、セグメント毎に保護設定を定義する。本方法のさらなる実施形態によると、揮発性プログラムメモリのためのコード保護は、不揮発性メモリのセグメントのうちの1つのためのコード保護と同一である。本方法のさらなる実施形態によると、レジスタが、不揮発性メモリのどのセグメントが揮発性メモリのためのコード保護設定を提供するように選択されるかを記憶する。本方法のさらなる実施形態によると、不揮発性メモリの読取動作のための設定は、揮発性メモリの読取および書込動作に適用される。本方法のさらなる実施形態によると、セグメントが保護されるとき、保護設定に応じて、1つのセグメントから実行される命令は、異なるセグメント上で動作し得ない。本方法のさらなる実施形態によると、セグメントが保護されるとき、保護設定に応じて、1つのセグメントから実行される読取命令は、異なるセグメントの所定のエリア上のみで動作し得る。本方法のさらなる実施形態によると、所定のエリアは、インタラプトベクトルを記憶する。本方法のさらなる実施形態によると、不揮発性メモリは、ブートセグメントと、一般セグメントとを備える。本方法のさらなる実施形態によると、不揮発性メモリはさらに、試験セグメントを備える。
図1は、デジタル信号能力を有する単一CPUを伴う、マイクロコントローラのブロック図を示す。 図1は、デジタル信号能力を有する単一CPUを伴う、マイクロコントローラのブロック図を示す。 図1は、デジタル信号能力を有する単一CPUを伴う、マイクロコントローラのブロック図を示す。 図2は、図1による、CPUの種々のレジスタを示す。 図3は、図1による、CPUのDSPエンジンの具体的部分を示す。 図4は、ある実施形態による、デュアルコアマイクロコントローラを示す。 図5は、種々の実施形態による、デュアルまたはマルチコアマイクロコントローラを示す。 図6は、いくつかの実施形態による、プログラムRAMがアクセスされ得る方法の詳細を示す。 図7は、フラッシュメモリのセグメント化を示す。 図8−11は、種々のセキュリティレベルを伴うテーブルを示す。 図8−11は、種々のセキュリティレベルを伴うテーブルを示す。 図8−11は、種々のセキュリティレベルを伴うテーブルを示す。 図8−11は、種々のセキュリティレベルを伴うテーブルを示す。 図8−11は、種々のセキュリティレベルを伴うテーブルを示す。 図8−11は、種々のセキュリティレベルを伴うテーブルを示す。 図8−11は、種々のセキュリティレベルを伴うテーブルを示す。
図4および5に示されるように、デュアルまたはマルチコア処理デバイス400は、マスタ中央処理ユニット(CPU)412を伴う、マスタマイクロコントローラ410と、それぞれがスレーブ中央処理ユニット422を有する、1つまたはそれを上回るスレーブユニット420とを有するように設計されることができ、各スレーブ中央処理ユニット422のコア設計は、概して、マスタCPU412のコア設計と同じまたはそれに類似してもよい。しかしながら、他の実施形態によると、スレーブCPU422は、マスタCPU412と異なってもよい。マスタマイクロコントローラは、図4に示されるように、その独自のセットの周辺デバイスを有する。スレーブユニット420は、その独自のセットの周辺デバイスを有してもよく、またはそうではなくてもよく、したがって、それ自体でマイクロコントローラを形成する。したがって、各マスタおよびスレーブデバイスは、より多いまたはより少ない完全に独立した処理デバイスを形成し、専用バスまたは通信インターフェース430と通信してもよい。図4および5は、マスタマイクロコントローラ410と、単一スレーブマイクロコントローラ420とを伴う、そのような設計を示す。通信インターフェース430は、2つのコア410、420間の通信を可能にするように提供される。各プロセッサ412、422は、示されるように、Harvardアーキテクチャ内に設計されてもよい。しかしながら、種々の実施形態による原理は、von Neumannアーキテクチャに容易に変換され得る。マスタユニットは、例えば、プログラムメモリとして使用されるフラッシュメモリ416と、データメモリとして使用されるランダムアクセスメモリ414とを備え、それぞれ、マスタコア412と結合される。
図4および5に示されるように、スレーブユニット420はフラッシュメモリを伴わずに設計されることができる。代わりに、専用プログラムランダムアクセスメモリ426が、提供される。本メモリが揮発性であるという事実に起因して、種々の実施形態によると、マスタ410を通してロードされるであろう。本設計選択肢は、フラッシュ技術によって提供されるボトルネックが回避されるという利点を有する。フラッシュメモリは、概して、RAMより低速である。故に、読取遅延がなく、スレーブは、より速い実行速度で動作されることができ、これは、例えば、SMPSアプリケーション等のある高速アプリケーションにとって非常に有益であり得る。前述のように、1つを上回るスレーブユニット420が、種々の実施形態によると、実装されてもよい。両コアが同じである場合、マスタコア412は、スレーブユニット422内に実装されないか、またはスレーブユニット内では機能しないかのいずれかであり得る、付加的命令を含むように設計されることができる。これらの付加的命令は、フラッシュメモリ416からまたは外部ソースからスレーブデバイス420のPRAM426へのデータの転送を可能にする。例えば、ある実施形態によると、複数のコアは、単一チップデバイス内に実装されてもよく、各コアは、割り当てられた構成レジスタを有してもよく、そのようなレジスタのビットのうちの1つは、個別のユニットがマスタであるかまたはスレーブであるかを定義してもよい。論理は、コアのうちの1つのみがマスタとして設定されることを可能にするように存在してもよい。いったん本ビットが設定されると、付加的命令は、実行されることが可能にされ得る。他のユニット(スレーブ)では、これらの命令は、実行され得ない、例えば、それらは、不正オペコードとして解釈され得る。
マスタユニット410によってPRAM426にアクセスするための制御論理は、図4に示されるように、バッファ/コンパレータユニット418とともに、マスタユニット内に位置することができる。代替として、類似ユニットは、PRAMラッパユニット428とともに、図5に示されるように、スレーブユニット420内に配列されてもよい。いずれかのユニットが、マスタユニット410またはスレーブユニット420のいずれかに排他的にPRAMのアクセスを付与するように設計される。他の実施形態は、論理のある部分をマスタコア内に、他の部分をスレーブコア内に設置する、または論理を両ユニットの外側に配列してもよい。同様に、通信インターフェース430は、いずれかのユニットの内側にあるかまたは完全に両ユニットの外側にあってもよい。PRAMアクセスユニット418または428のための付加的制御が、図5に点線を用いて示されるように、通信インターフェース430によって提供されてもよい。図5はまた、点線を用いて、付加的スレーブユニット440および450を示す。全ユニットは、各スレーブユニット内のバスおよび関連付けられたラッパユニット428を通して接続してもよい。実施形態は、したがって、デュアルコア実装に限定されない。当業者は、他の実装も可能性として考えられることを認識するであろう。
図6は、スレーブ側における例示的インターフェースのブロック図を示す。本例示的実施形態では、マスタスレーブインターフェースは、通信インターフェース430を形成する。2つのマルチプレクサ428a、428bは、それぞれ、プログラムRAM426のデータおよびアドレスバスへのアクセスを付与する。付加的アクセス論理428cは、マスタユニット410、スレーブコア422、およびPRAM426に接続されるように示される。本実施形態では、通信インターフェース430は、マルチプレクサを制御し、マスタユニット410へのアクセスを与える一方、スレーブプロセッサは、リセット状態に保持される。いったんPRAM426がスレーブファームウェアをロードされると、マルチプレクサ428a、428bは、スレーブユニット420へのアクセスを戻すように制御され、CPU422は、リセットから解放されるであろう。アクセス制御およびデータ検証論理428cは、読取および書込を分散させ、マスタユニット410またはスレーブユニット420のいずれかから生じ得る、信号をイネーブルにし得る。インターフェースは、図6に示されるように、マスタユニット410とPRAM426との間の書込専用パスを提供してもよい。そのような実装では、アクセス制御およびデータ検証論理428cは、書き込まれたデータの検証を行うように構成されてもよい。例えば、一実施形態によると、アクセス制御およびデータ検証論理は、マスタユニット410と結合されると、2つの異なるモードで動作してもよい。第1のモードでは、スレーブファームウェアをPRAM426の中に書き込むための論理信号を提供し、データバイトは、任意の好適な様式で、例えば、PRAM426の中に連続的に書き込まれる。第2のモードでは、ユニット428cは、検証機能を提供してもよい。伝送されるデータを書き込む代わりに、ユニット428cは、マスタユニット410によって提供されるデータとPRAM426のコンテンツを比較し、正しくプログラムされていることを検証する。PRAMに関するマスタ/スレーブインターフェースの他の実施形態も、可能性として考えられる。
したがって、種々の実施形態によると、マルチコアデバイス、特に、デュアルコアマイクロコントローラのためのスレーブプロセッサロード/検証方法論が、提供されることができる。これは、コア内でDSPエンジンを使用する、特に、厳密制御ループアプリケーション(例えば、SMPSアプリケーション)に関して、従来のマルチコアデバイスと比較して改良された効率および性能を提供する。しかしながら、処理コアは、DSPエンジンを含むように設計される必要はない。種々の実施形態による原理は、従来のCPUのみを含む処理コアにも適用される。さらに、関連付けられたCコンパイラの効率および性能は、そのような改良された命令セットによって改良されるであろう。
種々の実施形態によると、新しいデュアル(マルチ)コアアーキテクチャは、スレーブコアプログラムRAM(PRAM)をロードおよび検証するための専用CPU命令を含む。性能要件が増加するにつれて、特に、DSPベースのアプリケーションに関して、CPUスループット、特に、DSPエンジンスループットを改良する必要性が、明白となる。例えば、速度の増加の必要性が存在する。一実施形態によると、デュアルコアデバイスは、そのプログラムメモリとしてフラッシュメモリを使用するマスタユニット410のために100MHz(例えば、0.75MIP/MHzにおいて)を標的とし、そのプログラムメモリとしてPRAMを使用するスレーブユニット420のために120MHz(例えば、0.9MIP/MHzにおいて)を標的とする。前述のように、スレーブユニット420内のプログラムメモリ426のためのPRAM選択肢は、本ユニットが、より効率的かつより高速で起動することを可能にする。さらに、いくつかの実施形態によると、DSPのためのハードウェアコンテキストスイッチングに関する待ち時間もまた、低減される必要があり得る。最後に、他の実施形態によると、ISA改良が、DSPアルゴリズム効率を改良するために必要とされ得る。コンパイラ効率における利得は、いくつかの実施形態によると、ビットフィールド命令およびより柔軟なレジスタ利用を伴うより高速の分割器を用いて達成され得る。
これらの改良のうちのいくつかは、既存の設計への最小限の変更を伴って、新しい命令および能力を追加することによって達成され得る。他の改良は、同一反復非回復型アルゴリズムを使用して、除算演算を加速することによって達成され得る。以下の改良は、独立して実装されることができる。したがって、種々の実施形態は、これらの改良の全部またはサブセットを使用してもよい。
要するに、CPU改良は、スレーブコアプログラムRAM(PRAM)のロードおよび検証;DSPアキュムレータ、ステータス、およびDSPエンジン構成を含むように拡張されたハードウェアコンテキストスイッチ;データ限界(境界チェック)命令;アキュムレータ32ビットデータロード/記憶命令;およびDSP正規化命令のDSP改良の一部または全部を提供する、デュアルコアサポート命令を備え得る。達成され得るコンパイラ効率利得は、ビットフィールド命令および除算命令改良である。
種々の実施形態によると、DSP機能性を伴うデュアルコアマイクロコントローラは、スレーブプログラム初期化を促進するために追加されるPRAMロード(LDSLV)および検証(VFSLV)命令を伴うスレーブコアを備えてもよい。これらの命令は、従来のプログラム空間可視性(PSV)アドレス指定またはTBLWTx命令の使用と比較して、PRAMのメモリマップ画像からのデータの移動のより高速の代替となるように設計される。命令は、CPUが、前述のように、マスタ(CPU_IS_MASTER=1)としてインスタンス化されるときのみイネーブルにされる。ディスエーブルにされると、それらは、不正オペコードと見なされるであろう。
PRAMをロード/検証するための一意の命令を使用する別の利点は、PRAMをマスタアドレス空間の中に再マップする必要なく、既存のPSV CPU命令フローを保つ(単に、スレーブに、通過アドレスおよびデータをスヌープさせる)ことによって、設計および検証を単純化することである。一実施形態によると、既存のMOV命令は、スレーブPRAM捕捉機能をイネーブルにするための制御フラグを用いて拡張され得る。しかしながら、PRAMが初期化された方法に関してユーザに対するより明確なレベルを追加することを可能にする(かつこれらのオペコードがそもそも不注意に実行されるであろう可能性が低いという理由からわずかなセキュリティを提供する)ので、一意の命令(MOVオペコードに類似するが、また、PRAMをマスタクロックドメインにスイッチし、それをロードするように伝えるためのスレーブへの信号をアサートしたもの)を作成することがより有益である。
LDSLV命令は、いくつかの実施形態によると、命令ワード(I−word)全体をPS(フラッシュ)からPS(Save PRAM)に2サイクル以内に移動することができるという理由から、他のデータ移動命令と異なる。各読取は、24ビットワードをフラッシュからフェッチし、次いで、標的スレーブPRAMへのそのワードの書込をもたらすであろう。従来のdsPIC/PIC24 CPUアーキテクチャは、16ビットより大きいデータ値をフラッシュから移動する手段を有しておらず、したがって、データは、マスタCPUを通して移動されないが、スレーブによって捕捉される(フラッシュデータバス上で利用可能であるとき)。したがって、これらの新しい命令は、それらを実行しているプロセッサの自然データ幅より広いデータを(単一エンティティとして)移動可能であるという点において一意である。
スレーブは、捕捉されたデータを使用して、それを規定されたPRAMアドレスに書き込む(LDSLV)か、またはそれを規定されたPRAMアドレスのコンテンツと比較する(VFSLV)かのいずれかを行うであろう。LDSLVNFSLV命令は、同じ方式で動作するが、VFSLVは、信号cpu_slave_pram_verify_enをアサートし、マスタフラッシュから読み取られるデータがPRAMコンテンツに対して比較されるべきであることを示す(PRAMの中にロードされる代わりに)。
これらの命令は、マスタデバイス410のフラッシュメモリ416を含む、所定のソースからのデータをプログラムRAM(PRAM)426の中に転送することを可能にし得る。この目的を達成するために、マスタデバイス410は、データを転送し、転送されるデータを検証するための専用命令を提供してもよい。例えば、以下である。
−標的アドレスとともに捕捉される、マスタフラッシュ画像416からのデータワードを、スレーブPRAMラッパまたはバッファ418/428の中に移動する、ロードスレーブ命令LDSLV。そのような命令は、例えば、ポストインクリメント機能性を伴う、または伴わない、間接ソースアドレスと、ポストインクリメント機能性を伴う、間接宛先アドレスと、複数のスレーブのうちのどれが宛先であるかを定義するであろう、リテラルとを定義するであろう。しかしながら、デュアルコア(単一スレーブ)実装では、リテラルはまた、省略され得る。ポストインクリメント機能性をソース上に有するオプションは、LDSLV/VFSLVが、実行後、後続LDSLV/VFSLV反復に備えて、次のソースアドレスに自動的にインクリメントすることを可能にする。これは、特に、REPEATループ内から実行するときに有用である。ポストインクリメントオプションを使用しないとき、同一命令は、同じデータのブロックを宛先PRAM426内に書き込むために使用され得る(ブロックフィルとしても知られる)。代替として、ソースアドレスは、マスタ周辺デバイス、例えば、フラッシュコントローラプログラミングデータレジスタのnビット、例えば、24ビット特殊機能レジスタにポイントし得る。他の実施形態によると、ソースは、潜在的に、パラレル入力ポート、シリアル受信バッファ等でもあり得る。いくつかの実施形態は、プログラムアドレス空間の中にマップされる、nビットレジスタ、例えば、24ビットレジスタのみが、使用可能であり得る。したがって、外部データを24ビット特殊機能レジスタにダイレクトすることによって、スレーブデバイス420のPRAM426の中に間接的に書き込まれ得る。しかしながら、ポストインクリメント機能は、プログラムデータをマスタフラッシュメモリ416からスレーブPRAM426の中に転送するための主要機能であり得る。一実施形態では、マスタフラッシュ416およびスレーブPRAM426は、同じように編成されてもよく、各データワード読取は、適切な論理428によって、直接、PRAM426の中に転送され得る。しかしながら、いくつかの実施形態では、PRAM426は、フラッシュメモリ416と異なる方式で編成されてもよい。例えば、フラッシュメモリ416は、24ビットワード内に編成され得る一方、PRAM426は、48ビットワード内に編成され得る。そのような実装では、バッファ418/428は、フラッシュメモリ416からの第1の読取を記憶し、記憶されたデータを後続読取とともにPRAM426の中に書き込むように提供されてもよい。いくつかの実施形態によると、ここでの限界は、ソースフラッシュデータの幅であり得ず、実際には、LDSLV/VFSLV動作は、単一nビット値、例えば、24ビット値上でのみ稼働し得る。したがって、ソースフラッシュが48ビット幅であっても、24ビット値のみが、そのような実施形態では、そもそも移動され得る。他の実施形態は、そのような値に制限され得ない。他の転送機構も、種々のメモリのための具体的設計選択肢に従って適用され得る。さらに、エラー補正コード(ECC)が、フラッシュメモリ416およびPRAM426内に実装されてもよい。エラー補正に関して、フラッシュおよびPRAMが両方とも、ECCと同一ワード幅である場合でも、ある実施形態によると、ECCパリティデータは、コピーされない。むしろ、常時、それをロードすると、PRAMラッパ内で再生成される。いくつかの実施形態によると、これは、既存の24ビットデータパスのみをコア内で利用し得る、既存のPSVモデルを再使用する限界に起因し得る。再び、他の実施形態は、そのような制限に直面し得ない。
−例えば、24ビットデータワードをマスタフラッシュ画像から読み取り、データをPRAM426のコンテンツと比較する、検証スレーブ命令VFSLV。したがって、コンパレータが、フラッシュメモリおよびPRAM内に記憶されるデータの実際の比較を行うために提供されてもよい。フラッシュメモリは、ECC機能性に関して設計され得、本付加的情報は、いくつかの実施形態によると、読取可能ではないが、RAMからのECCデータは、読取可能であってもよい。比較機構、例えば、バッファおよび関連付けられたコンパレータは、ECCデータを読み取られたフラッシュメモリデータから生成するための論理を装備してもよい。したがって、本命令は、完全検証のために、マスタデータに関するECCパリティを再計算し、記憶されたPRAM ECCと比較してもよく、また、いくつかの実施形態によると、比較不良の場合、(「スティッキー」)検証エラーを(MSIマクロ内に)フラグしてもよい。
−LDSLV/VFSLV命令は、REPEATループ内で実行されるように設計されてもよく、いくつかの実施形態では、既存のデータパイプラインを使用して、(最大)3サイクル(アクセス時間)フラッシュから1ワード/サイクルへの転送を加速してもよい。第1の実行は、データパイプラインをプライミングし、データ整合をハンドルするために、1を上回るサイクル、例えば、5サイクルを要求し得る。しかしながら、任意の後続転送は、単一サイクル内で行われ得る。最後の命令またはラップアップは、例えば、データパイプラインを展開するために、3サイクルを要求し得る。PRAMの中に転送されるべきプログラムのサイズに応じて、反復ループ内の単一サイクル転送が、転送を有意に加速させる。他の実施形態は、概して、各命令を単一サイクル内で実行し得る。
−いくつかの実施形態によると、スレーブデュアルパネルモードで動作するとき、LDSLV/VFSLV命令は、スレーブがディスエーブルにされると、アクティブPRAMへのアクセスのみを有し得、LDSLV/VFSLV命令は、常時、非アクティブPRAMへのアクセスを有し得る。デュアルパネルモードは、いくつかのデバイスに適用され、PRAMを2つの別個のブロックに分裂させる。本モードでは、PRAM制御は、「非アクティブ」パネルがマスタによって(再)ロードされている間(おそらく、デバイス更新の間にフラッシュの中に再プログラムされた新しいPRAM画像を伴う)、スレーブが、「アクティブ」パネルから実行を継続し得るように構成されるようになる。いったん完了すると、マスタは、パネルをスイッチし得ることをスレーブに信号伝達する(専用命令、例えば、BOOTSWP命令を使用して、オンザフライで)。これは、非常に特殊な「ライブ更新」スキームであって、いくつかの実施形態において実装され得、ソフトウェア更新がデバイスの中に再フラッシュされている間、スレーブが、実行(例えば、SMPSの内側の制御ループ)を保つことを可能にするように設計される。これらのループを数100KHzまたはそれを上回って起動するアプリケーションは、フルデバイスリセットと関連付けられたダウンタイム(数ミリ秒)を所望せず、したがって、リセットを伴わずに、新しいPRAMコードをロードし、次いで、それに瞬時にスワップすることを可能にすることを所望する。BOOTSWPが行うべきことは、文字通り、単に、PRAMパネルをスイッチすることのみであるため、そのような実施形態のためのファームウェアは、スマートハンドオーバを要求し得る。デバイスが通常通りリセットすると(将来のある時点で)、新しいPRAMコードは、通常通り「アクティブ」パネルの中にロードされるであろう。
コード実施例:
実施例1:LDSLV:フラッシュからのPRAMロード
実施例1に示されるコード断片は、LDSLV命令がスレーブ#0のPRAMをロードするためにアプリケーション初期化の間に使用され得る方法を実証する。
実施例2:VFSLV:フラッシュからのPRAM検証
実施例2に示されるコード断片は、VFSLV命令がスレーブ#0のPRAMコンテンツを検証するためにアプリケーション初期化の間に使用され得る方法を実証する。
実施例3:LDSLV:フラッシュからのPRAMブロックフィル
実施例3に示されるコード断片は、LDSLV命令がスレーブ#0のPRAMをブロックフィル(すなわち、定数値を伴うロード)するために使用され得る方法を実証する。この場合、定数は、LDSLVのためのレジスタ間接アドレスを使用して、フラッシュから供給される(ポストインクリメントなし)。
実施例4:LDSLV:NVMDATALからのPRAMロード
代替として、ブロックフィルオペコード値は、NVMコントローラ24ビットNVMDATALレジスタから供給される変数であってもよい。NVMDATALレジスタは、PS内に位置し、NVMコントローラがフラッシュプログラム/消去のためにイネーブルにされない(すなわち、NVMCON.WREN=0)と、24ビットr/wレジスタとなる。レジスタは、フラッシュプログラム/消去がイネーブルになる(すなわち、NVMCON.WREN=1)ときは常時、書込専用である。任意の命令オペコードが、NVMDATALの中にロードされ、続いて、PRAMの中にロードされてもよい。VFSLV命令は、LDSLV動作の成功を確認するための同一様式で使用されてもよい。本アプローチはまた、デバイスから外部供給されるデータとともに、PRAMの全部または一部をロードするために使用され、実施例4に示されるように、それを最初にマスタフラッシュメモリの中にプログラムする必要性を除去し得る。
いくつかの実施形態によると、付加的命令が、DSPエンジンとともにCPU内に実装されてもよい。そのような付加的命令は、必ずしも、前述のロード/検証命令の実装を要求しない。さらに、それらは、マルチコア設計を要求せず、また、CPUおよび統合されたDSPエンジンを備える、単一コアデバイス内にも実装され得る。
したがって、いくつかの実施形態によると、第1のタイプの命令は、16ビットデータ境界チェックであってもよく、限界機能性は、強制データ限界(FLIM/FLIM.v)命令を追加し、16ビットデータ境界チェックおよび限界動作を加速させ得る。そのような命令は、標的符号付き値と個別のWレジスタ内に保持される上限および下限を比較する。標的値が上限を上回る、または下限未満である場合、限界超過レジスタが、標的符号付き値とともにロードされる。したがって、飽和関数が、ユーザ選択可能上限および下限を用いて定義されることができる。そのような命令は、以下の2つのバージョンで実装されることができる。
FLIM:前述の機能をCPUのワーキングレジスタおよびステータスビットのセットのいずれかに行い、結果を示す。
FLIM.v:ステータスビットを設定し、結果を示す;限界を超過した符号付き値をWnの中に保存し、これは、アンチワインドアップアルゴリズムに有用であり得る。したがって、本命令は、FLIMと同一機能を行うが、また、以下の実施例5のコード断片に示されるように、オーバーシュート(またはアンダーシュート)値を指定されるレジスタ内に記憶する。
実施例5:
第2の付加的命令は、DSPアキュムレータベースの境界チェックおよび限界動作を加速するために追加される、アキュムレータ最大および最小命令(MAXAB/MINAB)である:これらの命令は、標的アキュムレータ内の符号付き値と、他のアキュムレータ内に保持される上限(MAXAB)または下限(MINAB)を比較する。限界アキュムレータ値が、上限(MAXAB)を上回る、または下限(MINAB)未満である場合、限界アキュムレータは、標的アキュムレータの中にコピーされる。再び、これらの命令は、以下の2つの実装で実装され得る。
MAXAB/MINAB:前述のような機能を行い、ステータスビットを設定し、結果を示す。
MAXAB.v/MINAB.v:前述と同一機能を行い、ステータスビットを設定し、結果を示す。さらに、これらの命令は、FLIM.v命令同様に、限界を超過した符号付き値をWnまたはメモリ(アンチワインドアップアルゴリズムのために有用)の中に保存するが、40ビットアキュムレータ値を用いて動作する。
実施例6:
両タイプの命令が実行されると、それらは、続いて、前述の断片に示されるように、実行されるように設計され得る。これらの命令は、自動的に、個別のフラグを設定し、最大または最小限界に到達したことを示す。一実施形態によると、最小限界命令は、限界に到達しない場合、無動作命令のように機能するように設計され得、それによって、ステータスレジスタのフラグに影響を及ぼさない。したがって、前述に示されるように、分岐命令は、1回のみ、実行される必要がある。最大限界命令がフラグをトリガする場合、最小限界命令は、無動作命令のように実行するであろうため、リセットしないであろう。以下の分岐命令は、正しく実行するであろう。本機能性は、MAXAB(.v)命令がMINAB(.v)命令の前に実行されることのみを要求し得る。
さらなる命令が、実装されることができるが、これもまた、デュアルまたはマルチコア設計を要求しない。いくつかの実施形態によると、32ビットロード/記憶アキュムレータ命令(LAC.d/SAC.d)が、中間結果の移動を加速するために追加されることができ、分解能が失われ得ない。既存のロード/記憶アキュムレータ(LAC/SAC)命令は、16ビットデータを移動させるが、1.31アキュムレータデータを移動させるための直接手段は、従来のdsPICコア内には存在しない。種々の実施形態によると、32ビットデータを移動させるように拡張される命令は、以下を含み得る。
LAC.d:32ビット値をメモリからアキュムレータAまたはBの中に読み取り、随意に、シフトし、次いで、符号拡張する
SAC.d:随意に、アキュムレータAまたはBのLS32ビットをメモリの中にシフトし、次いで、記憶する
いくつかの実施形態によると、これらは、単一命令ワードとして実装されることができ、2サイクル以内に実行され得る。
他の実施形態によると、アキュムレータ正規化(NORM)命令が、既存の正規化シーケンスを加速する(FBCL命令を使用して)ために追加されることができる。既存のCPU ISAは、Find First Bit Clear Left(FBCL)を含む、複数の命令の使用を通して、アキュムレータデータ正規化をサポートする。
6命令、5サイクル動作(最大16ビットシフト専用)。
いくつかの実施形態は、1命令ワードのみを使用して、1サイクル内で実行する、NORM命令を実装してもよい。命令は、自動的に、最大16ビットによって両方向に標的アキュムレータを正規化する。これは、16ビットを上回る正規化に対してカスケードされてもよい。
各反復からの指数が、次いで、追加されることができる。
これは、3命令、3サイクル動作をもたらす。
しかしながら、NORM命令の他の実装は、単一反復内でアキュムレータ全体を正規化可能であり得る。
いくつかの実施形態によると、ビットフィールド命令(BFINS/BFEXT)が、コンパイラ効率を改良するために追加される。コンパイルされたコードは、頻繁に、標的ワード内で複数のビットを挿入または抽出する必要がある。ビットフィールドオフセットおよび幅は、常に、定数値である。
BFINS:ビットフィールドをCPU W−レジスタまたはリテラル値から標的ワードの中に書き込む
BFEXT:ビットフィールドを標的ワードから読み出し、それをCPU W−レジスタの中にロードする
全ビットフィールド命令は、2ワード、2サイクル動作である:ビットフィールドを用いない場合、動作全体が完了するために、約7ワード、7サイクルを要求する。ビットフィールドを用いる場合、動作全体が完了するために、約4ワード、4サイクルを要求する。
いくつかの実施形態によると、除算改良は、インタラプト可能な非回復型除算命令一式(従来のdsPICと同様に)を提供する。実行時間は、ここでは、全除算命令に対して7サイクル(P33E:19サイクル)(REPEAT命令のための1サイクルを含む)であって、オリジナル除算REPEATカウントを使用する既存のアプリケーションコードと完全にバックワード互換性がある。
さらに、いくつかの実施形態によると、代替除算命令セットが、コンパイラレジスタ配分効率を改良するために提供されることができる。既存の(32/16ビット)除算命令は、被除数Wm+1:Wm、除数Wn、および余り:商W1:W0である。
代替除算命令セットでは、被除数Wm+1:Wm、除数Wn、および余り:商Wm+1:Wmであって、W1:W0は、保存される。
要するに、以下の付加的命令が、特に、CPUおよびDSPエンジンを備えるdsPICコアのために提供されることができる。第1の命令LDSLVおよびVFSLVのみが、マルチコアデバイスのために具体的に設計され、全ての他の命令は、任意の組み合わせにおいて随意に実装されてもよい。
LDSLV、VFSLV:ロードおよび検証スレーブPRAM
FLIM{.v}:符号付き16ビットデータ値境界チェックおよび限界
MAXAB{.v}、MINAB{.v}:アキュムレータ1.31データ値境界チェックおよび限界
LAC.d、SAC.d:アキュムレータ32ビットロードおよび記憶
NORM:アキュムレータ正規化
BFIN、BFEXT:ビットフィールド挿入および抽出
DIVx2:W1:W0を保存する、代替除算命令セット
図7に示されるようなさらなる実施形態によると、デュアル(マルチ)コアプロセッサのためのコード保護スキームが、提供されてもよい。本保護スキームは、特に、デュアルコアマイクロコントローラ内のスレーブプロセッサに有益である。他の実施形態によると、本概念はまた、単一コアプロセッサまたはマイクロコントローラに適用されてもよい。図7は、例示的コード保護スキーム700を示す。フラッシュメモリは、いくつかのセグメントに分裂されてもよく、それぞれ、他へのアクセスに関するその独自のルールを伴う。例えば、デバイスまたはヒューズ機構のプログラミングの間のみ構成され得る、構成レジスタが、アクセス保護スキームを設定するために提供されてもよい。図7は、フラッシュがユーザフラッシュおよび試験フラッシュパーティションに分割されることを示す。しかしながら、他の実施形態は、単一パーティションのみまたはさらに多くのパーティションを提供してもよい。ユーザフラッシュパーティションは、ブートセグメントおよび一般セグメントにセグメント化される。さらに、インタラプトベクトルテーブルIVTおよびAIVTのためのより小さいセグメントが、提供されてもよく、これは、現在の設定保護レベルに応じて、ブートセグメントの中に含まれてもよい、または別個の保護を有してもよい。図7は、異なる場所におけるインタラプトベクトルテーブルIVTおよび代替インタラプトベクトルテーブルAIVTを示す。しかしながら、他の実施形態は、これらの2つのテーブルを、ブートセグメントBSの前または任意の他の好適な場所に位置し得る、1つのセグメントVSに統合してもよい。最後に、例えば、統合された回路内プログラム機能によって、デバイスがプログラムされるときのみ書き込まれ得る、種々のデバイス構成レジスタを備える、構成セグメントが、提供されてもよい。セグメントの配列は、個別の実装に従って、異なってもよい。保護スキームは、種々の異なる設定を可能にし、各セグメントは、異なるように保護されてもよい。特に、1つのセグメントから別のセグメントへのアクセスは、具体的設定に従って、制限されてもよい。さらに、セグメントへのベクトル化は、セキュリティ設定に従って制限されてもよい。
いくつかの実施形態に従って実装される場合、試験アドレス空間は、フラッシュのいくつかの特殊セクタを含有し、全て、例えば、24ビットプログラム空間であり得る、プログラム空間の上位(最高アドレス)半分内にある。そのような実施形態における構成セグメント(典型的には、単一セクタまたはそれ未満)は、ユーザフラッシュアドレス空間(24ビットプログラム空間の下位半分)内に常駐する。
−1つの試験セクタは、工場使用のために留保され(すなわち、非公開試験モードにおいてのみ書込可能であって、そうでなければ、常時、保護される)、デバイスID情報、デバイス較正データのための「ヒューズ」値等を含有する。本セクタはまた、典型的には、顧客のみ書き込み得る(消去不能)、「顧客OTP」データのための単一データ列を含有する。
−前述のようなデュアルブート(デュアルパネル)デバイスでは、別の試験セクタが、ブート(動作)モードヒューズ値のために留保される。本セクタは、ユーザがデバイス全体を消去(チップ消去)しない限り、保護される。
−1つまたはそれを上回る試験セクタが、デバイス試験の間の使用のため、続いて、開発ツールによって、Debug Execを保持するために留保される。これらのセクタは、公開試験モード(デバッグモード等)において書込可能である。
−構成セクタは、ユーザオプションを選択するための全ユーザプログラマブル「ヒューズ」を含有する。これは、選択されたコード保護レベルに基づいて、(ユーザ定義された)書込許可を有する。
全「ヒューズ」データは、自動的に、デバイスリセットシーケンスの一部として、フラッシュコントローラによって読み取られ、特殊デバイス構成レジスタの中にロードされる。
前述のように、各セグメントは、その独自のアクセスルールを有し、別のセグメントからの読取/書込アクセス(以降、「外部」アクセスと指定される)を防止し得る。さらに、セグメントへのベクトル化は、特に、高セキュリティ設定では、制限され得る。テーブルは、行われる動作のタイプに応じて、セグメント毎に設定を定義してもよく、異なる動作は、図10により詳細に示されるように、異なるセキュリティ設定を有してもよい。セキュリティは、読取および書込/消去保護に別個に分裂されることができ、例えば、書込保護ビットは、書込保護を別個に設定するために使用されてもよい。実装は、種々の実施形態に従って変動してもよい。図8は、ブートセグメントのための3つの異なるレベルの保護を伴う実施形態を示す。図10は、一般セグメントのための3つの異なるレベルの保護を伴う実施形態を示す。類似テーブルが、他のセグメントのために使用されてもよい。各保護レベルは、セグメントの外側からの異なるセグメントへの読取アクセスのための別個の保護を提供する。加えて、各レベルは、書込保護が設定されるかどうかを設定してもよい。ブートセグメントのための図8に示される実施形態および一般セグメントのための図10では、第1のレベルは、読取保護を提供せず、概して、全アクセスされるセグメントに適用される。書込保護が本モードでアクティブである場合、それは全セグメントに適用され、次いで、個別のセグメントの「外側」からプログラムされることまたは消去されることができない。
第2のレベルは、標準的レベルとして示される。図8は、ブートセグメントのための保護を示す。本設定では、ブートセグメントは、「外側」から読み取られる、または書き込まれることができず、書込保護設定に応じて、ブートセグメント内で実行されるアクションからも書き込まれ得ない。図10は、一般セグメントのための設定を示す。ここでは、ブートセグメントならびに一般セグメントは、一般セグメント内で読取動作を行うことができる。一般セグメントへの書込は、書込保護ビットが設定されていない場合のみ可能にされる。試験セグメント内からのいかなる動作も、一般セグメントへの読取または書込アクセスを可能にしないであろう。
第3のレベルは、高保護レベルとして示される。本設定では、ブートセグメントのために、標準的設定保護に加え、ブートセグメントへのベクトル化も、制限され得る。したがって、本付加的保護は、ベクトルテーブルのいかなる修正も防止し得る。しかしながら、ブートセグメントのために、保護は、標準的設定と同じであってもよい。
図10は、一般セグメントのための高セキュリティ設定を示し、外側からのいかなるアクセスも、禁止される。言い換えると、一般セグメントは、一般セグメント内からのみアクセスされることができる。一般セグメントGS内からの書込アクセスさえ、個別の保護ビットを設定することによって禁止され得る。
図11は、別の実施形態による、アプリケーションモードにおけるセキュリティ動作に関するより詳細なテーブルを伴う実施形態をより詳細に示す。動作は、最左列下に列挙され、GS、BS、CS、およびVSへの対応する影響は、対応する行に示される。種々の動作が、定義される。第1のライン(セグメント内へのPCロールオーバー)は、別のセグメントへのプログラムカウンタロールオーバーに関する。第2のライン(セグメントへのPFC)は、ジャンプまたは分岐命令の実行等の任意のタイプのプログラムフロー変更および種々のセグメントへのその影響に関する。次のライン(IVTまたはAIVTからのベクトル)は、具体的セグメントへのベクトル化に関する。次のライン(テーブル読取/PSV)は、セグメントへのPSVまたはテーブル読取命令アクセスに関する。次のライン(ページ消去)は、個別のセグメントに影響を及ぼすであろう、ページ消去機能に関する。次のライン(行プログラム)は、メモリ行のプログラミングに関する。他のアクションは、以下の行に示される。したがって、異なる保護設定が、異なるタイプのアクションに適用されてもよい。読取および書込動作等のあるアクションは、1つのセグメント内で行われ得るが、他のセグメントにも影響を及ぼし得る。種々の実施形態による保護スキームは、これらのアクションを選択的に保護することを可能にする。インタラプトによって生じるもの等のいくつかのアクションは、それ自体、具体的セグメントから生じ得ず、したがって、図11におけるテーブルは、それらが実行されるセグメント間で区別されない。図11におけるテーブルは、アクションが、個別のテーブルセル内に「OK」を示すことによって許可されるか、または「No」または「0」のいずれかを示すことによって禁止されるかを示し、後者は、動作が「0」読取をもたらすであろうことを示す。図11に関するいくつかの実施例は、以下である。
−セグメントGSからのTBLRD/PSVの実行は、CPUがセグメントGSセキュリティレベルに関係なく、セグメントGSからのデータを閲覧することを可能にするであろうが、そのセキュリティが「該当せず」に設定される場合のみ、CPUがセグメントBSからのデータを閲覧することを可能にするであろう。セグメントCSは、常時、セグメントVSのように読取可能である。
−セグメントGSを標的とするセグメントBS内でのコード実行を使用したページ消去の試みは、セグメントGS書込保護がイネーブルにされる、および/またはセグメントGSセキュリティが「高」である場合、失敗するであろう。以下に議論されるように、セグメントCSは、「高度」と呼ばれる、付加的セキュリティレベルを有することに留意されたい。
図11に示されるように、種々の異なるアクションが、異なる設定に従って保護されることができ、読取および書込アクションは、別個に保護されてもよい。しかしながら、他の実装は、読取と書込を区別しなくてもよい。加えて、図11は、構成セグメントCSのために、付加的セキュリティレベルが実装され得、別個の中間保護レベルを可能にし得ることを示す。
いくつかの実施形態によると、スレーブPRAM426は、例えば、前述のように、ヒューズ回路または構成レジスタによって、ブートセグメント(BS)または一般セグメント(GS)アドレス空間のいずれかに配分されてもよい。別の実施形態によると、スレーブPRAMは、マスタセグメントGSセキュリティのみ継承することができる。
したがって、スレーブPRAM426は、フラッシュメモリ416の対応するマスタフラッシュセグメントに割り当てられるセキュリティレベルをとるであろう。LDSLV/VFSLV命令実行は、ここでは、実行される個別のフラッシュ実行セグメントおよび割り当てられる個別のPRAMセグメントに敏感であるように実装される。したがって、関連付けられたコード保護セキュリティレベルは、そのような命令が実行されるときに適用される。LDSLV/VFSLVは、したがって、PRAM内では、読取機能と見なされる。プログラムまたはページ消去機能およびその関連付けられたセキュリティルールのみが、フラッシュメモリに適用される。したがって、フラッシュメモリ416のBS/GS読取のためにすでに定義されたルールもまた、以下のように、PRAM内で読取または書込を行うLDSLV/VFSLV命令を使用するとき、スレーブPRAMアクセスに適用されるであろう。
LDSLV/VFSLVは、マスタのBS内から実行され、スレーブPRAMが、以下に割り当てられる場合、機能するであろう。
(1)BS(セグメントセキュリティレベルと無関係)
(2)GS(かつGSが「高」セキュリティレベルではない)
LDSLV/VFSLVは、マスタのGS内から実行され、スレーブPRAMが、以下に割り当てられる場合、機能するであろう。
(1)GS(セグメントセキュリティレベルと無関係)
(2)BS(かつBSが「該当せず」セキュリティレベルである)
前述の条件が満たされない場合、LDSLV/VFSLV実行は、影響を受けないであろう。また、他の実施形態によると、他の条件も、適用されてもよい。前述の条件は、単なる実施例にすぎない。フラッシュアクセスコード保護ルール(ソースデータ読取のため)が満たされるであろうと仮定される。
図9は、図8に示されるものに類似するブートセグメントのための高度コード保護スキームを示す。再び、類似テーブルが、他のセグメントのために使用されてもよい。PRAM426がマスタフラッシュメモリ416のブートセグメントに割り当てられる場合、したがって、マスタBSを任意のセキュリティレベル(すなわち、「該当せず」以外のレベル)に設定することによって、セグメントGS内の信頼されないコードから保護され得る。逆に言えば、PRAMがマスタのセグメントGSに割り当てられる場合、また、マスタGSを「高」セキュリティに設定することによって、BS内の信頼されないコードから保護され得る。

Claims (50)

  1. 集積回路であって、
    不揮発性メモリと結合される中央処理ユニットを有する、マスタ処理コアと、
    前記マスタ処理コアから独立して動作し、揮発性プログラムメモリと結合される中央処理ユニットを有する、スレーブ処理コアと、
    を備え、
    マスタ中央処理ユニットは、プログラム命令を前記スレーブ処理コアの不揮発性メモリの中に転送するように構成され、
    前記プログラム命令の転送は、前記マスタ処理コアの中央処理ユニット内で専用命令を実行することによって行われる、
    集積回路。
  2. 前記専用命令は、ソースアドレスを定義する第1のオペランドと、宛先アドレスを定義する第2のオペランドとを有し、前記宛先アドレスは、前記命令の実行後、自動インクリメントされる、請求項1に記載の集積回路。
  3. 前記専用命令は、情報ワードをバッファの中に転送させ、前記情報は、前記バッファから前記揮発性プログラムメモリの中に書き込まれる、請求項1または請求項2に記載の集積回路。
  4. 前記命令は、前記不揮発性メモリに前記情報を出力させ、それに応じて、前記情報は、前記バッファによって捕捉される、前記請求項のいずれか1項に記載の集積回路。
  5. 前記情報は、24ビットワードである、請求項3に記載の集積回路。
  6. 前記集積回路は、複数のスレーブ処理コアを備え、前記専用命令は、標的スレーブ処理ユニットを定義する第3のオペランドを有する、前記請求項のいずれか1項に記載の集積回路。
  7. 前記第1のオペランド内に記憶されるソースアドレスは、随意に、前記命令の実行後、自動インクリメントされることができる、請求項2−6のいずれか1項に記載の集積回路。
  8. 前記ソースアドレスは、前記マスタ処理コアと関連付けられた周辺デバイスの特殊機能レジスタである、請求項2−7のいずれか1項に記載の集積回路。
  9. 前記周辺デバイスは、シリアル通信周辺機器である、請求項8に記載の集積回路。
  10. 前記周辺デバイスは、パラレル入力ポートである、請求項8に記載の集積回路。
  11. 前記マスタ処理コアは、前記不揮発性プログラムメモリ内に記憶される情報を検証するさらなる命令を実行するようにさらに動作可能である、前記請求項のいずれか1項に記載の集積回路。
  12. 前記さらなる命令は、第1の情報を前記バッファの中に転送させ、前記バッファのコンテンツは、揮発性メモリ内に記憶される第2の情報と比較される、請求項11に記載の集積回路。
  13. 前記さらなる命令は、前記不揮発性メモリに適用されて前記第1の情報を出力する第1のアドレスと、揮発性メモリに適用されて前記第2の情報を出力する第2のアドレスとを備える、請求項11または請求項12に記載の集積回路。
  14. 前記さらなる命令はさらに、前記第1および第2の情報と関連付けられたエラー補正コード(ECC)を検証する、請求項11−13のいずれか1項に記載の集積回路。
  15. 前記不揮発性メモリと関連付けられたECCは、前記不揮発性メモリから読み取られることができ、前記ソースと関連付けられたECCは、別個に生成される、請求項14に記載の集積回路。
  16. 第1の処理コアの不揮発性メモリは、保護スキームによって定義されたコード保護を備え、スレーブ処理ユニットの揮発性プログラムメモリは、前記保護スキームの設定に依存するコード保護を有する、前記請求項のいずれか1項に記載の集積回路。
  17. 前記保護スキームは、前記不揮発性メモリの複数のセグメントを定義し、各セグメントは、前記保護スキーム内に保護設定を有する、請求項16に記載の集積回路。
  18. 前記不揮発性メモリのための各保護設定は、読取動作のための設定と、プログラムまたは消去動作のための設定とを有する、請求項17に記載の集積回路。
  19. 前記保護スキームは、所定の数のセキュリティレベルを提供し、各セキュリティレベルは、セグメント毎に保護設定を定義する、請求項16−18のいずれか1項に記載の集積回路。
  20. 前記揮発性プログラムメモリのためのコード保護は、前記不揮発性メモリのセグメントのうちの1つのためのコード保護と同一である、請求項17−19のいずれか1項に記載の集積回路。
  21. レジスタが、前記不揮発性メモリのどのセグメントが揮発性メモリのためのコード保護設定を提供するように選択されるかを記憶する、請求項17−20のいずれか1項に記載の集積回路。
  22. 前記不揮発性メモリの読取動作のための設定は、揮発性メモリの読取および書込動作に適用される、請求項18−21のいずれか1項に記載の集積回路。
  23. セグメントが保護されるとき、保護設定に応じて、1つのセグメントから実行される命令は、異なるセグメント上で動作し得ない、請求項17−22のいずれか1項に記載の集積回路。
  24. セグメントが保護されるとき、保護設定に応じて、1つのセグメントから実行される読取命令は、異なるセグメントの所定のエリア上のみで動作し得る、請求項17−23のいずれか1項に記載の集積回路。
  25. 前記所定のエリアは、インタラプトベクトルを記憶する、請求項24に記載の集積回路。
  26. 前記不揮発性メモリは、ブートセグメントと、一般セグメントとを備える、請求項17−25のいずれか1項に記載の集積回路。
  27. 前記不揮発性メモリはさらに、試験セグメントを備える、請求項17−26のいずれか1項に記載の集積回路。
  28. 不揮発性メモリと結合される第1の中央処理ユニットを有する、第1の処理コアと、前記第1の処理コアから独立して動作し、揮発性プログラムメモリと結合される第2の中央処理ユニットを有する、第2の処理コアとを備える、マルチコア集積回路処理デバイス内の処理コアのためのファームウェアを提供するための方法であって、
    データをスレーブ処理コアの不揮発性メモリの中に書き込ませる、前記第1の中央処理ユニット内の専用命令を実行するステップ
    を含む、方法。
  29. 前記専用命令は、ソースアドレスを定義する第1のオペランドと、宛先アドレスを定義する第2のオペランドとを有し、前記宛先アドレスは、前記命令の実行後、自動インクリメントされる、請求項28に記載の方法。
  30. 前記専用命令の実行に応じて、情報ワードは、前記不揮発性メモリからバッファの中に転送され、前記情報は、前記バッファから前記揮発性プログラムメモリの中に書き込まれる、請求項28または請求項29に記載の方法。
  31. 前記専用命令をループ内で繰り返すステップをさらに含む、請求項28−30のいずれか1項に記載の方法。
  32. 前記集積回路は、複数のスレーブ処理コアを備え、前記専用命令は、標的スレーブ処理ユニットを定義する第3のオペランドを有する、請求項28−30のいずれか1項に記載の方法。
  33. 前記第1のオペランド内に記憶されるソースアドレスは、随意に、前記命令の実行後、自動インクリメントされることができる、請求項29−31のいずれか1項に記載の方法。
  34. 前記マスタ処理コアによって、前記不揮発性プログラムメモリ内に記憶される情報を検証するさらなる命令を実行するステップをさらに含む、請求項28−32のいずれか1項に記載の方法。
  35. 前記さらなる命令は、第1の情報を前記バッファの中に転送させ、前記バッファのコンテンツは、揮発性メモリ内に記憶される第2の情報と比較される、請求項33に記載の方法。
  36. 前記さらなる命令は、前記不揮発性メモリに適用されて前記第1の情報を出力する第1のアドレスと、揮発性メモリに適用されて前記第2の情報を出力する第2のアドレスとを備える、請求項33または34に記載の方法。
  37. 前記さらなる命令はさらに、前記第1および第2の情報と関連付けられたエラー補正コード(ECC)を検証する、請求項33−35のいずれか1項に記載の方法。
  38. 前記不揮発性メモリと関連付けられたECCは、前記不揮発性メモリから読み取られることができ、前記ソースと関連付けられたECCは、別個に生成される、請求項36に記載の方法。
  39. 前記第1の処理コアの不揮発性メモリは、保護スキームによって定義されたコード保護を備え、スレーブ処理ユニットの揮発性プログラムメモリは、前記保護スキームの設定に依存するコード保護を有する、請求項28−37のいずれか1項に記載の方法。
  40. 前記保護スキームは、前記不揮発性メモリの複数のセグメントを定義し、各セグメントは、前記保護スキーム内に保護設定を有する、請求項38に記載の方法。
  41. 前記不揮発性メモリのための各保護設定は、読取動作のための設定と、プログラムまたは消去動作のための設定とを有する、請求項38または請求項39に記載の方法。
  42. 前記保護スキームは、所定の数のセキュリティレベルを提供し、各セキュリティレベルは、セグメント毎に保護設定を定義する、請求項39または請求項40に記載の方法。
  43. 前記揮発性プログラムメモリのためのコード保護は、前記不揮発性メモリのセグメントのうちの1つのためのコード保護と同一である、請求項39−41のいずれか1項に記載の方法。
  44. レジスタが、前記不揮発性メモリのどのセグメントが揮発性メモリのためのコード保護設定を提供するように選択されるかを記憶する、請求項42に記載の方法。
  45. 前記不揮発性メモリの読取動作のための設定は、揮発性メモリの読取および書込動作に適用される、請求項40−43のいずれか1項に記載の方法。
  46. セグメントが保護されるとき、保護設定に応じて、1つのセグメントから実行される命令は、異なるセグメント上で動作し得ない、請求項39−44のいずれか1項に記載の方法。
  47. セグメントが保護されるとき、保護設定に応じて、1つのセグメントから実行される読取命令は、異なるセグメントの所定のエリア上のみで動作し得る、請求項39−45のいずれか1項に記載の方法。
  48. 前記所定のエリアは、インタラプトベクトルを記憶する、請求項46に記載の方法。
  49. 前記不揮発性メモリは、ブートセグメントと、一般セグメントとを備える、請求項28−47のいずれか1項に記載の方法。
  50. 前記不揮発性メモリはさらに、試験セグメントを備える、請求項28−48のいずれか1項に記載の方法。
JP2017554326A 2015-04-30 2016-04-29 改良された命令セットを有する中央処理ユニット Pending JP2018514868A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562154927P 2015-04-30 2015-04-30
US62/154,927 2015-04-30
US201562195692P 2015-07-22 2015-07-22
US62/195,692 2015-07-22
PCT/US2016/030159 WO2016176593A1 (en) 2015-04-30 2016-04-29 Central processing unit with enhanced instruction set

Publications (2)

Publication Number Publication Date
JP2018514868A true JP2018514868A (ja) 2018-06-07
JP2018514868A5 JP2018514868A5 (ja) 2019-05-23

Family

ID=55963480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017554326A Pending JP2018514868A (ja) 2015-04-30 2016-04-29 改良された命令セットを有する中央処理ユニット

Country Status (7)

Country Link
US (2) US10983931B2 (ja)
EP (1) EP3289442B1 (ja)
JP (1) JP2018514868A (ja)
KR (1) KR20170140225A (ja)
CN (1) CN107548492B (ja)
TW (1) TW201706856A (ja)
WO (1) WO2016176593A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11872623B2 (en) 2016-11-04 2024-01-16 Lg Chem, Ltd. Thermosetting composition

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111679787B (zh) * 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
JP2020510951A (ja) * 2017-06-12 2020-04-09 サンディスク テクノロジーズ エルエルシー マルチコアオンダイメモリマイクロコントローラ
KR102032146B1 (ko) 2018-04-11 2019-10-15 경희대학교 산학협력단 소자 결점을 보완하기 위한 구간 선형 정류 유닛을 사용하는 인공신경망 시스템
CN111382429B (zh) * 2018-12-27 2022-12-27 华为技术有限公司 指令的执行方法、装置及存储介质
CN109886416A (zh) * 2019-02-01 2019-06-14 京微齐力(北京)科技有限公司 集成人工智能模块的系统芯片及机器学习方法
CN109870921B (zh) * 2019-03-26 2022-04-01 广东美的制冷设备有限公司 驱动控制电路与家电设备
TWI715371B (zh) 2019-12-25 2021-01-01 新唐科技股份有限公司 一次性可編程記憶體裝置及其容錯方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5167028A (en) * 1989-11-13 1992-11-24 Lucid Corporation System for controlling task operation of slave processor by switching access to shared memory banks by master processor
US5226138A (en) * 1990-11-27 1993-07-06 Sun Microsystems, Inc. Method for selectively transferring data instructions to a cache memory
US6327648B1 (en) * 1994-12-09 2001-12-04 Cirrus Logic, Inc. Multiprocessor system for digital signal processing
US7272703B2 (en) * 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
ITMI981564A1 (it) * 1998-07-09 2000-01-09 St Microelectronics Srl Memoria non volatile in grado di eseguire un programma autonomamente
US6260082B1 (en) * 1998-12-23 2001-07-10 Bops, Inc. Methods and apparatus for providing data transfer control
GB2365545B (en) * 1999-12-23 2004-06-02 Ibm Data processing system with master and slave processors
US6691216B2 (en) 2000-11-08 2004-02-10 Texas Instruments Incorporated Shared program memory for use in multicore DSP devices
US6895479B2 (en) 2000-11-15 2005-05-17 Texas Instruments Incorporated Multicore DSP device having shared program memory with conditional write protection
JP2002185430A (ja) 2000-12-13 2002-06-28 Sony Corp 受信装置及び方法
US6349056B1 (en) 2000-12-28 2002-02-19 Sandisk Corporation Method and structure for efficient data verification operation for non-volatile memories
US7007172B2 (en) * 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US7571287B2 (en) 2003-03-13 2009-08-04 Marvell World Trade Ltd. Multiport memory architecture, devices and systems including the same, and methods of using the same
CN1301473C (zh) 2003-09-17 2007-02-21 中兴通讯股份有限公司 多处理器系统共享引导模块的方法
US7325122B2 (en) * 2004-02-20 2008-01-29 International Business Machines Corporation Facilitating inter-DSP data communications
JP4575059B2 (ja) * 2004-07-21 2010-11-04 株式会社日立製作所 ストレージ装置
US7917753B2 (en) * 2005-05-16 2011-03-29 Texas Instruments Incorporated Transferring control between programs of different security levels
JP2009519513A (ja) 2005-12-06 2009-05-14 ボストンサーキッツ インコーポレイテッド 専用スレッド管理を用いたマルチコアの演算処理方法及び装置
US20080235493A1 (en) 2007-03-23 2008-09-25 Qualcomm Incorporated Instruction communication techniques for multi-processor system
JP4643740B2 (ja) * 2007-06-18 2011-03-02 富士通株式会社 プロセッサおよびプリフェッチ支援プログラム
WO2009090502A1 (en) * 2008-01-16 2009-07-23 Freescale Semiconductor, Inc. Processor based system having ecc based check and access validation information means
US20110087922A1 (en) * 2009-10-09 2011-04-14 National Tsing Hua University Test method and tool for master-slave systems on multicore processors
US8478974B2 (en) 2010-06-23 2013-07-02 Assured Information Security, Inc. Method and system for reducing an impact of malware during a booting sequence
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
US9021170B2 (en) * 2011-06-29 2015-04-28 Texas Instruments Incorporated System and method for improving ECC enabled memory timing
US9195581B2 (en) * 2011-07-01 2015-11-24 Apple Inc. Techniques for moving data between memory types
GB2503470B (en) * 2012-06-27 2014-08-13 Nordic Semiconductor Asa Memory protection
US9858229B2 (en) 2014-09-30 2018-01-02 International Business Machines Corporation Data access protection for computer systems
RU2580016C1 (ru) * 2014-10-17 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Способ передачи управления между областями памяти

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11872623B2 (en) 2016-11-04 2024-01-16 Lg Chem, Ltd. Thermosetting composition

Also Published As

Publication number Publication date
US10983931B2 (en) 2021-04-20
EP3289442A1 (en) 2018-03-07
CN107548492B (zh) 2021-10-01
KR20170140225A (ko) 2017-12-20
WO2016176593A1 (en) 2016-11-03
CN107548492A (zh) 2018-01-05
US20160321202A1 (en) 2016-11-03
US10776292B2 (en) 2020-09-15
EP3289442B1 (en) 2023-04-19
US20190188163A1 (en) 2019-06-20
TW201706856A (zh) 2017-02-16

Similar Documents

Publication Publication Date Title
US10776292B2 (en) Apparatus and method for protecting program memory for processing cores in a multi-core integrated circuit
US9135459B2 (en) Security management unit, host controller interface including same, method operating host controller interface, and devices including host controller interface
EP4020168A1 (en) Apparatus and method for secure instruction set execution, emulation, monitoring, and prevention
US8296528B2 (en) Methods and systems for microcode patching
CN110532816B (zh) 存储器保护电路和存储器保护方法
BR102020019667A2 (pt) método e aparelho para criptografia de memória total multichave baseada em derivação de chave dinâmica
TWI808869B (zh) 硬體處理器及處理器
TWI804582B (zh) 用於隨機標籤設定指令的設備及方法
US10599547B2 (en) Monitoring the operation of a processor
GB2514882A (en) Instruction emulation processors, methods, and systems
KR101780303B1 (ko) 시스템 호출을 위한 강건하고 높은 성능의 명령어들
JP7332083B2 (ja) マルチモード保護メモリ
US9880787B2 (en) System and method for memory patching circuits
TWI467475B (zh) 無關於特權位準的區段暫存器讀與寫的系統、設備及方法
TWI617984B (zh) 雙開機區段切換機制
US12008371B2 (en) Method and apparatus for efficient programmable instructions in computer systems
US7774758B2 (en) Systems and methods for secure debugging and profiling of a computer system
US11782835B2 (en) Host apparatus, heterogeneous system architecture device, and heterogeneous system based on unified virtual memory
CN113826098A (zh) 内核运行时随机化的装置和方法
US20120017035A1 (en) Runtime reprogramming of a processor code space memory area
KR100802686B1 (ko) 어레이 바운더리 체킹 방법 및 시스템
CN108958879A (zh) 一种虚拟机的监控方法和装置
CN119201155A (zh) 通过逻辑地址重新映射进行的固件更新
JP2005157537A (ja) メモリアクセス監視装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190411

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190411

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200324

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20201119