JP5815717B2 - マルチプロセッサシステムにおける通信の無効化 - Google Patents

マルチプロセッサシステムにおける通信の無効化 Download PDF

Info

Publication number
JP5815717B2
JP5815717B2 JP2013534050A JP2013534050A JP5815717B2 JP 5815717 B2 JP5815717 B2 JP 5815717B2 JP 2013534050 A JP2013534050 A JP 2013534050A JP 2013534050 A JP2013534050 A JP 2013534050A JP 5815717 B2 JP5815717 B2 JP 5815717B2
Authority
JP
Japan
Prior art keywords
communication
configuration
multiprocessor
memory
processors
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.)
Active
Application number
JP2013534050A
Other languages
English (en)
Other versions
JP2013543183A (ja
Inventor
ドーア,マイケル・ビイ
ドブス,カール・エス
ソルカ,マイケル・ビイ
トロシーノ,マイケル・アール
ギブソン,デイヴィッド・エイ
Original Assignee
コーヒレント・ロジックス・インコーポレーテッド
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 コーヒレント・ロジックス・インコーポレーテッド filed Critical コーヒレント・ロジックス・インコーポレーテッド
Publication of JP2013543183A publication Critical patent/JP2013543183A/ja
Application granted granted Critical
Publication of JP5815717B2 publication Critical patent/JP5815717B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • 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
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration

Description

本発明の分野は、概してコンピュータシステムのセキュリティに関し、更に詳細にはソフトウェアによって定義されるセキュアシステムに関する。
人間の基本的なニーズの内の1つは、安心感、つまり保証されていると感じる要求である。残念なことに、時代を経るに従い、世界では、例えば財産を盗む又は財産を損壊する、組織若しくは政府の邪魔をする又は組織若しくは政府に損害を与える等の危害を加えることを望む組織が存在するようになってきた。彼らの動機は、私利を求めることから政治的な理由までさまざまである。社会はデジタル時代に突入し、通信と情報との境界線は更に曖昧になり、定量化可能な保証水準に達するためのセキュリティ及び方法は、現在の生活水準を持続するために重大度を増している。
いかなる時又は場所においてもデジタル世界に通信し、接続したいとする希求が、商業的な情報セキュリティ要件の背後にある力である。ユビキタス通信ソリューション及びユビキタスコンピューティングソリューションに向かって進化してきたこの環境は、初期には通信分野によって牽引されてきた。この分野は、消費者セグメント、工業セグメント、医療セグメント、公衆安全セグメント、政府セグメント及び軍事セグメントに分かれる。従来、軍隊がこの分野を技術的に先導してきた。しかし、産業界がこの能力を実現することによってその操作上の慣行を受け入れ、進化させてきたことにより、消費者市場、産業市場/企業市場及び医療市場は現在類似した課題に直面している。その結果、セキュリティの改善が所望されている。
マルチプロセッサファブリックによってシステムを保護するための多様な実施形態が以下に提供される。マルチプロセッサファブリックは、複数のプロセッサ及び複数の通信要素を含んでよい。各通信要素は動的に構成可能であってよい、並びに/又は考えられる他の要素の中で複数の通信ポート、メモリ、及び/若しくはルーティングエンジンを含んでよい。各プロセッサは、考えられる他の要素の中で少なくとも1つの算術論理演算装置、命令処理装置、及び/又は複数のプロセッサポートを含んでよい。通信要素及びプロセッサは、点在的にともに結合され得る。例えば、プロセッサのそれぞれについて、複数のプロセッサポートを複数の通信要素の第1のサブセットに結合するために構成してよく、通信要素のそれぞれについて、通信ポートの第1のサブセットを複数のプロセッサのサブセットに結合するために構成し、通信ポートの第2のサブセットを複数の通信要素の第2のサブセットに結合するために構成してよい。
一実施形態では、マルチプロセッサファブリックのための構成が、マルチプロセッサファブリック又はマルチプロセッサファブリックを含むシステムのブートプロセスの間に、例えば自動的に受け取られてよい。構成は、プロセッサ及び/又は通信要素の内の1つ又は複数の間の通信経路の無効化を指定してよい。例えば、構成は、1つ若しくは複数のプロセッサと1つ若しくは複数の通信要素との間、1つ若しくは複数のプロセッサと1つ若しくは複数の他のプロセッサとの間、及び/又は1つ若しくは複数の通信要素と1つ若しくは複数の他の通信要素との間の通信経路の無効化を指定してよい。
少ない例としては、構成は、例えば、動作中に第1の部分を第2の部分から隔離するために、マルチプロセッサファブリックの第1の部分とマルチプロセッサファブリックの第2の部分との間の通信の無効化を指定してよい。別の例として、構成は、マルチプロセッサファブリックの第1の部分の、マルチプロセッサファブリックの第2の部分によるメモリアクセスの無効化を指定してよく、これにより例えば第2の部分は動作中に第1の部分内に含まれるメモリにアクセスできなくなる。
それに応じて、マルチプロセッサファブリックは、構成によって指定される通信経路を無効にするようにハードウェア内で構成されてよい。その結果、マルチプロセッサファブリックは、構成に従ってソフトウェアアプリケーションを実行するように操作されてよい。
一実施形態では、構成することは、1つ若しくは複数のプロセッサ及び/又は1つ若しくは複数の通信要素に対応するレジスタ値を設定して、その構成によって指定される通信経路を無効にすることを含んでよい。一実施形態では、この構成後、無効にされた通信経路はソフトウェアを介して回復可能であってはならない。
代わりに又は加えて、上述の構成は、マルチプロセッサファブリックにロードされたソフトウェア又はコードに基づいてロードされてよい。例えば、当初、構成を含む認証されたコードがロードされてよい。一実施形態では、認証されたコードは、動作を通して使用され得る複数の構成又は構成に対する修正を含んでよい。例えば、第2の構成は認証されたコードから受け取られてよく、上述の自動的な構成は、第2の構成のために実行されてよい。
好ましい実施形態の以下の詳細な説明を、以下の図面と併せて検討することで、本発明のよりよい理解を得ることができる。
本発明の実施形態を活用することができる例示的なコンピュータシステムを示す図である。 マルチプロセッサシステムの例示的な実施形態を示す図である。 マルチプロセッサシステムの例示的な実施形態を示す図である。 マルチプロセッサシステムの例示的な実施形態を示す図である。 マルチプロセッサシステムの例示的な実施形態を示す図である。 マルチプロセッサシステムの例示的な実施形態を示す図である。 マルチプロセッサシステムの例示的な実施形態を示す図である。 いくつかの実施形態に従って、マルチプロセッサシステムで通信を無効にするための方法を示すフローチャートである。 いくつかの実施形態に従って、マルチプロセッサシステムで通信を無効にするための方法を示すフローチャートである。 マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。 マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。 マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。 マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。 マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。 マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。 マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。 マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。 マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。
本発明は様々な修正及び代替形態を許容しているが、その特定の実施形態を例として図示し、ここに詳細に説明する。しかしながら、これらの図面及びそれに関する詳細な説明は、本発明をここに開示する特定の形態に制限することを意図したものではなく、反対に、添付の請求項によって定義される本発明の精神及び範囲内において、全ての修正形態、均等物及び代替形態を包含することを意図したものであることを理解するべきである。
本願明細書作成に当たって、参考にした参照文献は、Michael B. Doerr、William H. Hallidy、David A. Gibson、及びCraig M. Chaseによる、2003年6月24日に出願された「点在するストール伝搬プロセッサ及び通信要素を備えた処理システム(Processing System with Interspersed Stall Propagating Processors and Communication Elements)」と題する米国特許第7,415,594号明細書である。
用語
以下に、本願で使用する用語集を示す。
記憶媒体 −多様なタイプのメモリ装置又は記憶装置のいずれか。用語「記憶媒体」は、例えば、CD−ROM、フロッピー(登録商標)ディスク104若しくはテープ装置等のインストール媒体、DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM等のコンピュータシステムメモリ若しくはランダムアクセスメモリ又は例えばハードドライブ、光記憶装置、若しくはROM、EPROM、FLASH等の磁気媒体のような不揮発性メモリを含むことが意図される。記憶媒体は、他のタイプのメモリ又はその組合せも含んでよい。更に、メモリ記憶媒体はプログラムが実行される第1の媒体内に位置してよい、及び/又はインターネット等のネットワーク上で第1のコンピュータに接続する第2の異なるコンピュータ内に位置してよい。後者の場合、第2のコンピュータは、実行のために第1のコンピュータにプログラム命令を提供してよい。用語「記憶媒体」は、例えばネットワーク上で接続される異なるコンピュータ内等、異なる場所に常駐してよい2つ以上の媒体を含んでよい。
キャリヤ媒体 −上述の記憶媒体、並びにバス、ネットワーク等の物理伝送媒体及び/又は電気信号若しくは光信号等の信号を伝達する他の物理伝送媒体。
プログラム可能ハードウェア要素 −プログラマブル相互接続又はハードワイヤード相互接続を介して接続される複数のプログラマブル機能ブロックを含む多様なハードウェア装置を含む。例として、FPGA(フィールドプログラマブルゲートアレイ)、PLD(プログラム可能論理回路)、FPOA(フィールドプログラマブルオブジェクトアレイ)、及びCPLD(コンプレックスPLD)が挙げられる。プログラマブル機能ブロックは、細粒(組み合わせ論理又はルックアップテーブル)から粗粒(算術論理演算装置又はプロセッサコア)に及ぶことがある。プログラム可能ハードウェア要素は、「リコンフィギャラブルロジック」と呼ばれることもある。
特定用途向け集積回路(ASIC) −この用語は、その通常の意味の全てを包含することが意図される。ASICはビルディングブロックとしてプログラマブルプロセッサコアを含んでよいが、本用語ASICは、汎用プログラマブル装置ではなく、ある特定のアプリケーションのためにカスタマイズされた集積回路を含むことが意図される。セルホンのセル、MP3プレーヤーのチップ、及び多くの他の単一機能ICがASICの例である。ASICは、通常、Verilog又はVHDL等のハードウェア記述言語で説明される。
プログラム −用語「プログラム」は、その通常の意味の全てを包含することが意図される。用語「プログラム」は、1)メモリ内に記憶することができ、プロセッサによって実行可能であるソフトウェアプログラム、又は2)プログラム可能ハードウェア要素つまりASICを構成するために使用可能なハードウェア構成プログラムを含む。
ソフトウェアプログラム −用語「ソフトウェアプログラム」は、その通常の意味の全てを包含することが意図され、記憶媒体に記憶され、プロセッサによって実行され得るいずれのタイプのプログラム命令、コード、スクリプト、及び/若しくはデータ、又はその組合せも含む。例示的なソフトウェアプログラムは、C、C++、PASCAL、FORTRAN、COBOL、JAVA(登録商標)、アセンブリ言語等のテキストベースのプログラミング言語で作成されるプログラム、グラフィックプログラム(グラフィックプログラミング言語で作成されるプログラム)、アセンブリ言語プログラム、機械言語にコンパイルされたプログラム、スクリプト、及び他のタイプの実行可能なソフトウェアを含む。ソフトウェアプログラムは、何らかの方法で相互運用する2つ以上のソフトウェアプログラムを含んでよい。
ハードウェア構成プログラム −プログラム可能ハードウェア要素つまりASICをプログラミングする又は構成するために使用できる、例えばネットリスト又はビットファイル等のプログラム。
コンピュータシステム −パーソナルコンピュータシステム(PC)、メインフレームコンピュータシステム、ワークステーション、ネットワーク機器、インターネット機器、パーソナルデジタルアシスタント(PDA)、グリッドコンピューティングシステム若しくは他の装置、又は装置の組合せを含む多様なタイプのコンピューティングシステム又は処理システムの内のいずれか。一般に、用語「コンピュータシステム」は、記憶媒体からの命令を実行する少なくとも1つのプロセッサを有する任意の装置(又は装置の組合せ)を包含するように幅広く定義できる。
自動的に −ユーザ入力がアクション又は動作を直接的に指定する又は実行することなく、コンピュータシステム(例えば、コンピュータシステムによって実行されるソフトウェア)又は装置(例えば、回路、プログラム可能ハードウェア要素、ASIC等)によって実行されるアクション又は動作を指す。従って、用語「自動的に」は、ユーザが入力を提供して、動作を直接的に実行するユーザによって手動で実行される又は指定される動作とは対照的である。自動手順は、ユーザによって提供される入力によって開始されてよいが、「自動的に」実行される以後のアクションはユーザによって指定されない。つまり、ユーザが実行する各アクションを指定する「手動で」は実行されない。例えば、各フィールドを選択し、(例えば、情報を入力する、チェックボックス、ラジオ選択等を選択することによって)情報を指定する入力を提供することによって電子書式を記入するユーザは、たとえコンピュータシステムがユーザアクションに応えて書式を更新しなければならないとしても、手動で書式を記入している。ユーザ入力がフィールドに対する回答を指定することなく、コンピュータシステム(例えば、コンピュータシステム上で実行中のソフトウェア)が書式のフィールドを分析し、書式を記入する場合、書式は、コンピュータシステムによって自動的に記入されてよい。上記に示されたように、ユーザは、書式の自動記入を呼び出すことができるが、ユーザは書式の実際の記入では呼び出されない(例えば、ユーザがフィールドに対する回答を手動で指定しているのではなく、むしろ回答は自動的に記入されている)。本明細書は、ユーザが講じた処置に応えて自動的に実行されている動作の多様な例を提供する。
システムセキュリティ
単独で情報のセキュリティを提供する特長又は機能はない。セキュリティは、システムのプロパティであり、ユーザ、プロトコル、ソフトウェア及びハードウェアの組合せである。情報セキュリティの全体的な目標は、許可ユーザ間で情報を処理し、通信すること、及びその情報の不正アクセスを防ぐことである。
情報セキュリティの目標は、以下のセキュリティ目的に対処することによって内訳し、達成することができる。
1.(意図された使用のみのためのシステム及びデータの)可用性。可用性は、システムが迅速に機能し、サービスが許可ユーザに対して拒否されないことを保証するために意図された要件である。この目的は、データの不正な削除を実行する又はそれ以外の場合、サービス又はデータの拒否を引き起こす故意の又は偶発的な試み、及び不正な目的にシステム又はデータを使用する試み保護する。可用性は、頻繁に組織の最大のセキュリティ目的である
2.(システム及びデータの)完全性。完全性には次の2つの面がある。つまり、データ完全性(記憶内で、処理中又は移動中に不正なやり方でデータが改変されていないという性質)又はシステム完全性(不正な操作を受けない、損なわれないやり方で意図された機能を実行するときにシステムが有する品質)である。完全性は、一般に可用性に続く組織の最も重要なセキュリティ目的である。
3.(データ及びシステム情報の)機密性。機密性は、個人情報又は機密情報が未許可の個人に開示されないという要件である。機密性保護は、記憶されているデータ、処理中のデータ及び移動中のデータに適用される。多くの組織では、機密性は、しばしば重要性という点で可用性と完全性の後回しにされる。しかし、いくつかのシステムにとって及び大部分のシステムの特定のタイプのデータ(例えばユーザ識別)にとって、機密性はきわめて重要である。
4.(個人レベルに対する)説明責任。説明責任は、あるエンティティの行為を、そのエンティティについて一意に追跡できるという要件である。説明責任は、多くの場合組織の方針の要件であり、否認防止、抑止、障害分離、侵入検出及び侵入防止、並びに事後回復及び訴追を直接的に支援する。
5.(他の4つの目的が適切に達成されたという)保証。保証は、技術的な及び操作上両方のセキュリティ方策が意図されたとおりに機能して、システム及びシステムが処理する情報を保護するという信頼性の基盤である。他の4つのセキュリティの目的(完全性、可用性、機密性、及び説明責任)は、必要とされる機能性が存在し、正しく実施されるとき、(ユーザ又はソフトウェアによる)意図的ではないエラーに対して十分な保護がなされているとき、及び意図的な侵入又は迂回に対する十分な抵抗性があるときに、特定の実装例によって適切に満たされている。保証は、保証がないと他の目的が達成されない場合には必須となることがある。しかしながら、保証は連続したつながりである。必要とされる保証の量はシステム間で変化する。
本明細書に説明される実施形態は、システム開発法をサポートし、上述の目的の内のいくつか又はすべてを達成できる情報セキュリティ開発フレームワークに関する。本明細書に説明される実施形態は、セキュアシステムを作り出すための開発プロセスを含む。また、実施形態は、情報セキュリティのターゲットとなる保証水準品質の設計及び開発において設計者及び/又はエンジニアを導くことができる関連ソフトウェア及びハードウェア開発ツール一式も含む。この目標保証水準は、上述の目的のそれぞれにおいて機能性要件を定めることと、満たすこととの両方によって達成され得る。達成される保証水準は、システムが意図された機能性を提供するだけではなく、望ましくないアクションが発生しないことを保証することも可能にし得る。
用語「開発方法論」は、情報セキュリティ開発プロセスの定義の根底にあり、定義を導く規則及び必要条件のグループを概略する、論理的根拠及び一連の哲学的前提を指すことがある。
用語「開発プロセス」は、方法論に基づいた開発のライフサイクルを指すことがある。より粗いレベルでは、開発プロセスは、ユーザの要件及び制約を、設計、実装、検証、配備、及び保守を通じて動かす方法を説明する。
上述のように、本明細書に説明される開発ツール一式は、開発プロセスを通してユーザ又は開発者を導き、方法論を施行するために実行可能であり、可能な場合にはステップ及びステップの一部分を自動化することができる1つ又は複数のソフトウェアプログラムのセットのことである。
図1 −例示的なコンピュータシステム
図1は、本発明の実施形態を実装する例示的なコンピュータシステムを示している。本発明の実施形態は、標準デスクトップコンピューティングプラットホーム(例えば、PC又はMac)等の多様なコンピュータシステム、サーバ、移動通信装置、スマートホンのいずれかで使用することができる。コンピュータシステムは、好ましくはHyperX(登録商標)技術に基づいたプロセッサを含む。HyperXプロセッサは、参照することによって援用される上記米国特許第7,415,594号に説明されている。
図2及び図3 −例示的なマルチプロセッサシステム
図2は、「HyperXアーキテクチャ」と呼ばれることがあるマルチプロセッサシステムの例示的な実施形態を示している。マルチプロセッサシステム又はファブリックは、複数のプロセッサ、メモリ(統一型及び/又は分散型)、及び通信(又は通信ネットワーク)リソースを含む並列計算プラットホームである。例示的なマルチプロセッサシステムは、プロセッサのそれぞれが少なくとも1台の他のプロセッサに結合され、それぞれのプロセッサ間に複数の通信機構がある複数のプロセッサを含む。マルチプロセッサシステムは、プロセッサに結合された複数のメモリを含んでよい。例えば、メモリはプロセッサの間に点在してよい。更に詳細には、マルチプロセッサシステムは、プロセッサの間に点在する複数の通信装置を含んでよく、通信装置のそれぞれはメモリ及びルーティングロジックを含む。本明細書において、用語「結合される」は、直接的に又は間接的に接続されていることを意味する。マルチプロセッサシステムは、単一の集積回路、単一のプリント基板、又は単一のシステム上で実現されることもあれば、実現されないこともある。例えば、マルチプロセッサシステムは、複数の集積回路、複数のプリント基板、複数のシステム、又はそのいずれの組合せとして実現されることがある。
かかるマルチプロセッサシステムの例は、前記米国特許第7,415,594号に開示される、マルチコアHyperXアーキテクチャである。一実施形態では、HyperXアーキテクチャの中心コアビルディングブロックは、HyperSliceと呼ばれるスケラブルな単位セルベースのハードウェアファブリックである。ハードウェアアーキテクチャは、このコア単位セルを複製して、マルチコア並列処理システムを作成することによって形成され得る。各HyperSliceは、1つ又は複数のDMR(「通信要素」と呼ばれることもある、データメモリおよびルータ)、及び処理要素(PE)を含んでよい。
DMRは、処理リソースへの高速ルーティングサービスのために、データメモリ、制御論理回路、レジスタ及びルータを提供してよい。ハードウェアファブリックは、HyperSliceをともに連結することによって作成され、オンチップメモリネットワークを形成する。オンチップメモリネットワークは、処理リソースとは無関係に、かつ処理リソースに対してトランスペアレントに動作する。オンチップメモリネットワークは、リアルタイムプログラム可能及び適応可能通信ファブリックを通じて、機能又はシステム実装の任意のネットワークトポロジをサポートするHyperSlice間にオンデマンド帯域幅を提供してよい。HyperSliceの調整されたグループは、ソフトウェア制御下で「オンザフライ」で形成、及び再形成されてよい。機能を評価するために使用されるハードウェアの量を動的に改変するこの能力によって、処理のボトルネックを除去するためのハードウェアリソースの最適な適用が可能になる。
DMRは、チップ全体に渡って及びチップからチップへと、最も近い近傍通信、地域的通信及びグローバル通信を提供してよい。DMRは、メモリからメモリへ、メモリからレジスタへ、レジスタからメモリへ、及びレジスタからレジスタへの4つの異なる転送モードを通してこれを実行してよい。転送モードのそれぞれは、物理的にDMRリソースを使用して、データ及びソフトウェアアルゴリズムの要件の局所性に応じて、不同でデータ/メッセージを送信してよい。「クイックポート」ファシリティは、プロセッサからどこかへ迅速に1ワードのデータを転送するために提供されてよい。ブロック転送の場合、DMR内部のダイレクトメモリアクセス(DMA)エンジンが、メモリ及びルーティングファブリック全体でのデータの移動を管理するために使用可能であってよい。最も近い近傍通信の場合、共用メモリ及びレジスタを使用することが、データ移動の最も効率的な方法である場合がある。地方及び世界でのデータ移動の場合、ルーティングファブリックを使用することが、最も効率的な方法である場合がある。通信チャネルは、動的又は静的のどちらかである場合がある。動的なルートはデータ転送のためにセットアップされ、他のデータ転送用にルーティングリソースを解放するために、転送完了時に切断されてよい。静的ルートは、プログラム実行を通してインプレースであってよく、主に高い優先順位及び重大な通信に使用される。データ転送及び通信チャネルの選択は、ソフトウェアプログラム制御下であってよい。複数の通信チャネルは、あらゆる送信者と受信者との間の同時データ転送をサポートするために存在してよい。
DMRのアーキテクチャによって、異なる互換性があるPEが、特定の用途用のシステムを最適化するためにマルチプロセッサファブリックで使用できる。HyperXマルチプロセッサシステムは、PEの異種アレイ又は同種アレイのどちらかを含んでよい。PEは従来のプロセッサであってよいし、別法としてPEは、プロセッサの従来の定義に適合しなくてもよい。PEは、プログラム化可能性がより高い性能、より小さい面積、及び/又はより低い電力とトレードオフされる場合、単に、特定の論理機能用のハードワイヤードプロセッサとして機能する論理ゲートの集合体であってよい。
図2は、例示的なHyperXシステムの処理要素(PE)及びデータメモリルータ(DMR)のネットワークの図を示している。PEはボックスとして図示され、DMRは円として図示されている。DMR間のルーティングチャネルは、点線として図示されている。黒べたの三角形はオフメッシュ通信を示し、実線は、DMR間のアクティブデータ通信を示す。計算タスクはその数値識別子によって示され、それを実行しているPEに置かれている。通信のために使用されているデータ変数はその名称によって示され、それを含むDMRに置かれている。
図3は、チップ上に含まれる例示的なマルチプロセッサシステムを示している。図示したように、チップは、図2に関して上述した実施形態と同様に、内部マルチプロセッサファブリックだけではなくチップの外部に複数のI/Oルータを含んでよい。図示したように、プロセッサアーキテクチャは、固有の多次元性を含んでよいが、図2から図4Aに図示したようにその現在の金型実現で物理的に平坦化されてよい。プロセッサアーキテクチャは、高エネルギー効率特性を有することができ、基本的にスケラブルで、高い信頼性を有することができる-これは即ち、安全な概念と信頼できる概念の両方を表す。プロセッサアーキテクチャが、前例のない性能を達成できるようにする態様は、合理化されたプロセッサ、メモリネットワーク及びフレキシブルIOを含む。処理要素(PE)又はコアは本格的なDSP/GSPであってよく、同時にハードウェアリソースの利用を最大限にする一方で、実行パイプラインを動的に拡大してスループットを維持してよい可変幅命令ワード命令セットアーキテクチャによって持続されるメモリ対メモリ(キャッシュレス)アーキテクチャに基づいてよい。例えば、単一命令は、一実施形態に従って、40を超える従来のRISK動作を単一のサイクルで開始できる。
図4、図5、図6A及び図6Bは、マイクロプロセッサアーキテクチャのハードウェア/ソフトウェア動作スタックの別の図を示す。メモリネットワーク(DMR)は、同様に実行モデルに2つの機能を与え得る自律的な瞬時帯域幅を提供してよい。第1に、メモリネットワークは、混合メモリプログラミングモデルを有効にしてよい。歴史的に、プログラミングモデルは、ハードウェア制限及びプログラミングモデル制限のため、完全に分散された実行メモリモデル又は完全に共用される実行メモリモデルに制限されてきた。これは、ハードウェア適応性及び再構成可能性の非効率につながる。混合メモリモデルは、リアルタイムで、実行しているソフトウェアの変化する力学及び要件に反応してよい。第2に、通信ネットワークは、リアルタイムで適応可能及び再構成可能等、論理的にトポロジから独立してよい。この独立性によって、適切なハードウェアトポロジを作成して、アルゴリズム/システムの自然な並列性をサポートすることができ、従ってアルゴリズム/システムを特定のトポロジに制約しない。これらの機能によって、いずれのシステムの自然な効率も実現可能とすることができる。更に、マルチプロセッサシステムは、本質的にスケラブルであり、自己同期化してよく、システムによって要求される場合は自律的なメモリコヒーレンスを効果的にサポートできる。一実施形態では、このシステムは、数百から数千のプロセッサをハードウェアとソフトウェアの両方でサポートする多くの金型/チップ全体に分散されてよい。
1つの特定の実施形態では、本明細書に説明されるソフトウェア定義セキュアシステム(SDS2)の機能を以下の通りに説明できる。例えば、キーの管理と生成、暗号化/復号、認証、プログラマブルブート、物理的な隔離と論理的な隔離等の機能のツールボックス(例えば、図5に示す)がある。更に、固定機能、構成可能性、再構成可能性、及びプログラム化可能性をサポートする特性のあるハードウェアがある。開発プロセスを通して、開発者は、ハードウェアと併せて機能のツールボックスを使用してセキュアシステムの挙動を作成する、又はプログラミングすることができる場合がある。
いったんプログラミングされたシステムは、それが安全に動作するように作成された元のツールボックス及びハードウェアを再利用するように構成され得る。従来、セキュアシステムは、意図されている安全な挙動を実行するリソースとは別個のリソースから作成され、2つは、断片的にセキュアシステムの開発につながり、効果のない解決策を作り出す。システムビューからの全体的なアプローチに基づくこの新しい機能は、(1)差別化されたタイプのセキュリティを必要とする千差万別のシステムにカスタマイズされた安全なソリューションを作成すること、(2)安全なシステムの動作及び性能を静的に及び動的に最適化すること、(3)ハードウェア及びソフトウェア相互作用の基本命令の定められた挙動からシステムを徹底的に設計することを可能にする。この結果、実証可能な方法でセキュアシステムを開発する潜在的な能力が生まれる。
図6Aは、例示的なソフトウェアアーキテクチャを示し、図6Bは、上述のツールボックスによって影響を及ぼされることがあるアーキテクチャの部分を示している。
図7 −マルチプロセッサシステムの構成
図7は、マルチプロセッサシステムでの通信を無効にするための方法を示す。図6に示す方法は、他の装置の中で、上記の図に示すコンピュータシステム又は装置のいずれかと併せて使用され得る。多様な実施形態では、図示した方法要素のいくつかは、示されているのとは異なる順序で並行して実行されてよい、又は省略されてよい。追加の方法要素も所望されるように実行されてよい。図示したように、この方法は以下の通りに動作してよい。
702で、マルチプロセッサシステム又はファブリックの構成が、例えば自動的に受け取られてよい。上述のように、マルチプロセッサファブリックは複数のプロセッサ及び複数の通信要素を含んでよい。各通信要素は、動的に構成可能であってよい及び/又は他の考えられる要素の中で複数の通信ポート、メモリ及び/又はルーティングエンジンを含んでよい。各プロセッサは、考えられる他の要素の中で少なくとも1つの算術論理演算装置、命令処理装置及び/又は複数のプロセッサポートを含んでよい。通信要素及びプロセッサは、点在的にともに結合され得る。例えば、プロセッサのそれぞれに、複数のプロセッサポートが複数の通信要素の第1のサブセットに結合するために構成されてよく、通信要素のそれぞれに、通信ポートの第1のサブセットが複数のプロセッサのサブセットに結合するために構成され、通信ポートの第2のサブセットが複数の通信要素の第2のサブセットに結合するために構成されてよい。
構成は、プロセッサ及び/又は通信要素の内の1つ又は複数の間の通信経路の無効化を指定してよい。例えば、構成は、1つ若しくは複数のプロセッサと1つ若しくは複数の通信要素との間、1つ若しくは複数のプロセッサと1つ若しくは複数の他のプロセッサとの間及び/又は1つ又は複数の通信要素と1つ若しくは複数の他の通信要素との間の通信経路の無効化を指定してよい。少ない例としては、構成は、例えば、動作中に第1の部分を第2の部分から隔離するために、マルチプロセッサファブリックの第1の部分とマルチプロセッサファブリックの第2の部分との間の通信の無効化を指定してよい。別の例として、構成は、マルチプロセッサファブリックの第1の部分の、マルチプロセッサファブリックの第2の部分によるメモリアクセスの無効化を指定してよく、従って例えば第2の部分は動作中に第1の部分内に含まれるメモリにアクセスできない。
よって、構成は、例えばマルチプロセッサファブリックの部分を保護するためにマルチプロセッサファブリック内の多様な通信経路を無効にすることができる。例えば、構成は、マルチプロセッサファブリックの部分を保護し、マルチプロセッサファブリックの残りにセキュリティ機能を提供できるようにしてよい。別の例として、マルチプロセッサファブリックの隔離された部分又は制限された部分は、マルチプロセッサファブリックの他の部分(例えば、マルチプロセッサファブリックの他の部分で実行している潜在的に悪意がある可能性がある他のソフトウェア)からの不正操作から安全である必要がある重要な機能を実行するために使用され得る。一実施形態では、構成は、マルチプロセッサファブリックの第1の部分がマルチプロセッサファブリックの残りにデータを提出することができるが、データを受け取ることができないよう指定してよい。別法として、その部分に対する入力データは、ポートの特定のサブセットに制限されてよく、(例えば、マルチプロセッサファブリックの隔離された部分で実行している)安全な方法に従って処理又は分析されてよい。構成は、例えば、所望されるように、ファブリック及び/又はファブリック上で実行しているソフトウェアのセキュリティを高めるために、マルチプロセッサファブリック内のさまざまなバリアのいずれかを指定してよい。更に、構成は、後述される手段のような他のセキュリティ手段を指定してよいことも留意されたい。よって、構成は、図7及び図8に説明されるような通信経路の無効化を指定してよいが、追加のセキュリティ手段も指定してよい。
構成は、さまざまな方法に従って受け取られてよい。例えば、構成は、マルチプロセッサファブリック又はマルチプロセッサファブリックを含むシステムのブートプロセスの間に受け取られてよい。より詳細には、一実施形態では、構成は、読取専用メモリ又は不揮発性メモリ等の安全なメモリに記憶されてよい。代わりに又は更に、構成(又は構成を含む画像/メモリ)は、セキュリティ手段(例えば、他の多様な可能性の中で、画像のハッシュを予想されるハッシュに比較すること)を使用して検証されてよい及び/又は認証されてよい。代わりに又は更に、構成(又は構成を含む画像/メモリ)は暗号化された形式で記憶されてよく、それが受け取られるときに復号されてよい。別の実施形態では、構成はホストシステム(例えば、タスクを実行するためのソフトウェア及び/又はマルチプロセッサシステムの動作を試験する間に、例えば図1に示すようなコンピュータシステム)から受け取られてよい。
いくつかの実施形態では、構成は、マイクロプロセッサシステム上での実行用のソフトウェアを含んでよい又はソフトウェアと併せて使用されてよい。例えば、構成は、上述のように検証され、認証され及び/又は復号されてよいパッケージの一部として受け取られてよい。従って、構成は、マルチプロセッサファブリックの第1の部分のために隔離又はセキュリティゼーションを指定してよく、検証済みのソフトウェアがその第1の部分に配備されてよい。よって、一実施形態では、その第1の部分のためのハードウェア/ソフトウェア組合せは、構成を介して保護され得る。
それに応じて、704で、マルチプロセッサファブリックは、例えば、構成によって指定される通信経路を無効にするように、構成に従ってハードウェア内で自動的に構成されてよい。従って、マルチプロセッサファブリックは、構成に従ってソフトウェアアプリケーション(又はアプリケーションの部分)を実行するように構成されてよい。一実施形態では、構成することは、1つ若しくは複数のプロセッサ及び/又は1つ若しくは複数の通信要素に対応するレジスタ値を設定して、その構成によって指定される通信経路を無効にすることを含んでよい。一実施形態では、構成後、無効にされた通信経路は、ソフトウェアを介して回復可能であってはならない。
706で、マルチプロセッサファブリックは、例えば、構成を使用して1つ又は複数のソフトウェアアプリケーションを実行する等、動作してよい。例えば、マルチプロセッサファブリックの第1の部分が保護される、つまり上記の構成を介してマルチプロセッサファブリックの別の部分から隔離される場合、第1の部分は動作を通して保護又は隔離されたままとなってよい。一実施形態では、上記に説明された方法は、システムを保護するために実行されてよく、システムがリセットされる(例えば、リブートされる又は電源が切られる)まで「閉じ込め」られる、つまり保護されてよい。よって、一実施形態では、システムは上記で受け取られた構成を使用して静的に保護されてよい。
この方法に関する追加の詳細は、例えば「バリア」及び/又は他のセキュリティ動作の作成に関して以下に提供されることに留意されたい。
図8 −マルチプロセッサシステムで通信を動的に無効にすること
図8は、マルチプロセッサシステムでの通信を無効にするための方法を示す。図6に示す方法は、他の装置の中で上記の図に示すコンピュータシステム又は装置のいずれかと併せて使用され得る。更に詳細には、図7の方法に関して上述した多様な詳細はこの方法に適用されてもよい。ただし、上述の静的な構成の代わりに、マルチプロセッサシステムの構成は、後述されるように動的な方法で実行されてよい。多様な実施形態では、図示した方法要素のいくつかは、示されているのとは異なる順序で並行して実行されてよい又は省略されてよい。追加の方法要素も、所望されるように実行されてよい。図示したように、この方法は以下の通りに動作してよい。
802で、マルチプロセッサシステム又はファブリックのための第1の構成は、例えば自動的に受け取られてよい。上記と同様に、第1の構成は、例えばマルチプロセッサシステム及び/又はマルチプロセッサシステム上で実行中のソフトウェアにセキュリティを提供するために、プロセッサ及び/又は通信要素の内の1つ又は複数の間の通信経路の無効化を指定してよい。ただし、第1の構成は、他の可能性の中で、後述される手段等の他のセキュリティ手段も指定してよい。
上述のように、第1の構成は、マイクロプロセッサシステム上での実行用のソフトウェアを含んでよい又はソフトウェアと併せて使用されてよい。例えば、第1の構成は、例えば上述のように検証されてよいパッケージの一部として受け取られてよい。従って、構成は、マルチプロセッサファブリックの第1の部分のために隔離又はセキュリティゼーションを指定してよく、検証済みのソフトウェアが少なくともその第1の部分に配備されてよい。よって、一実施形態では、その第1の部分のためのハードウェア/ソフトウェア組合せは、構成を介して保護され得る。
第1の構成は、さまざまな方法に従って受け取られてよい。例えば、第1の構成は、マルチプロセッサファブリック又はマルチプロセッサファブリックを含むシステムのブートプロセスの間に受け取られてよい。一実施形態では、第1の構成は、ブート時に自動的にロードされる読取専用メモリ又は不揮発性メモリ等の安全なメモリに記憶されてよい。代わりに又は更に、構成(又は、構成を含む画像/メモリ)はセキュリティ手段(例えば、他の多様な可能性の中で、画像のハッシュを予想されるハッシュに比較すること)を使用して検証されてよい及び/又は認証されてよい。代わりに又は更に、構成(又は構成を含む画像/メモリ)は、暗号化された形式で記憶されてよく、それが受け取られるときに復号されてよい。従って、構成及び/又はソフトウェアは、読み取られるだけではなくむしろ多様なセキュリティ手段を使用して検証され、認証され、及び/又は復号されてよい。
上記704と同様に、804で、マルチプロセッサファブリックは、例えば、構成によって指定される通信経路を無効にするように、構成に従ってハードウェア内で自動的に構成されてよい。従って、マルチプロセッサファブリックは、構成に従ってソフトウェアアプリケーション(又はアプリケーションの部分)を実行するように構成されてよい。
806で、上記706と同様に、マルチプロセッサファブリックは、例えば、構成を使用して1つ又は複数のソフトウェアアプリケーションを実行する等、動作してよい。例えば、マルチプロセッサファブリックの第1の部分が保護される、つまり上記の構成を介してマルチプロセッサファブリックの別の部分から隔離される場合、第1の部分は動作を通して保護又は隔離されたままとなってよい。
いくつかの実施形態では、808において、図7の方法(702から706)は、例えばマルチプロセッサファブリックの動作中に動的に、複数回実行されてよい。例えば、第1の構成は、認証されたコードを実行するマルチプロセッサシステムの安全な部分でシステムを構成するために使用されてよい。一実施形態では、認証されたコードは、動作を通して使用されてよい複数の構成又は構成に対する修正を含んでよい。例えば、第2の構成は、認証されたコードから受け取られてよく、上述の自動的な構成は、第2の構成のために実行されてよい。この例では、初期構成は、システムが適切に保護されており、コードが適切に検証されていることを保証し得る。従って、追加の再構成及びその追加の再構成を含むコードから生じる動作は、マルチプロセッサシステムの動作を通して安全であり続けてよい。この別のやり方でいったん構成されると、マルチプロセッサシステムで実行中のコードは、実行中にマルチプロセッサシステムを動的に再構成できることがある。初期ソフトウェアが検証され、安全であると仮定すると、従って、マルチプロセッサシステムの動作は安全なままとなることができる。
マルチプロセッサシステムを保護するための例示的な詳細
以下に、上述の詳細のような、マルチプロセッサシステムを保護するための例示的な詳細を示す。これらの詳細は単なる例として示され、本明細書に説明される実施形態の範囲を制限することを意図していない。以下の説明は、図9から図15に対応する。
層化された、つまり段階的な開発と検証のプロセスは、ソフトウェアと、ソフトウェアによって定義可能なハードウェア一式を活用して、例えば、アドレス指定、サードパーティIP保護、セキュアブート、デジタル著作権管理(DRM)、及びセキュア処理(レッド/ブラック)等の、実証可能な安全な(正式な方法によって含む)情報セキュリティのソリューションを作成してよい。
本明細書に説明される実施形態は、層化されたつまり段階的な開発と検証プロセスを通して実証可能な安全な情報セキュリティソリューションを作成するために単一のフレームワークを提供してよい。このプロセスは、部分的に、ソフトウェアIPを保護するために、及び例えば単一の金型上でブラック/レッドの処理を実行するために使用されてよい。
上記説明と同様に、本発明の実施形態は、ハードウェアによって施行されたファブリック内での隔離ゾーン/セキュリティゾーンの物理的な分離を実現してよい。例えば、図9は、例えば図7及び図8に関して上述されるように、無効にされてよいポートだけではなく、例示的な処理リソース及びDMRも示している。データ及び制御の流れを停止し、プロセッサマイクロアーキテクチャの領域/パーティションの隔離、及び領域/パーティション間の隔離を提供してよい、隔離/セキュリティバリアをハードウェア内に組み立てることができる。バリアは、ある特定のプロセス又はユーザと関連付けられる処理、メモリ、及び通信のリソースをカプセル化するセキュリティパーティションを作成するために使用できる。バリアは、1つ又は複数の制御されたアクセスポイントを有することがある。バリアは複数のチップに及ぶことがあるが、通常は単一チップの内部に制約されて、チップ間のプロービング(特殊モジュールパッケージングは、かかるプロービングに対する保護を提供できる)を回避する。
更に、セキュリティのための高性能処理が、あらゆる処理コアで利用可能であってよい。これは、(1)RSAキー生成(非対称)、(2)乱数発生、(3)ハッシュ生成、(4)暗号化と復号、および(5)RSAキー(及び他のデータ)記憶を含むが、これらに限られない。
SDS2システムは、貴重な情報又は機密情報(データ又はソフトウェア)が、記憶されている間及びある場所から別の場所に通信される間の両方において、貴重な情報又は機密情報を盗難又は不正操作から保護するために、プロセスを通して設計者/開発者を導いてよい。同時に貴重な情報は、許可ユーザが最も少ない量のオーバヘッドで利用できる必要がある。矛盾することもあるこれらの要求は、(ハードウェアによって支援され、ソフトウェアによって定義される)プロトコル、アプリケーションソフトウェア、及びハードウェア機能、ならびにオペレータのトレーニングを統合する情報セキュリティシステムによって達成されてよい。SDS2システムは、セキュリティソリューションを可能にするための誘導開発プロセスを通じたソフトウェアの制御下で、ソフトウェアによってプログラム可能なハードウェア機能に対するこの層間ソフトウェアスタック(プロトコル、アプリケーション、ソフトウェア他)開発手法を提供してよい。以下の項で、システムの例示的な実施形態を更に詳細に説明する。
情報セキュリティのための関連付けられたツールボックス
情報が安全な処理を実現するために必要とされることがあるいくつかの概念がある。以下の副項は、情報セキュリティの概念のためのツールボックスのいくつかを説明する。
プログラム可能な物理隔離と論理隔離
セキュリティバリアは、それに対するアクセスがバリアの内部で制御される物理的な隔離/バリア又は論理的な隔離/バリアを通して、チップの断面を保護し、検証する能力を提供してよい。これによって、保護されていないエージェントによる外部アクセスを妨げるように、チップ上に常駐し、チップ上で実行するために復号されたコード及びデータが可能になる。それは、チップリセット時、電源投入時、又はセキュリティ違反時にメモリをクリアすること、もしくはこれらの事象の発生時に保護されているデータの周辺に同じ安全なウォールを構築し直すことをサポートし、よって保護されたコード/データが、装置へのプログラミングアクセスが認証されていないだれかによるアクセスのための安全ではない領域に決して残されないことを保証できる。
キーの生成と管理
キーの生成と管理は、システムレベルで認証されていないユーザが読み取る又は修正することができない揮発性メモリ又は不揮発性メモリ内のチップ上に復号キーを記憶することを含んでよい。キーの生成と管理は、システムインテグレータが生産時にこれらのキーを作成又はロードし、それらを保護する能力を提供してよい。再プログラミングを行わずに安全な記憶域内にこれらのキーを恒久的にロックするための、又はこれらのキーが一時的にロックされ、後に認証された安全なユーザによって修正できるようにするための方法が提供されてよい。本明細書の説明では、ワンタイムプログラマブル(OTP)タイプのメモリ、つまりハードウェア又はハードウェアリング発振器に基づいた乱数発生器(RNG)の物理特性に基づいて、適切な反復可能な一意のエントロピーを生成できる、物理的にクローン不可能な機能(PUF)に基づいた乱数発生が、追加説明のための詳細が必要な場合の参考資料として参照される。乱数発生は、両方のハードウェアで、及びソフトウェアを通してサポートされてよい。
暗号化と復号
コードとデータの両方とも、暗号化されたストリームでチップ上にロードし、使用するためにチップ上で復号することができる。コードとデータはいったん復号されると、チップリセット後でも外部からのアクセス又は修正から保護できる。これは、ハードウェアエンジンを通して行うことができるが、完全ソフトウェア定義を維持するために、プログラマブルブート機構を通してロードされるソフトウェアエンジンが使用できる。これによって、実装はハードウェア支援ソフトウェアモデル方法論との一貫性を保つ。
認証
ある種の公開キータイプ情報(例えば、ソフトウェアキー、ハードウェアキー、バイオメトリック情報等)を提供することによって、保護されているコードを使用して、ユーザを認証して、既存のプログラミングを使用する、又はより高いセキュリティレベルでそれを修正することのどちらかを可能にできる。これは、プログラマブルブートを通してアクセス可能なソフトウェア実装又はハードウェア実装となることがある。この機能は、例えばデジタル著作権管理機能性を実装するために使用できる。
(セキュア及びノンセキュアをサポートする)プログラマブルブート
セキュアブートは、チップ(及びシステム)が完全に保護され、守られるようにチップ(及びシステム)を起動するためのカスタマイズ可能でソフトウェアによって定義可能なブートシーケンスを提供する。いったんセキュアブートが有効になると、チップのピンに対する物理的なアクセスは可能ではなくなることがある。チップ上又は(チップ上にロードする)システム内の保護されているコード又はデータのアクセス及び変更には認証が必要となることがある。システムリセット又は出力サイクルによって、チップはこのモードを実行し、いずれのユーザレベルのアクセスも許可される前にすべての必要とされるコード及びデータを保護する。ブートコードを恒久的にロックできる又は認証されたユーザによって変更できるモードをプログラミングすることができる。
図11A及び図11Bは、セキュアブートシステムの例示的な全体ブロック図を示す。これらの図から、提供される基本的なセキュリティブロック、及びセキュリティブロックがどのようにして他のチップハードウェアに接続するのかを見ることができる。この設計は、セキュアブートコードを処理する上で使用するためのメモリバッファとしてDMR内で利用可能なメモリを使用してよい。この機能性により、PEは、ミッションモードで提供されたハードウェアブロックによって暗号化、復号、署名、又は認証できるデータをバッファに入れるためのDMRを使用することもできる。更に、メモリバッファは、メモリ内にシリアルバスコマンドシーケンスをセットアップして、シリアルバスコントローラに対してDMR内のDMRチャネルを介して送信する際に使用できる。このプロセスはこれらの機能を必要とするアルゴリズムの全体的な効率を改善し、DMAの使用は、他の重大な処理タスクのためにPEを解放できる。図11Bは、やはり図示した何らかのマイナー制御がある例示的なデータフローを示す。
更に詳しくは、図11A及び図11Bは、HyperX高度セキュリティブロック図を示す。この図では、詳細に描写されているOTPのいくつかの異なる用途があることに留意されたい。アーキテクチャの観点から、これらのメモリは、特定の実装のニーズに応じて、サイズと数の両方で異なる構成となることができる。メインメモリ(プログラム記憶)は、図示したグループの内で最大である。これに加えて、一方はユーザ/セキュリティスクラッチパッド用、他方はマルチタイムプログラマブル(MTP)エミュレーション用のより小さなメモリがある。これは、エラーを訂正できる、及び/又はキーを修正又は交換できるように、メインメモリを複数のリマップ可能なページに構成するために使用できる。これは、特定のページを恒久的にロックすることができ、他はプログラムによって制御される認証されたユーザがアクセスできるように、プログラム可能ビットを介して構成可能である。これによって、所望される場合のフィールドアップグレード可能なコード/キーだけではなく、要求に応じたセキュリティも可能になる。これらのメモリの機能性及び使用が、使用される異なる不揮発性メモリ技術に基づきわずかに変化することがあることに留意されたい。例えば、ここでは多くの努力及び論理が使用され、OTPとのマルチタイムプログラム化可能性をエミュレートする。(FLASH等の)マルチプログラマブル不揮発性技術の場合には、この努力及び論理は、固有に書き換え可能なメモリのロックに向けてリダイレクトされる。
IO無効化信号は、セキュリティウォールが構築され、よってピンレベルのセキュリティ保護を不必要にするまで外部からのアクセスが許されないように、セキュアブートプロセスの間チップIOを無効に保つために使用される。オプションとして、(いったん安全な部分が完了すると、ブートを外部で続行するために必要とされるSPIピンを除き)ブートプロセスの残りの間もこれをアサートされた(IO無効にされた)状態に保つ。
OTPレジスタでサポートされているもう1つの機能は、チップがいったん完全に製造試験されるとフルチップスキャンポートをオフにする能力である。これによって、システムレベルでの追加のセキュリティレベルが実現される。
チップは、例えば適切な機能性のためにいくつかのモードを使用してよい。モードは、図11A及び図11Bに字視される書き込み可能な不揮発性記憶(ヒューズ)[構成可能]によって制御できる。追加の不揮発性記憶は、バックアップキー(BUK)としての使用のために提供されてよい。
PUFは、RNG1回路の欠くことのできない部分であってよい。また、PUFは、ミッションモードでの乱数のためにアクセスされてもよい。追加の乱数発生器(RNG2)も、ミッションモードのために提供される。RNG2はRNG1とは異なるハードウェア設計を有して、例えばハードウェアリング発振器等の代替手法を提供してよい。
揮発性の場合にバッテリバックアップされる(パッケージングオプションを介して提供される)オプションを備える小型RAMがあることもある。このメモリは、システム構成/プロビジョニング情報のバッテリバックアップされる記憶、任意選択のキー記憶、ACビットの記憶として使用することもできれば、(PE又は2つをプログラミングするのに十分な)小さいブート動作にとって十分なブートコードも含むこともできる。一実施形態では、このRAMは、不正操作が検出されると帰零できる。
セキュアブート制御部は状態機械制御を提供して、セキュアブートハードウェアを初期化し、セキュアブートシーケンスを実行してよい。セキュアブート制御部は制御も提供して、IPブロックの操作モードを構成し、構成可能なハードウェア設定値に基づいてそれらのブロックを有効にする/無効にすることもできる。
不正操作検出
(別の又は別個のものと多重化される)不正操作検出入力は、不正操作が検出されたことを信号で知らせてよい。これは、所望される機能であることを信号で知らせるために、チップ内部で使用されてよい。ユーザプログラミングに基づき、それは、メモリ(又は確定できない状態にされたメモリ)の「帰零」を引き起こし、任意選択でブートモードを、セキュアコードがもはやOTPから読み取られず、よって装置がオンボードセキュアコードに関して機能しなくなる状態に変換できる。この時点で、セキュアコードを見る唯一の方法は、使用のために選ばれる不揮発性メモリの安全な性質によって純粋に制御され得るビット位置を物理的に読み取ることである場合がある。他の機能は、プログラム制御を介してこの信号で有効又は無効にされてよい。このピンに加えて、パッケージの蓋も、取り除かれた場合に不正操作検出を提供してよい。
ソフトウェア開発プロセス
図10は、SDS2方法論及びシステムをサポートする例示的なHyperX開発システムを示す。ソフトウェア開発プロセスは、図10に示す基本的な機能を基礎としてよく、システム制約は各段階でのセキュリティ要件、選ばれた実装方法(ソフトウェア機能及びハードウェア機能)、保証を証明する正式な方法、完全にプログラム可能かつカスタマイズ可能なセキュリティ開発環境のソリューションを通じた完全なシミュレーション及び試験によってサポートされるシステムの機能性及び性能の検証を識別するために拡張する。
ハードウェア機能を有効にする
HyperXシステムは、ソフトウェアベースのソリューションを含んでよい。従って、セキュリティ実装(バリア、キー管理、認証、復号等)は、このモデルと一貫性があり、このモデルをHyperXプラットホーム上で実行中のソフトウェアとして保つように実装されてよい。これによって、考えられるソリューションの小さなサブセットをせいぜい提供できるカスタムハードウェアの設計及び実装が防がれてよい。
HyperXハードウェア/プロセッサは、これらのソフトウェアソリューションを設計し、実装できるようにするハードウェア「フック」を含むことがある。従って、一実施形態では、この設計は、「ハードウェアによって支援されるソフトウェアをベースにした検証可能なセキュリティ」と見なし得る。この設計は、純粋なハードウェアソリューション及びそれに伴うセキュリティに必要な必要とされる必須要素に、固有のセキュリティホールがないソフトウェアソリューションの再構成可能性をもたらし得る。
実施例
PE_0_0(又は特定の処理要素(複数の場合がある))は、セキュリティ実装のための開始点として選択することができる。追加のPE又は異なるPEは、設計の意図を変更しないで他の設計考慮事項に基づいて使用するために選択することができる。ワンタイムプログラマブル(OTP)タイプのメモリは、プログラミングのためにPE_0_及び(ブートコントローラを介して)DAPによって(デフォルトで)アクセス可能である関連ヌルルータレジスタバスに接続される。これが2つの考えられる読取り/書込み経路であることに留意されたい。これは、設計を2つの経路だけに制限することを意味するのではなく、現在の設計点のために2つ選ばれるだけである。すべての場合、そのアクセスする各経路は、プログラミング構造の内部で個別に保護されてよい。いったんそれがプログラミングされると、OTPは、それがPE_0_0又はDAPによって書き込み可能又は読み取り可能にならないようにロックされてよい。この挙動は、システム設計者によってプログラミングできる。これによって、それは安全な領域として保護され、安全な暗号化されていないコードだけではなく、両方の復号キー(キー暗号化キーつまりKEK及び暗号化されたマスターキーの両方)もここに記憶できるようになる。OTPのこのプログラミング及び保護は、ページ単位で行うことができる。ページは、そのセキュリティ情報が構成されるまで、PE又はブートコントローラによって書き込み、読み取ることができる。これは、ページを正しく検証できるようにする。選択可能なセキュリティビットを書き込むことで、すべてのユーザのために、又は認証されていないユーザだけのために、読取り/書込みアクセスを完全にロックする、又は部分的にロックすることができるようになる。これは、どのページからブートを開始するのかのプログラム可能な値とともに、OTPの新しいページを使用することによってブートコードを新しいコードで交換できるようにする。
このOTPのプログラミングの前に、チップは通常の動作で機能し、(ピンがそのように構成されている場合)SPIからブートし、通常のポートを介して並列ブートモードアクセスを可能にする。OPTがいったんプログラミングされると、次いでリセット時に、チップはすべての並列ポート及びDAPを無効にし、セキュアブートコントローラ論理がオンボードOTPメモリからチップをブートしてよい。このブートは、領域を完全に保護し、チップ上のポートを介してユーザを認証するために使用できる復号エンジンをロードできる。セキュアブート部分の間には外部からのアクセスは許されないことに留意されたい。このため、ピンアクセスは保護を必要としない。いったんその部分が保護されると、ブートは標準ブートコントローラ論理に渡され、ポートはすべて有効にする。ここでノンセキュアコードは正常にロードできる。
セキュアブート部分は完全にプログラム可能であるので、次いでPE_0_0を通してブートプロセスの残りを処理する小型の安全な復号エンジンをロードすることもできる。ここで、完全に符号化されたコード及びデータはチップ上にロードされているので、オフチップからロードし、エンジンによって復号することもできる。これによって、小さなOTPから可能であるよりもはるかに大きなチップの部分をセキュアモードで実行できるようになる。
複数のセキュアブート画像がサポートできる。これによって、製造チップは、製造時にいくつかの事前設定されたセキュリティコードをそれらの中にロードさせて、納品されるチップの基本的なセキュリティ機能を向上できるようにする。この機能の1つの考えられる用途が、すべてのメモリ内容が、ユーザレベル(ピン)アクセスが有効にされる前にクリアされるように、リセット時にメモリ「帰零」(つまり、確定できない状態にすること)を提供することである。他の考えられる用途もある。
セキュアブートモードのエミュレーションは、チップ上での現在のSPIポートを通して利用できることがある。エミュレーションは、OTPをプログラミングする必要なくセキュリティアルゴリズムの立ち上げ及びデバッグをシミュレートするために使用できる。これにより、開発環境は、既存のポートを介してセキュアシステムを完全に試験し、次いでOTPがいったん完全に開発され、デバッグされると、OTPをプログラミングできるようにしてよい−エミュレーションモード対OTPモードで実行するために修正をサポートしない。
OTPをプログラミングするための代替方法は、外部DAPを介している。このモードと最初に説明された、PE_0_0プログラミングアクセスの方法の両方で、メモリの内の1ページ又は複数ページを保護されないまま残すことができ、暗号化されたキーデータの記憶のためのPE_0_0のアクセスを可能にする。PE_0_0とDAPの両方に、読取りアクセス保護及び書込みアクセス保護を個別に選択できる。
以下の機能は、潜在的な使用のケースに基づいて2つの分類で編成される。第1のグループは、主に静的なセキュリティ結果をサポートすることに焦点を当てている。言い換えると、いったん保護された領域は、チップリセット又は出力サイクルが発生するまで効力があるままとなってよい。これは、安全な処理の実装に必要であり、潜在的なアプリケーションのサブセットにとって十分である一方、それはすべてのセキュリティニーズに対する完全なソリューションではない。
第2の領域は、動的なセキュリティバリア、及び/又は静的なセキュリティバリアと動的なセキュリティバリアの組合せをサポートし、より高い層のセキュリティ概念を容易にすることに基づいている。
静的セキュリティバリア
以下の機能、つまりツールは、静的なセキュリティ操作ニーズをサポートするためのベースラインとなる。説明は、以下を明確にするために必要であるとして提供される。
メモリバス設計、セットアップ順序つけ(リセット...)、MTPエミュレーション、レジスタ仕様(ビット定義)、及び構成ビットのための例の用途及び数
以下の表は、例示的なレジスタ仕様を示す。
Figure 0005815717
プログラマブルブートシーケンス
これは、プログラミングでブート順序付けを制御する能力である。これはOTP内のビットで制御できるが、最小設計がOTPなしで実現されなければならない場合、これは、特別なリセット論理を有するいくつかのレジスタビットで制御できる。それは、チップが起動し、そのブートシーケンスを再プログラミングし、次いでそれを再起動できる能力をサポートしてよい。これは、いくつかの安全なエミュレーションがチップ上で不揮発性ビットなしで発生できるようにしてよい。
実装する1つの方法は、OTPで計画されている表に類似したブートアドレスの表を構築して、異なるブートシーケンスが実行できるようにすることであり、いくつかのシーケンスは、それらがあたかも安全でありOTPから出現したかのように作動し、次いで(このプロセスは、初期化シーケンスをブートして、このすべてを起動させるために使用されるので、アドレス0、CS0からではないことを除き)「通常の」ブートプロセスに移行できる。
レジスタ場所が書き込まれると、ブートコントローラは、その現在のプログラミングに基づいて再起動してよい。デフォルトで、これはチップリセット時にピンによって制御されるブートと同じブートであってよい。プログラマブルブート部分がプログラミングされている場合、次いでブートはソフトウェアを介してプログラミングされたとおりに進行してよい。これは、セキュアブートエミュレーションだけではなくブートプロセスのかなりのソフトウェア制御も可能にする。
メモリ区分化/アドレス指定
図12は、例のメモリ区分化/アドレス指定レジスタマップを示す。図12は、256KワードのOTPメモリ空間のための例のメモリマップを示す。これらのレジスタは、アドレス0x30000で開始する。これらはプログラミングを必要とする最初のことであるので、10ビットポインタレジスタをこれらのレジスタの高位アドレスつまり0x300に初期化させることには意味がある。
これらの18個のアドレスビットは、図示したように、空間の第1の半分及び残りで128Kのプログラム記憶のための256Kワードメモリ空間を提供してよい。MTPエミュレーション部分に10ビットポインタを使用すると、各ブロックが128個の16ビットワード(128ワード*1024ブロック=128Kワード)を含む210、つまり1024ブロックのメモリが提供されてよい。追加の6ビットの制御が各ポインタで使用される場合、次いでそれらは長さ16ビットであってよく、MTP表の中に512エントリ用の空間があってよい。
NRバス上のアドレスの場合、「通常の」アドレス空間内にロードされる10ビットポイントのレジスタがあってよい。バス上で利用可能な8ビットのアドレスは、ここでアドレスマップの残りに対するオフセットとして使用されてよい。各「ページ」は256ワードであってよい。前述されたようにこのポインタを0x300に初期化すると、初期の拡張されたアドレス指定に、マップのレジスタ空間を与えることができる。
「通常の」0x1Exxメモリ空間で必要とされるすべてのレジスタを有することが可能な場合があり、その場合このマップの拡張された「他のレジスタ」は必要とされないことがある。拡張された空間には、0x1DxxNRバス空間内のNRバス上の拡張されたマップを使用してアクセスされてよい。もし、そうであれば、OTPレジスタは拡張アドレス0x30000で開始するために移動されなければならない。
メモリは、一度に32ビットを読み取り、書き込むタイプであることが期待され、追加のアドレス変換はバスコントローラによって行われてよい。レジスタインタフェースは、まだ決定されなければならず、マップは単にプレースホルダーにすぎない。
IO無効化論理
IO無効化は、SPIポート用の信号、及び他のすべてのポート用の信号を有する。これがエミュレーションをサポートする。「エミュレーション」ビットがセットされ、ブートがOTPの代わりにオフチップから発生するとき。いったんOTPブートが有効になると、SPI無効化はIO無効化の残りをトグルする。
読取り/書込みロック制御
DAPとPE_00_00制御の両方を含む/サポートする。
NRバスインタフェース
NRレジスタバスインタフェースは、利用可能な8ビットアドレスバスを有する。DMRは、これらのすべてのアドレスを0x1Exx空間の中にマップする。プログラマブルブート用のブートコントローラへの拡張のために使用するための0x40から0xFFへのマップ全体だけではなく、必要に応じてそのスペース内にもいくつかのホールがある。NRレジスタバスを介してバンク内の新しいメモリにアクセスするために使用するための利用可能な25ワード(8ビット)の連続アドレス空間が必要である。これを行うために、0x1D00から0x1DFFの空間を活用してよい。この部分のための1Eから1Dは、これらがOTPメモリトランザクションであることをハードウェアに信号で知らせることができる。
新しいレジスタからの10ビットバンクアドレスと連結されたNRバスから8ビットアドレスを使用すると、必要に応じて258Kワード空間にアクセスできる18ビットメモリアドレスがあることがある(メモリアドレスマップに関する項を参照)。このバンクレジスタは、現在のバンクポインタ値がどうであれ、アクセスを提供するために、0x1Exx空間内に常駐してよい。
コマンド
コマンド、つまりNR、SB、及びDAP等は、ブート機能をサポートするためのものである。コマンドの型は、NRcmds、SBcmds、DAPcmdsを含む。
OTPのためのセキュリティ/ロック
不正操作検出及びアクション
不正操作検出は、メモリを帰零し、ブート、動作等を停止するためのアクションをサポートする。
OTP出力オプション
OTP部は、OTPが機能せず、依然として安全ではないブートモードでチップを使用する場合に遮断できる。
セキュアブートエミュレーション
セキュアブートモードは、標準ブートモードを使用してエミュレートされる。これによって、コードを非常に限られた再プログラム可能OPTメモリの中にプログラムし、セキュアブートを最終化する前に、プログラム全体を開発システム上で開発し、デバッグすることが可能になる。
ハードウェアRNGサポート
ハードウェアでサポートされている真の乱数発生器(RNG)は、高いセキュリティレベルを提供する。キー生成も提供される。
オンチップセキュリティバリア-作成及び検証
フルスキャンの無効化
構成レジスタ(OTP)内のビットは、それをセキュアモードで無効にできるようにチップのフルスキャン機能性を制御する。
上部金属での不正操作信号(複数の場合がある)
破壊されると不正操作を信号で知らせ、安全な機能性を無効にする(チップはデフォルト3100モードである)上層金属内で送られる信号があるチップ上の不正操作ピン。つまりセキュアコードを見る唯一の方法はOTP内のビットを物理的に読み取ることである。存在する場合、「帰零」コードにセットアップされてもよい。
パッケージ不正操作信号
プログラム可能であり、従ってパッケージ蓋が取り除かれると、やはり不正操作が信号で知らされ、必要な無効化が行われる(他の不正操作情報を参照すること)。
メモリの帰零
ブートコードのある部分を強制的に常に実行させ、何か他のことが起こる前にメインチップメモリのすべてをゼロにする能力(複数のブートシーケンスを使用する)を提供する。この機能は、他の目的にも使用できる。
不正操作処理
OTP内での構成ビットの一部としてプログラマ制御を通してのものである。
セキュアブート論理を完全に無効にし、チップを恒久的に安全ではないチップにする。すべてのセキュアブートコードの再ロードを矯正する(検出され、読み取られるようにシリアルバス上にそれを置く)、帰零コードを実行して、すべての動的メモリをゼロにする。
フィールド再プログラム化可能性
万一システム設計者がこの機能性を有効にしたい場合に、フィル度での装置の再プログラム化をサポートする。これは、説明された認証技法を通して制御できる。
スクラッチパッドキー記憶
任意による読取り/書込みアクセスからデータを保護するが、認証されたユーザによって制御されるプロセッサを保護するスクラッチパッドOTP領域をサポートする。
ページモードOTPアクセス
JTAG
JTAGは、アクセスを獲得して、チップ上でセキュリティを無効にするために使用できないことがある。又は、JTAGは完全に無効にすることができる。
ソフトウェア不正操作信号
ソフトウェアが、アクションを講じることができるようにセキュアブートコントローラに「不正操作」を信号で知らせることができる方法を提供する。各不正操作信号は、プログラム可能なアクションで個別に選択可能である(不正操作のタイプの重大性に基づいて、異なるセキュリティレベル)。
部分リセット
セキュリティのある、及びセキュリティのないチップの部分的なリセットをサポートする。例示したものは、動的に出力可能な四分円である。
動的セキュリティバリア
以下の機能、つまりツールは、動的なセキュリティ操作ニーズのサポートに対する焦点を与える(サポートに焦点を当てる)。説明は、明確にするために必要であるとして提供される。
動的バリア
チップの実行中に、バリアを移動する、取り除く、構築する、又はそれ以外の場合修正することを可能にするための方法。これは、より多くのOSタイプの動作を可能にする。
信頼された(安全な)プロセッサ
実行中のプロセッサが信頼できるものであると宣言し、その命令を、セキュリティパーティション修正のような、信頼されていないプロセッサが行うことができないことに対するアクセスを可能にするいずれの種類の「監督者」モードで実行させるように、実行中のプロセッサにマークを付ける方法。PEを信頼されているとマークするセキュアトークンを(プログラム制御下で)PEに送る能力を有するセキュアブート完了によるもの含む、これを行う多くの方法。
実行時セキュアブート
何らかの種類のセキュリティ侵害(不正操作又は他)が検出される(又は単にソフトウェア制御下)の場合に、セキュアブートコードを再実行してチップのその部分を保護し直す方法を提供する。これには、おそらく動的バリアと同じ論理の多くが必要となる。
不正操作可視コード
ブートコード(内部と外部両方)がコードに対して変更が発生したかどうかを識別できる方法を提供する。方法は、次いでブートがエラーなしで完了しているかどうか等を信号で知らせる。
信頼されたSBコマンド
安全な領域を再プログラミングするためには、1つの方法は、信頼/セキュアコマンドモードでシリアルバスを使用することである。これは、実行時/動的再構成のためのセキュリティ設定値のリアルタイム編集を可能にする。これは、信頼されているプロセッサによってだけ発行されることが意図される。DAP/SPI(外部)コマンドは、この例では信頼されていない。
セキュアコードセグメント
コードセグメントに、それがチップの安全な領域内で安全な/信頼されたプロセッサ上でのみ実行できると述べるマークを何らかの形で付けるという考え。
SBセキュリティサポート
マルチキャスト/マルチオープン/一斉送信タイプの機能性をサポートして、コードのより効率的な帰零を提供する方法。シリアルバスを使用できる。すべてのメモリは、一度に書き込むために開くことができ、ゼロは一度に送信できる。シーケンス例としては、以下のものがある:すべてを開く、4Kブロックの9をDMに送信する、2Kブロックの0をIMに送信する、すべてを閉じる。これは、500MHzで発生するのに約210マイクロ秒を要する。
ブートのソフトウェア制御
これは、安全な/信頼されるプロセッサに、ブートフローを制御する能力を与える。さまざまなレベルのセキュリティが、きわめて高いレベルの認証に基づいたフィールド修正を可能にする目的でサポートされる、2つ以上のレベルのブートプロセスを可能にする。複数の暗号化/復号レベル等を提供できる。
ブートJMP命令
ブートコントローラが新しいアドレスにジャンプして、ロードを続行できるようにする。マルチ/セキュアブートコードのいくつかの効率を改善する。
他の不揮発性メモリ(例えば、FLASH)
豊富な潜在的な用途
セキュリティアルゴリズム加速
並列性がセキュリティアルゴリズムのいくつかの態様の犠牲とならない場合に、根本的なレベルで追加の加速を提供する。
コードバリデーション
コードが不正操作されていない、又はブートロード中に間違いがなかったことを確証できる、(ハードウェア内での)コードロード中の処理をサポートする方法(チェックサム、ハッシュアルゴリズム、又は何か同様のもの)。
シリアルバス硬化
セキュアブートプロセスをより安全にする方法。例は、シリアルバス論理の部分を複製し、通常のプログラミング切り替えの「ネゲート」バージョンを発生させ、よってパワーフットプリントを分かりにくくし、オフチップからのプログラミングを検知するのを更に困難にする。方法は、安全ではないアプリケーションでは節電するためにオフにすることができ、機能によって提供されるセキュリティに関して容易なバリデーションを可能にする。他の例は、シリアルバスを広げること等を含む。
例示的な使用状況
サードパーティIP保護
IP所有者の所有権とIPの機密性の両方を保護する一方で、サードパーティ知的所有権(IP)アプリケーションを開発し、HyperXハードウェアを使用するシステム開発者に販売できるように機構を提供するニーズがある。ニーズがある場合がある、かかるシステムに対する2つの主要な要件は、IPの購入者によるシステムソフトウェア開発中にIPをシミュレーションする方法、及び(例えば実行時にだけ、及びライセンストークンに基づいた実行制御で復号される暗号化されたバイナリを通して)アクセスを保護しつつも、IPを送達し、認証された実行中のシステム内にインストールする方法である。
上記に概略された機能を使用する3つの潜在的な状況が以下の副項に説明される。他の潜在的なモデルが存在することもある。目標は、ハードウェアフック及びソフトウェアプログラム化可能性がすべての領域での革新を可能にすることである。これらの3つの状況の差は、どのようにして開発シミュレーションが実行されるのかにある。
ハードウェアベースの協調シミュレーション
この状況の場合、IPは、HyperXチップの不揮発性メモリの中に事前にプログラミングされて送達される、又はシステム/ソフトウェア開発者に対するファイルで暗号化されたバイナリ形式で提供される。
事前にプログラミングされるケースの場合、IPは、それをチップから読み取ることができないように、チップの部分の中にブートし、チップの部分を保護してよい。ブロックのインタフェースは、HyperX IPポートに拡張され、保護されたIPがロードされた後にシミュレータによってロードできる追加のブートコードを通してシミュレータにアクセス可能にされる。シミュレータは、ここで基板上のハードウェアインタフェースを通してIPブロックに対して呼び出しを接続する一方で、シミュレーションで開発者コードを実行する。これは、IPのユーザがファイル形式でバイナリのコピーを絶対に有することがないようにIPを保護する方法となる。
第2の方法の場合、IPは暗号化されたバイナリ形式で送達される。「標準的な」復号エンジンは、以前にHyperXにプログラミングされてよく、キーはIPユーザに提供されてよい。IPはロードされ、ソフトウェア復号エンジン及びその提供されたキーを使用して復号できる。同じ方法は、チップIPに対するインタフェースを拡張し、シミュレータの中に接続するために使用される。これには、使用のために標準復号エンジン又はカスタム復号エンジンのどちらかを開発するためにCoherent LogixとIPプロバイダとの間のやや多くの開発及び協力が必要となる。
この協調シミュレーションの状況は、協調シミュレーションをサポートする開発システムのハードウェア上でのインタフェースのソケット層の定義を除き、既存のシミュレーション環境に対する変更をほとんど必要としない保護されたIPを使用して開発する方法となる。ただし、それはすべてのシミュレーションに対する開発システムハードウェアの使用を必要とする。
両方の方法の場合、いったんシステム開発が完了されると、開発のために使用された同じIPバイナリが、追加の協調シミュレーションラッパを使用せずにシステムの製作のために使用される。これは、システムが機能し得るというきわめて高い信頼性を提供する。
ソフトウェア専用シミュレーション
この状況の場合、IPは、協調シミュレーションバージョンについて上述したものとほぼ同じように製作のために送達される。ただし、開発中のシミュレーションの場合、暗号化されたシミュレーションバイナリ(依然として同じものを使用することが可能である可能性がある)が提供される。シミュレータは、シミュレーションの間このIPを復号し、保護することをサポートする。保護は、まさにチップのようにシミュレータ内で有効にされて、いったん復号され、ロードされたIPコード内でのダンピング、逆アセンブリ、トレーシング、ブレイクポイント等を防ぐ。復号されたコードは、安全ではない領域に絶対に常駐してはならない。
この方法は、開発システムハードウェアを使用しないシミュレーションを提供する。
アプリケーションコード分散
これらの状況下では、暗号化されたバイナリファイルはIPにとって主要な送達機構であり、IPの機密性及び認証の要件を維持しつつ、この暗号化されたバイナリ画像をアプリケーションコードオブジェクトファイルの中にリンクさせる方法がある場合がある。これらの方法は、同じオブジェクトファイル(及び1つのIPモジュールが別のIPモジュールに基づいている場合、おそらくネスト化されたIP)の中の複数のベンダからIPモジュールをサポートする必要がある場合がある。システム内のHyperXプロセッサのブートシーケンスは、前の項に説明されるシミュレーション中に使用される同じキーを使用して復号及び認証のプロセスを処理してよい。これらのキーは、DRMに関する以下の項に説明されるように、オンチップで記憶できる。
セキュアブート
HyperXのあらゆるピン上で暗号化されていない形式でブートストリームを読み取ることができないシステムをブートする方法が必要がある場合がある。これは、プログラマブルブートを通して実行される。この機能を用いると、コードは、チップのピンを完全に無効にした状態でブート時にロードできる。いったんロードされると、コードはその周りに提供されたハードウェアフックを用いてセキュリティバリアを構築することによって保護できる。平文ビットストリームは、いったんアレイ内でその周りにセキュアバリアが形成されると装置のピン上に絶対に存在し得ず、読み直すこともできない。保護された領域の中へのアクセス及び保護された領域の中からのアクセスは、セキュリティバリアの内部でのプログラミングによって完全に制御できる。
いくつかの使用ケースの場合、プログラム全体がチップ上の不揮発性メモリ内に適合できることが考えられる。これが十分ではない場合、ブート時に簡略な復号エンジンをロードできる。このエンジンは公開キー及び暗号化されたバイナリとともに使用して、より大きなプログラム画像でチップをロードできる。これは、実際のチッププログラミングがオフチップであるが、暗号化された形式だけで常駐する場合にセキュアブートのための機構となる。
プログラミングを更に保護するために、プログラマブルブート機能性とともに使用して、保護されているコードをメモリから削除させ、新しいブートを介して再保護させる、又は極端なケースでは、単にチップを完全に機能しなくさせることができる不正操作検出が提供される。これは、不揮発性レジスタビットを介してシステムをプログラミングするときに完全にシステムプログラマの制御下にある。
例示的なセキュアブート(例えば、図11A及び図11Bに対応)
チップは、構成可能なプログラミング又はセキュアブートエミュレーションモードを介してセキュアブートのために構成され得る。セキュアブートのために使用されるデータは、オフチップFLASHからであってよい。
(認証と復号の両方を使用する)セキュアブートプロセスは、以下のとおりである。
1)ブートコントローラは、SPIを使用してFLASHからアクティベーションコード(AC)をロードするように構成される。任意選択で、ブートコントローラは、バッテリバックアップされたRAMからACをロードするように構成できる。
2)このACはACIバス上のPUFハードウェアに送られ、そこで使用されて、KOバスを介した復号及び認証で使用するためのAES/GCMエンジンに送られるセキュアキーを再生する。PUFがACを認証しない場合、ブートは失敗し、処理は休止することがある。これは、ソフトウェア不正操作検出とみなされ、この不正操作に選択されるアクションが実行されることがある。PUFはセキュアキー材料の1つのソースである。ACを使用するPUFによって提供されるキーの代わりに、バッテリバックアップされたSRAM又はeFUSEアレイに記憶されているキーを使用するようにハードウェアを構成することも可能である。これらのオンチップキーは、セキュアキーの更に別のバージョンのためにPUFからのキーで排他的論理和を取ってもよい。
3)ブートストリームの開始は、(使用されている場合)ACに続くか、又は選択されたブート記憶の始まりで開始するかのどちらかであり、ブートコントローラはここで第1の暗号化され、署名されたデータストリームセグメントのロードを開始する。ソースはオフチップフラッシュ又はオンチップソースとなるように選択可能である。安全であるためには、コントローラは一度に1つずつセグメントをロードし、復号し、セグメントが、認証されるまで装置メモリをプログラミングするために使用できないようにDMRメモリバッファ内にセグメントを記憶する。
4)フラッシュ又はバッテリバックアップされたRAMからのストリームは、認証のために復号及びハッシュ生成に適切なブロックサイズでAES/GCMエンジンに直接送られる。
5)AESエンジンはセグメント内の各ブロックを復号し、現在のDMRメモリバッファにそれを記憶してよい。セグメント再順序付けを防ぐために、各セグメント内の第1のコマンドがシーケンス番号コマンドを含んでよい。DMRバッファに移動する代わりに、このコマンドは制御に送られて、すべてのセグメントが順番にロードされることを保証する。順序を外れたセグメントが検出されると、ブートは失敗し、ソフトウェア不正操作が信号で知らされることがある。
6)並行して、AES/GCMエンジンは、ブロックのシーケンスのためにシグナチャハッシュを構築し直してよい。シーケンスが終了すると、最終的なハッシュを、ブートセグメントの最後に提供されるシグナチャと比較する。
7)シグナチャが一致する場合、このセグメントは認証され、制御がDMAをセットアップして、装置のプログラミングのためにコマンドのこのストリームをシリアルバスコントローラ(SBC)にコピーしてよい。任意のシグナチャが一致できない場合、ストリームは安全ではないと見なされ、チップがブートプロセスを中止し、ソフトウェア不正操作が信号で知らされてよい。
8)このセグメントが送信されている間、別のセグメントがブートメモリソースから読み取られ、上述のように処理され、二重バッファの他方半分に記憶できる。これは、ブートが完了するまでこれらのバッファ間でピンポンし続けてよい。二重バッファリングのこの方法はブートストリームを完全に処理し、説明された論理による各セグメントの処理で挿入されるいずれのオーバヘッドも加算された第1のバッファの処理の余分な呼び出し時間だけで、ブートストリームをチップ上にロードできるようにする。
セキュアブートは、装置の安全な挙動のプログラミングと装置で実行するためのアプリケーションのロードの両方をサポートしてよい。
デジタル著作権管理(DRM)
デジタル著作権管理は、ここではパスワード、バイオメトリックデータ、スマートカード、セキュアid、ダウンロード可能ライセンスキー等のタイプの認証のような任意のタイプの動的なユーザ認証のためのキャッチオールカテゴリとして使用される。チップの断面には認証コードがロードされ、セキュアブート方法を介してブート時に保護され得る。チップ上の不揮発性メモリは、加えて静的キー記憶を提供するために使用できる。静的キーが、不揮発性記憶用のマルチプログラムエミュレーションを介して更新できる機構が提供される。キー暗号化キーが安全な記憶領域に提供され、他の著作権管理キーが後の復号のために暗号化された形式でチップに送信される複層的な認証も可能である。これは、DRMキーの大きなオフチップ記憶を可能にする。
HyperXと他の装置との間で移動するデータは、提供される方法の組合せを使用することによって暗号化された形式で(例えばつねに)保護されてよい。これは、重要なデータに対する明らかなテキストアクセスを制限することによってセキュリティを最大限にする。
安全な処理(レッド/ブラック)
上述の状況から、チップの部分が「周りに壁を築く」ことができ、認証されていないアクセスから保護できることがすでに明らかになっている。これらの領域の内の1つ又は複数を使用して、チップは、データが(安全な領域の外部では)暗号化された形式だけで、又は保護されている領域では復号された形式で移動でき、よって完全なシステム設計者の制御によって単一チップ上でブラック及びレッド両方の領域処理を提供する部分に分けることができる。
保護されている領域へのアクセス及び保護されている領域への/保護されている領域からのデータの移動は、その領域で実行中の信頼されているコードの制御下に完全に置くことができる。このコードは、ブート時にオンチップ不揮発性メモリからロードし、保護することができ、よってHyperXに対するピンアクセスが保護されていない場合も、いずれのピンのスヌーピングにもさらされない。
例示的なシステム
以下の図は、概略された機能を使用する例示的なシステムを示す。
図13は、セキュリティ要件の概略及びセキュリティ要件がどのように対応されることを意図されているのかを示す。
図14及び図15は、システム及びシステムの論理ブロックを示す例示的なブロック図である。
図17は、動作中の例示的なシステムアプリケーションを示す。
結論
本明細書に説明される情報セキュリティソリューションは、完全にソフトウェアベースであり、設計者/及び開発者に対して以下の完全な制御及びカスタマイズ:
1.(使用目的のためだけのシステム及びデータの)可用性
2.(システム及びデータの)完全性
3.(データ及びシステム情報の)機密性
4.(個人レベルに対する)説明責任
5.(他の4つの目的が適切に達成されたという)保証
を実現してよい。これに基づいて、HyperXプロセッサチップ及び関連システムのセキュリティレベルは、FIPSレベルをはるかに上回って強化できる。
本発明の実施形態
以下の番号が付けられた段落は、上述したシステム及び方法の実施形態を説明する。
1.マルチプロセッサファブリックでの通信を無効にするための方法であって、この方法は、マルチプロセッサファブリックの構成を受け取ることであって、マルチプロセッサファブリックが複数のプロセッサ及び複数の通信要素を含み、複数の通信要素のそれぞれがメモリを含み、構成が、1つ若しくは複数のプロセッサと1つ若しくは複数の通信要素、1つ若しくは複数のプロセッサと1つ若しくは複数の他のプロセッサ、又は1つ若しくは複数の通信要素と1つ若しくは複数の他の通信要素の内の1つ又は複数の間の通信経路の無効化を指定する、受け取ることと、ハードウェア内のマルチプロセッサファブリックを、構成によって指定される通信経路を無効にするように自動的に構成することと、ソフトウェアアプリケーションを実行するためにマルチプロセッサファブリックを操作することであって、マルチプロセッサファブリックが構成に従って動作する、操作することとを含む。
2.上記マルチプロセッサファブリックを自動的に構成することが、1つ若しくは複数のプロセッサ及び/又は1つ若しくは複数の通信要素に対応するレジスタ値を設定して、構成によって指定される通信経路を無効にすることを含む、上記段落のいずれかに記載の方法。
3.上記自動的に構成した後に、無効にされた通信経路がソフトウェアを介して回復可能ではない、上記段落のいずれかに記載の方法。
4.構成が、マルチプロセッサファブリックの第1の部分と、マルチプロセッサファブリックの第2の部分との間の通信の無効化を指定し、動作中、第1の部分が第2の部分から隔離される、上記段落のいずれかに記載の方法。
5.構成が、マルチプロセッサファブリックの第1の部分の、マルチプロセッサファブリックの第2の部分によるメモリアクセスの無効化を指定し、動作中、第2の部分が第1の部分に含まれるメモリにアクセスできない、上記段落のいずれかに記載の方法。
6.マルチプロセッサファブリックの中に認証されたコードをロードすることであって、構成が認証されたコードから受け取られるロードすることと、認証されたコードから第2の構成を受け取ることと、第2の構成に基づいて自動的に構成することを実行することとを更に含む、上記段落のいずれかに記載の方法。
7.上記受け取ることが、マルチプロセッサファブリックのブートプロセスの間に自動的に実行される、上記段落のいずれかに記載の方法。
8.複数の通信要素が、動的に構成可能な通信要素を含み、この通信要素のそれぞれが、複数の通信ポート、第1のメモリ、及びルーティングエンジンを含む、上記段落のいずれかに記載の方法。
9.プロセッサのそれぞれについて、複数のプロセッサポートが複数の通信要素の第1のサブセットに結合するために構成され、通信要素のそれぞれについて、通信ポートの第1のサブセットが複数のプロセッサのサブセットに結合するために構成され、通信ポートの第2のサブセットが複数の通信要素の第2のサブセットに結合するために構成される、上記段落のいずれかに記載の方法。
10.複数のプロセッサ及び複数の通信要素が点在的な構成でともに結合される、上記段落のいずれかに記載の方法。
上記段落のいずれかを実行するために実行可能であるプログラム命令を記憶する記憶媒体。
上記段落のいずれかを実行するように構成されるコンピュータプログラム。
11.マルチファブリックであって、複数のプロセッサ及び複数の通信要素を含み、複数の通信要素のそれぞれがメモリを含むマルチプロセッサファブリックと、構成論理であって、マルチプロセッサファブリックのための構成を受け取るように構成され、構成が、1つ若しくは複数のプロセッサと1つ若しくは複数の通信要素、1つ若しくは複数のプロセッサと1つ若しくは複数の他のプロセッサ、又は1つ若しくは複数の通信要素と1つ若しくは複数の他の通信要素の内の1つ又は複数の間の通信経路の無効化を指定し、構成によって指定される通信経路を無効にするようにハードウェア内のマルチプロセッサファブリックを自動的に構成するように構成され、自動的に構成した後に、無効にされた通信経路がソフトウェアを介して回復できず、構成した後、マルチプロセッサファブリックがソフトウェアアプリケーションを実行するように構成され、マルチプロセッサファブリックが構成に従って動作する構成論理とを含むシステム。
12.上記マルチプロセッサファブリックを自動的に構成することが、1つ若しくは複数のプロセッサ及び/又は1つ若しくは複数の通信要素に対応するレジスタ値を設定して、構成によって指定される通信経路を無効にすることを含む、上記段落のいずれかに記載のシステム。
13.上記自動的に構成した後に、無効にされた通信経路がソフトウェアを介して回復可能ではない、上記段落のいずれかに記載のシステム。
14.構成が、マルチプロセッサファブリックの第1の部分と、マルチプロセッサファブリックの第2の部分との間の通信の無効化を指定し、動作中、第1の部分が第2の部分から隔離される、上記段落のいずれかに記載のシステム。
15.構成が、マルチプロセッサファブリックの第1の部分の、マルチプロセッサファブリックの第2の部分によるメモリアクセスの無効化を指定し、動作中、第2の部分が第1の部分に含まれるメモリにアクセスできない、上記段落のいずれかに記載のシステム
16.構成論理が、マルチプロセッサファブリックの中に認証されたコードをロードするように構成され、構成が認証されたコードによって指定され、認証されたコードから第2の構成を受け取るように構成され、及び第2の構成に基づいて自動的に構成することを実行するように構成される、上記段落のいずれかに記載のシステム。
17.上記受け取ることが、マルチプロセッサファブリックのブートプロセスの間に自動的に実行される、上記段落のいずれかに記載のシステム。
18.各プロセッサが、少なくとも1つの算術論理演算装置、命令処理装置、及び複数のプロセッサポートを含む、上記段落のいずれかに記載のシステム。
19.各通信要素が、動的に構成可能な通信要素を含み、それぞれが複数の通信ポート、第1のメモリ、及びルーティングエンジンを含む、上記段落のいずれかに記載のシステム。
20.プロセッサのそれぞれについて、複数のプロセッサポートが複数の通信要素の第1のサブセットに結合するために構成され、通信要素のそれぞれについて、通信ポートの第1のサブセットが複数のプロセッサのサブセットに結合するために構成され、通信ポートの第2のサブセットが複数の通信要素の第2のサブセットに結合するために構成される、上記段落のいずれかに記載のシステム。
上記実施形態についてかなり詳しく説明してきたが、上記開示を完全に理解すると、当業者には多数の変形態様及び修正態様が明らかであろう。以下の特許請求の範囲は、かかるすべての変形態様及び修正態様を受け入れるものと解釈されるべきである。

Claims (12)

  1. マルチプロセッサファブリックでの通信を無効にするための方法であって、前記方法は:
    前記マルチプロセッサファブリックの構成を受け取ることであって、前記マルチプロセッサファブリックが複数のプロセッサ及び複数の通信要素を含み、前記複数の通信要素のそれぞれがメモリを含み、
    前記プロセッサのそれぞれについて、複数のプロセッサポートが複数の前記通信要素の第1のサブセットに結合するために構成され、前記通信要素のそれぞれについて、前記通信ポートの第1のサブセットが複数の前記プロセッサのサブセットに結合するために構成されてよく、前記通信ポートの第2のサブセットが複数の前記通信要素の第2のサブセットに結合するために構成され、
    前記構成は、
    1つ若しくは複数の前記プロセッサと1つ若しくは複数の前記通信要素、
    1つ若しくは複数の前記プロセッサと1つ若しくは複数の他の前記プロセッサ、又は
    1つ若しくは複数の前記通信要素と1つ若しくは複数の他の前記通信要素
    の内の1つ又は複数の間の通信経路の無効化を指定することによって、マルチプロセッサファブリックの第1の部分とマルチプロセッサファブリックの第2の部分の間の通信の無効化を指定する、受け取ること;
    ハードウェア内の前記マルチプロセッサシステムを、前記構成によって指定される前記通信経路を無効にするように自動的に構成することであって、
    前記構成によって指定された前記通信経路の無効化は、対応する1つ若しくは複数の前記プロセッサ及び/又は1つ若しくは複数の前記通信要素の通信ポートの無効化を含む、自動的に構成すること;並びに
    ソフトウェアアプリケーションを実行するために前記マルチプロセッサファブリックを操作することであって、
    前記マルチプロセッサファブリックは前記構成に従って動作し、
    動作中、前記マルチプロセッサファブリックの前記第1の部分は、前記マルチプロセッサファブリックの前記第2の部分から隔離される、操作すること
    を含む、方法。
  2. 前記マルチプロセッサシステムファブリックを自動的に構成することが、1つ若しくは複数の前記プロセッサ及び/又は1つ若しくは複数の前記通信要素に対応するレジスタ値を設定して、前記構成によって指定される前記通信経路を無効にすることを含む、請求項1に記載の方法。
  3. 前記自動的に構成した後に、無効にされた前記通信経路が前記ソフトウェアを介して回復可能ではない、請求項1又は2に記載の方法。
  4. 前記構成が、前記マルチプロセッサファブリックの前記第1の部分の、前記マルチプロセッサシステムの前記第2の部分によるメモリアクセスの無効化を指定し、動作中、前記第2の部分が前記第1の部分に含まれるメモリにアクセスできない、請求項1〜3のいずれか1項に記載の方法。
  5. 前記マルチプロセッサファブリックの中に認証されたコードをロードすることであって、前記構成が前記認証されたコードから受け取られる、ロードすること;
    前記認証されたコードから前記第2の構成を受け取ること;及び
    前記第2の構成に基づいて自動的に構成することを実行すること
    を更に含む、請求項1及び3〜4のいずれか1項に記載の方法。
  6. 前記受け取ることが、前記マルチプロセッサファブリックのブートプロセスの間に自動的に実行される、請求項1〜5のいずれか1項に記載の方法。
  7. 複数の前記通信要素が、動的に構成可能な前記通信要素を含み、前記通信要素のそれぞれが、複数の通信ポート、第1のメモリ、及びルーティングエンジンを含む、請求項1〜6のいずれか1項に記載の方法。
  8. 複数の前記プロセッサ及び複数の前記通信要素が点在的な構成でともに結合される、請求項1〜7のいずれか1項に記載の方法。
  9. 請求項1〜8のいずれかを実装するように構成されるコンピュータプログラム。
  10. 複数のプロセッサ及び複数の通信要素を含むマルチプロセッサシステムを含むシステムであって、
    複数の前記通信要素のそれぞれは、メモリを含み、
    前記マルチプロセッサファブリックは、請求項1〜6のいずれかを実行するように構成される、システム。
  11. 各前記プロセッサは、少なくとも1つの算術論理演算ユニット、命令処理ユニット、及び複数のプロセッサポートを含む、請求項10に記載のシステム。
  12. 各前記通信要素は、動的に構成可能な通信要素を含み、
    前記通信要素のそれぞれは、複数の通信ポート、第1のメモリ、及びルーティングエンジンを含む、請求項10又は11に記載のシステム。
JP2013534050A 2010-10-15 2011-10-14 マルチプロセッサシステムにおける通信の無効化 Active JP5815717B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US39359410P 2010-10-15 2010-10-15
US61/393,594 2010-10-15
PCT/US2011/056438 WO2012051577A1 (en) 2010-10-15 2011-10-14 Disabling communication in a multiprocessor system

Publications (2)

Publication Number Publication Date
JP2013543183A JP2013543183A (ja) 2013-11-28
JP5815717B2 true JP5815717B2 (ja) 2015-11-17

Family

ID=44872628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013534050A Active JP5815717B2 (ja) 2010-10-15 2011-10-14 マルチプロセッサシステムにおける通信の無効化

Country Status (5)

Country Link
US (5) US8880866B2 (ja)
EP (2) EP2628090B1 (ja)
JP (1) JP5815717B2 (ja)
CN (2) CN106227693B (ja)
WO (1) WO2012051577A1 (ja)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8989705B1 (en) 2009-06-18 2015-03-24 Sprint Communications Company L.P. Secure placement of centralized media controller application in mobile access terminal
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8782435B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
JP5815717B2 (ja) 2010-10-15 2015-11-17 コーヒレント・ロジックス・インコーポレーテッド マルチプロセッサシステムにおける通信の無効化
DE102011081421A1 (de) * 2011-08-23 2013-02-28 Siemens Ag System zur sicheren Übertragung von Daten und Verfahren
US9027102B2 (en) 2012-05-11 2015-05-05 Sprint Communications Company L.P. Web server bypass of backend process on near field communications and secure element chips
US8862181B1 (en) 2012-05-29 2014-10-14 Sprint Communications Company L.P. Electronic purchase transaction trust infrastructure
US9282898B2 (en) 2012-06-25 2016-03-15 Sprint Communications Company L.P. End-to-end trusted communications infrastructure
US9066230B1 (en) 2012-06-27 2015-06-23 Sprint Communications Company L.P. Trusted policy and charging enforcement function
US8649770B1 (en) 2012-07-02 2014-02-11 Sprint Communications Company, L.P. Extended trusted security zone radio modem
US8667607B2 (en) 2012-07-24 2014-03-04 Sprint Communications Company L.P. Trusted security zone access to peripheral devices
US8863252B1 (en) 2012-07-25 2014-10-14 Sprint Communications Company L.P. Trusted access to third party applications systems and methods
US9183412B2 (en) 2012-08-10 2015-11-10 Sprint Communications Company L.P. Systems and methods for provisioning and using multiple trusted security zones on an electronic device
US9215180B1 (en) 2012-08-25 2015-12-15 Sprint Communications Company L.P. File retrieval in real-time brokering of digital content
US8954588B1 (en) 2012-08-25 2015-02-10 Sprint Communications Company L.P. Reservations in real-time brokering of digital content delivery
US9015068B1 (en) 2012-08-25 2015-04-21 Sprint Communications Company L.P. Framework for real-time brokering of digital content delivery
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9235732B2 (en) * 2012-10-16 2016-01-12 Truedata Systems, Inc. Secure communication methods
CN109240704B (zh) 2012-11-06 2022-06-14 相干逻辑公司 用于设计重用的多处理器编程工具包
CN104813306B (zh) * 2012-11-21 2017-07-04 相干逻辑公司 具有散布处理器dma‑fifo的处理系统
JP6317365B2 (ja) * 2012-12-06 2018-04-25 コーヒレント・ロジックス・インコーポレーテッド 同期命令を含む処理システム
WO2014093862A1 (en) 2012-12-13 2014-06-19 Coherent Logix, Incorporated Reconfiguration of clock generation circuitry
WO2014092968A1 (en) 2012-12-13 2014-06-19 Coherent Logix, Incorporated Multiprocessor system with improved secondary interconnection network
US9578664B1 (en) 2013-02-07 2017-02-21 Sprint Communications Company L.P. Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system
US9161227B1 (en) 2013-02-07 2015-10-13 Sprint Communications Company L.P. Trusted signaling in long term evolution (LTE) 4G wireless communication
US9104840B1 (en) 2013-03-05 2015-08-11 Sprint Communications Company L.P. Trusted security zone watermark
US9613208B1 (en) 2013-03-13 2017-04-04 Sprint Communications Company L.P. Trusted security zone enhanced with trusted hardware drivers
US8881977B1 (en) 2013-03-13 2014-11-11 Sprint Communications Company L.P. Point-of-sale and automated teller machine transactions using trusted mobile access device
US9049013B2 (en) 2013-03-14 2015-06-02 Sprint Communications Company L.P. Trusted security zone containers for the protection and confidentiality of trusted service manager data
US9049186B1 (en) 2013-03-14 2015-06-02 Sprint Communications Company L.P. Trusted security zone re-provisioning and re-use capability for refurbished mobile devices
US9191388B1 (en) 2013-03-15 2015-11-17 Sprint Communications Company L.P. Trusted security zone communication addressing on an electronic device
US9374363B1 (en) 2013-03-15 2016-06-21 Sprint Communications Company L.P. Restricting access of a portable communication device to confidential data or applications via a remote network based on event triggers generated by the portable communication device
US8984592B1 (en) 2013-03-15 2015-03-17 Sprint Communications Company L.P. Enablement of a trusted security zone authentication for remote mobile device management systems and methods
US9021585B1 (en) 2013-03-15 2015-04-28 Sprint Communications Company L.P. JTAG fuse vulnerability determination and protection using a trusted execution environment
US9324016B1 (en) 2013-04-04 2016-04-26 Sprint Communications Company L.P. Digest of biographical information for an electronic device with static and dynamic portions
US9454723B1 (en) 2013-04-04 2016-09-27 Sprint Communications Company L.P. Radio frequency identity (RFID) chip electrically and communicatively coupled to motherboard of mobile communication device
US9171243B1 (en) 2013-04-04 2015-10-27 Sprint Communications Company L.P. System for managing a digest of biographical information stored in a radio frequency identity chip coupled to a mobile communication device
US9838869B1 (en) 2013-04-10 2017-12-05 Sprint Communications Company L.P. Delivering digital content to a mobile device via a digital rights clearing house
US9443088B1 (en) 2013-04-15 2016-09-13 Sprint Communications Company L.P. Protection for multimedia files pre-downloaded to a mobile device
WO2014178854A1 (en) 2013-04-30 2014-11-06 Hewlett-Packard Development Company, L.P. Memory network to route memory traffic and i/o traffic
US9195575B2 (en) 2013-05-17 2015-11-24 Coherent Logix, Incorporated Dynamic reconfiguration of applications on a multi-processor embedded system
US9069952B1 (en) 2013-05-20 2015-06-30 Sprint Communications Company L.P. Method for enabling hardware assisted operating system region for safe execution of untrusted code using trusted transitional memory
US9560519B1 (en) 2013-06-06 2017-01-31 Sprint Communications Company L.P. Mobile communication device profound identity brokering framework
US9183606B1 (en) 2013-07-10 2015-11-10 Sprint Communications Company L.P. Trusted processing location within a graphics processing unit
US10761155B2 (en) * 2013-07-16 2020-09-01 Siemens Aktiengesellschaft Hybrid averaging method for specific absorption rate supervision
US9208339B1 (en) 2013-08-12 2015-12-08 Sprint Communications Company L.P. Verifying Applications in Virtual Environments Using a Trusted Security Zone
US9436844B2 (en) * 2013-08-29 2016-09-06 Microsoft Technology Licensing, Llc Access enablement security circuit
US9716708B2 (en) 2013-09-13 2017-07-25 Microsoft Technology Licensing, Llc Security certificates for system-on-chip security
US9185626B1 (en) 2013-10-29 2015-11-10 Sprint Communications Company L.P. Secure peer-to-peer call forking facilitated by trusted 3rd party voice server provisioning
US9191522B1 (en) 2013-11-08 2015-11-17 Sprint Communications Company L.P. Billing varied service based on tier
US9161325B1 (en) 2013-11-20 2015-10-13 Sprint Communications Company L.P. Subscriber identity module virtualization
US9118655B1 (en) 2014-01-24 2015-08-25 Sprint Communications Company L.P. Trusted display and transmission of digital ticket documentation
US9226145B1 (en) 2014-03-28 2015-12-29 Sprint Communications Company L.P. Verification of mobile device integrity during activation
US10432409B2 (en) 2014-05-05 2019-10-01 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
US9230085B1 (en) 2014-07-29 2016-01-05 Sprint Communications Company L.P. Network based temporary trust extension to a remote or mobile device enabled via specialized cloud services
US9779232B1 (en) 2015-01-14 2017-10-03 Sprint Communications Company L.P. Trusted code generation and verification to prevent fraud from maleficent external devices that capture data
US9838868B1 (en) 2015-01-26 2017-12-05 Sprint Communications Company L.P. Mated universal serial bus (USB) wireless dongles configured with destination addresses
EP3265943B1 (en) * 2015-03-05 2021-04-28 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
US9473945B1 (en) 2015-04-07 2016-10-18 Sprint Communications Company L.P. Infrastructure for secure short message transmission
US9819679B1 (en) 2015-09-14 2017-11-14 Sprint Communications Company L.P. Hardware assisted provenance proof of named data networking associated to device data, addresses, services, and servers
US10044514B1 (en) * 2015-09-25 2018-08-07 Xilinx, Inc. Secure external key storage for programmable ICS
US10282719B1 (en) 2015-11-12 2019-05-07 Sprint Communications Company L.P. Secure and trusted device-based billing and charging process using privilege for network proxy authentication and audit
US9817992B1 (en) 2015-11-20 2017-11-14 Sprint Communications Company Lp. System and method for secure USIM wireless network access
EP3381128B1 (en) 2015-11-24 2020-01-01 Coherent Logix, Incorporated Memory management and path sorting in a polar code successive cancellation list decoder
JP6933648B2 (ja) 2015-12-28 2021-09-08 コーヒレント・ロジックス・インコーポレーテッド Fecの符号化および復号を加速するプロセッサ命令
US10586048B2 (en) * 2016-06-23 2020-03-10 Vmware, Inc. Efficient reboot of an operating system
US10534935B2 (en) * 2016-07-01 2020-01-14 Intel Corporation Migration of trusted security attributes to a security engine co-processor
US11797994B2 (en) * 2016-07-15 2023-10-24 Maxim Integrated Products, Inc. Systems and methods for a secure payment terminal without batteries
US10700968B2 (en) * 2016-10-19 2020-06-30 Rex Computing, Inc. Optimized function assignment in a multi-core processor
US10355975B2 (en) 2016-10-19 2019-07-16 Rex Computing, Inc. Latency guaranteed network on chip
DE102016120768A1 (de) * 2016-10-31 2018-05-03 HTV Cyperion GmbH Serversystemanordnung und Verfahren zum Betrieb einer Serversystemanordnung
DE102016120767A1 (de) * 2016-10-31 2018-05-03 HTV Cyperion GmbH Computersystemanordnung, Verfahren zum Betrieb einer Computersystemanordnung und Verfahren zur Übertragung von Daten bei einer Computersystemanordnung
US10699189B2 (en) 2017-02-23 2020-06-30 Cerebras Systems Inc. Accelerated deep learning
EP3376482B1 (en) * 2017-03-17 2022-06-22 Wincor Nixdorf International GmbH Document of value processing device and method for operating a document of value processing device
WO2018193370A1 (en) 2017-04-17 2018-10-25 Cerebras Systems Inc. Task activating for accelerated deep learning
US11488004B2 (en) 2017-04-17 2022-11-01 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
US10614357B2 (en) 2017-04-17 2020-04-07 Cerebras Systems Inc. Dataflow triggered tasks for accelerated deep learning
US10958452B2 (en) 2017-06-06 2021-03-23 Analog Devices, Inc. System and device including reconfigurable physical unclonable functions and threshold cryptography
US10499249B1 (en) 2017-07-11 2019-12-03 Sprint Communications Company L.P. Data link layer trust signaling in communication network
KR20200052277A (ko) 2017-08-03 2020-05-14 넥스트 실리콘 리미티드 설정가능한 하드웨어 런타임 최적화
US10817344B2 (en) 2017-09-13 2020-10-27 Next Silicon Ltd Directed and interconnected grid dataflow architecture
WO2019090032A1 (en) 2017-11-03 2019-05-09 Coherent Logix, Inc. Memory network processor
DE102017220764A1 (de) * 2017-11-21 2019-05-23 Audi Ag Ein-Chip-System für ein Fahrzeug
US10873754B2 (en) 2017-12-12 2020-12-22 Coherent Logix, Incorporated Low latency video codec and transmission with parallel processing
US10706179B2 (en) * 2018-01-10 2020-07-07 General Electric Company Secure provisioning of secrets into MPSoC devices using untrusted third-party systems
US10755201B2 (en) 2018-02-14 2020-08-25 Lucid Circuit, Inc. Systems and methods for data collection and analysis at the edge
US11245520B2 (en) 2018-02-14 2022-02-08 Lucid Circuit, Inc. Systems and methods for generating identifying information based on semiconductor manufacturing process variations
AU2019287432A1 (en) * 2018-06-11 2021-01-07 Lucid Circuit, Inc. Systems and methods for autonomous hardware compute resiliency
WO2020044152A1 (en) 2018-08-28 2020-03-05 Cerebras Systems Inc. Scaled compute fabric for accelerated deep learning
WO2020044208A1 (en) 2018-08-29 2020-03-05 Cerebras Systems Inc. Isa enhancements for accelerated deep learning
US11328208B2 (en) 2018-08-29 2022-05-10 Cerebras Systems Inc. Processor element redundancy for accelerated deep learning
WO2020163287A1 (en) 2019-02-04 2020-08-13 Coherent Logix, Inc. A comprehensive system design to address the needs for virtual segmentation of the coaxial cable plant
US10839121B1 (en) * 2019-04-30 2020-11-17 Xilinx, Inc. Data processing engine (DPE) array detailed mapping
US11456855B2 (en) * 2019-10-17 2022-09-27 Arm Limited Obfuscating data at-transit
US11803643B2 (en) * 2020-02-07 2023-10-31 Intel Corporation Boot code load system
US11269526B2 (en) 2020-04-23 2022-03-08 Next Silicon Ltd Interconnected memory grid with bypassable units
US20220100504A1 (en) * 2020-09-25 2022-03-31 Advanced Micro Devices, Inc. Shared data fabric processing client reset system and method
CN112306782B (zh) * 2020-11-24 2022-04-26 中国人民解放军军事科学院国防科技创新研究院 面向调测试的操作系统内核引导与加载硬件及方法
US20230078058A1 (en) * 2021-09-10 2023-03-16 Ampere Computing Llc Computing systems employing a secure boot processing system that disallows inbound access when performing immutable boot-up tasks for enhanced security, and related methods

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459846A (en) 1988-12-02 1995-10-17 Hyatt; Gilbert P. Computer architecture system having an imporved memory
US4493048A (en) 1982-02-26 1985-01-08 Carnegie-Mellon University Systolic array apparatuses for matrix computations
US4873630A (en) 1985-07-31 1989-10-10 Unisys Corporation Scientific processor to support a host processor referencing common memory
US4945479A (en) 1985-07-31 1990-07-31 Unisys Corporation Tightly coupled scientific processing system
US4739476A (en) 1985-08-01 1988-04-19 General Electric Company Local interconnection scheme for parallel processing architectures
US4720780A (en) 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4807183A (en) 1985-09-27 1989-02-21 Carnegie-Mellon University Programmable interconnection chip for computer system functional modules
US4933836A (en) 1986-10-29 1990-06-12 United Technologies Corporation n-Dimensional modular multiprocessor lattice architecture
DE3750839T2 (de) 1986-10-29 1995-05-04 United Technologies Corp Modulare Multiprozessor-N-Dimensionsgitterarchitektur.
US5963746A (en) 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5630162A (en) 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5689719A (en) 1991-06-28 1997-11-18 Sanyo Electric O., Ltd. Parallel computer system including processing elements
JPH05257709A (ja) 1992-03-16 1993-10-08 Hitachi Ltd 並列化判別方法およびそれを用いた並列化支援方法
JP2642039B2 (ja) 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
GB9305263D0 (en) 1993-03-15 1993-05-05 Univ Westminster Parrallel computation
US5634043A (en) 1994-08-25 1997-05-27 Intel Corporation Microprocessor point-to-point communication
US5903466A (en) 1995-12-29 1999-05-11 Synopsys, Inc. Constraint driven insertion of scan logic for implementing design for test within an integrated circuit design
US5944779A (en) 1996-07-02 1999-08-31 Compbionics, Inc. Cluster of workstations for solving compute-intensive applications by exchanging interim computation results using a two phase communication protocol
US5966534A (en) 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
US6226776B1 (en) 1997-09-16 2001-05-01 Synetry Corporation System for converting hardware designs in high-level programming language to hardware implementations
US6145117A (en) 1998-01-30 2000-11-07 Tera Systems Incorporated Creating optimized physical implementations from high-level descriptions of electronic design using placement based information
US6106575A (en) 1998-05-13 2000-08-22 Microsoft Corporation Nested parallel language preprocessor for converting parallel language programs into sequential code
JPH11353288A (ja) 1998-06-04 1999-12-24 Toshiba Corp 並列計算機及びメモリ装置
US6433802B1 (en) 1998-12-29 2002-08-13 Ncr Corporation Parallel programming development environment
US6466898B1 (en) 1999-01-12 2002-10-15 Terence Chan Multithreaded, mixed hardware description languages logic simulation on engineering workstations
US20020138244A1 (en) 1999-09-30 2002-09-26 Meyer Steven J. Simulator independent object code HDL simulation using PLI
US20010042138A1 (en) 1999-12-23 2001-11-15 Reinhard Buendgen Method and system for parallel and procedural computing
US6578133B1 (en) 2000-02-24 2003-06-10 Stanley M. Hyduke MIMD array of single bit processors for processing logic equations in strict sequential order
US6766437B1 (en) 2000-02-28 2004-07-20 International Business Machines Corporation Composite uniprocessor
US6725317B1 (en) * 2000-04-29 2004-04-20 Hewlett-Packard Development Company, L.P. System and method for managing a computer system having a plurality of partitions
DE60237433D1 (de) 2001-02-24 2010-10-07 Ibm Neuartiger massivparalleler supercomputer
US6968447B1 (en) 2001-04-13 2005-11-22 The United States Of America As Represented By The Secretary Of The Navy System and method for data forwarding in a programmable multiple network processor environment
US7152151B2 (en) * 2002-07-18 2006-12-19 Ge Fanuc Embedded Systems, Inc. Signal processing resource for selective series processing of data in transit on communications paths in multi-processor arrangements
US7130457B2 (en) 2001-07-17 2006-10-31 Accuimage Diagnostics Corp. Systems and graphical user interface for analyzing body images
US8412915B2 (en) * 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
JP4322119B2 (ja) 2001-12-14 2009-08-26 エヌエックスピー ビー ヴィ データ処理システム
US7206732B2 (en) 2002-04-04 2007-04-17 International Business Machines Corporation C-API instrumentation for HDL models
US7415594B2 (en) 2002-06-26 2008-08-19 Coherent Logix, Incorporated Processing system with interspersed stall propagating processors and communication elements
GB2394389B (en) 2002-10-15 2005-05-18 Toshiba Res Europ Ltd Equalisation apparatus and methods
GB0224023D0 (en) * 2002-10-16 2002-11-27 Roysmith Graeme Reconfigurable integrated circuit
US7000092B2 (en) 2002-12-12 2006-02-14 Lsi Logic Corporation Heterogeneous multi-processor reference design
JP3923920B2 (ja) 2003-03-31 2007-06-06 株式会社東芝 集積回路の設計システム及び集積回路の設計方法
EP1625489A2 (en) * 2003-04-21 2006-02-15 Netcell Corp. Disk array controller with reconfigurable data path
US6981232B1 (en) 2003-05-23 2005-12-27 Xilinx, Inc. Method and system for integrating a program and a processor into an application specific processor
US7577727B2 (en) * 2003-06-27 2009-08-18 Newisys, Inc. Dynamic multiple cluster system reconfiguration
US7353362B2 (en) 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
GB2408898B (en) 2003-12-02 2006-08-16 Toshiba Res Europ Ltd Improved communications apparatus and methods
CN100543753C (zh) 2004-06-30 2009-09-23 相干逻辑公司 硬件描述语言(hdl)程序的执行
JP4594666B2 (ja) * 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置
US7814462B2 (en) 2004-10-29 2010-10-12 Massachusetts Institute Of Technology Methods and apparatus for parallel execution of a process
AU2005302145A1 (en) 2004-10-29 2006-05-11 Interactive Supercomputing, Inc. Methods and apparatus for parallel execution of a process
TW200617703A (en) * 2004-11-30 2006-06-01 Tokyo Electron Ltd Dynamically reconfigurable processor
WO2006082985A2 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for providing a secure booting sequence in a processor
US7437500B2 (en) 2005-08-05 2008-10-14 Lsi Corporation Configurable high-speed memory interface subsystem
EP1783604A3 (en) 2005-11-07 2007-10-03 Slawomir Adam Janczewski Object-oriented, parallel language, method of programming and multi-processor computer
US7486111B2 (en) * 2006-03-08 2009-02-03 Tier Logic, Inc. Programmable logic devices comprising time multiplexed programmable interconnect
DE602007006467D1 (de) 2006-03-27 2010-06-24 Coherent Logix Inc Programmierung eines multiprozessorsystems
JP4878487B2 (ja) * 2006-03-30 2012-02-15 キヤノン株式会社 情報配信装置、情報配信システム、情報処理方法、およびプログラム
US7487229B2 (en) 2006-03-30 2009-02-03 Intel Corporation Methods and apparatus to synchronize local times at nodes in a computer network
US20070245122A1 (en) * 2006-04-13 2007-10-18 Archer Charles J Executing an Allgather Operation on a Parallel Computer
US7761817B2 (en) 2006-05-22 2010-07-20 Coherent Logix, Incorporated Designing an ASIC based on execution of a software program on a processing system
US8099583B2 (en) * 2006-08-23 2012-01-17 Axis Semiconductor, Inc. Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing
US7752385B2 (en) * 2006-09-07 2010-07-06 International Business Machines Corporation Flexible disk storage enclosure
US20080062634A1 (en) * 2006-09-07 2008-03-13 International Business Machines Corporation logical partitioning of disk storage enclosure
US8522309B2 (en) 2007-01-22 2013-08-27 Simon Yoffe Security switch
JP2010532588A (ja) 2007-01-22 2010-10-07 シモン ヨフェ セキュリティ・スイッチ
US8898653B2 (en) * 2007-06-27 2014-11-25 International Business Machines Corporation Non-disruptive code update of a single processor in a multi-processor computing system
KR20090008519A (ko) * 2007-07-18 2009-01-22 삼성전자주식회사 공유 레지스터를 갖는 멀티패쓰 억세스블 반도체 메모리장치 및 그에 따른 공유 레지스터 운영방법
CN102804609B (zh) 2009-06-17 2015-04-01 相干逻辑公司 基于格式结构方法的并行执行
US8370605B2 (en) * 2009-11-11 2013-02-05 Sunman Engineering, Inc. Computer architecture for a mobile communication platform
US9013991B2 (en) * 2009-12-21 2015-04-21 Empire Technology Development Llc Multicore processor including two or more collision domain networks
US8930713B2 (en) * 2010-03-10 2015-01-06 Dell Products L.P. System and method for general purpose encryption of data
JP5815717B2 (ja) 2010-10-15 2015-11-17 コーヒレント・ロジックス・インコーポレーテッド マルチプロセッサシステムにおける通信の無効化

Also Published As

Publication number Publication date
EP3432152A1 (en) 2019-01-23
US20160232357A1 (en) 2016-08-11
JP2013543183A (ja) 2013-11-28
WO2012051577A1 (en) 2012-04-19
US10007806B2 (en) 2018-06-26
EP3432152B1 (en) 2020-03-18
US20200302090A1 (en) 2020-09-24
US8880866B2 (en) 2014-11-04
US20150026451A1 (en) 2015-01-22
US20120137119A1 (en) 2012-05-31
EP2628090B1 (en) 2018-05-30
CN106227693A (zh) 2016-12-14
US10685143B2 (en) 2020-06-16
CN103154925B (zh) 2016-08-24
US20180276416A1 (en) 2018-09-27
CN106227693B (zh) 2019-06-04
US9424441B2 (en) 2016-08-23
EP2628090A1 (en) 2013-08-21
CN103154925A (zh) 2013-06-12

Similar Documents

Publication Publication Date Title
US20200302090A1 (en) Selectively Disabling Configurable Communication Paths of a Multiprocessor Fabric
US11956220B2 (en) Logic repository service using encrypted configuration data
US9230112B1 (en) Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis
US9165143B1 (en) Image file generation and loading
Jacob et al. How to break secure boot on fpga socs through malicious hardware
KR20170095161A (ko) 시큐어 시스템 온 칩
Shimizu et al. Cell broadband engine processor vault security architecture
Khan et al. Utilizing and extending trusted execution environment in heterogeneous SoCs for a pay-per-device IP licensing scheme
Armanuzzaman et al. Byotee: Towards building your own trusted execution environments using fpga
McNeil et al. Isolation Methods in Zynq UltraScale+ MPSoCs
González Operating Security System Support for Run-Time Security with a Trusted Execution Environment
Kepa et al. SeReCon: a secure reconfiguration controller for self-reconfigurable systems
Donnini Integration of the DICE specification into the Keystone framework
Cetola A Method for Comparative Analysis of Trusted Execution Environments
CN112437924A (zh) 用于可编程逻辑器件的安全引导系统和方法
Coughlin Enabling User Space Secure Hardware
Kępa et al. Secure Intellectual Property Management in Reconfigurable Computing Systems
Glapa Pull the Rug from Under: Malicious Reconfiguration Of Executing Program In FPGA and its Defense
Hutchings 3rd Party IP Encryption from Netlist to Bitstream for Xilinx 7-Series FPGAs
Vuillermoz Analysis of TEE technologies as trust anchors
Kepa et al. SeReCon: A trusted environment for SoPC design
Yao et al. White Paper A Tour Beyond BIOS Implementing UEFI Authenticated Variables in SMM with EDKII
CN116830110A (zh) 多芯片安全可编程系统和方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150812

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: 20150825

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150924

R150 Certificate of patent or registration of utility model

Ref document number: 5815717

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250