JP2017535125A - セーフティサブシステムを有するプログラマブルic - Google Patents

セーフティサブシステムを有するプログラマブルic Download PDF

Info

Publication number
JP2017535125A
JP2017535125A JP2017515723A JP2017515723A JP2017535125A JP 2017535125 A JP2017535125 A JP 2017535125A JP 2017515723 A JP2017515723 A JP 2017515723A JP 2017515723 A JP2017515723 A JP 2017515723A JP 2017535125 A JP2017535125 A JP 2017535125A
Authority
JP
Japan
Prior art keywords
programmable
safety
subsystem
circuit
circuits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017515723A
Other languages
English (en)
Other versions
JP6647289B2 (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.)
Xilinx Inc
Original Assignee
Xilinx 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 Xilinx Inc filed Critical Xilinx Inc
Publication of JP2017535125A publication Critical patent/JP2017535125A/ja
Application granted granted Critical
Publication of JP6647289B2 publication Critical patent/JP6647289B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • 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
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/007Fail-safe circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17764Structural details of configuration resources for reliability
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17768Structural details of configuration resources for security

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Abstract

プログラマブルロジックサブシステム(130,330)、プロセッシングサブシステム(110,310)、及びセーフティサブシステム(120,340)を含むプログラマブルIC(102,302)が、開示される。前記プログラマブルロジックサブシステム(130,330)は、ユーザ設計のハードウェア部分を形成するように構成されたプログラマブルロジック回路を含む。プロセッシングサブシステム(110,310)は、ユーザ設計のソフトウェア部分を実行するように構成された処理回路(112,312,314,316,318)を含む。セーフティサブシステムは、プログラマブルIC(102,302)の回路におけるエラーを検出および/または緩和する安全機能を実行するように構成される。セーフティサブシステムは、プログラマブルICの回路の第1のサブセットに対してハードウェアベースの安全機能(123)を実行するように構成されたハードワイヤード回路(122,341)を含む。セーフティサブシステムはまた、プログラマブルICの回路の第2のサブセットに対してソフトウェアベースの安全機能(125)を実行するように構成された処理回路(124,342)を含む。【選択図】図1

Description

本開示は、一般に、セーフティクリティカルな用途のための回路および方法に関する。
プログラマブル集積回路(IC)は、特定の論理機能を実行するようにプログラムすることができるデバイスである。1つのタイプのプログラマブルICであるフィールドプログラマブルゲートアレイ(FPGA)は、通常、プログラマブルタイルのアレイを含む。これらのプログラマブルタイルは、例えば、入出力ブロック(IOB)、構成可能論理ブロック(CLB)、専用ランダムアクセスメモリブロック(BRAM)、乗算器、デジタル信号処理ブロック(DSP)、プロセッサ、クロックマネージャ、ディレイロックループ(DLL)、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)およびイーサネット(登録商標)などのバスまたはネットワークインターフェースを含むことができる、様々なタイプの論理ブロックを含む。
各プログラマブルタイルは、通常、プログラマブルインターコネクトとプログラマブルロジックの両方を含む。プログラマブルインターコネクトは、通常、プログラマブルインターコネクトポイント(PIP)によって相互接続された様々な長さの多数のインターコネクトラインを含む。プログラマブルロジックは、例えば、ファンクションジェネレータ、レジスタ、算術論理などを含むことができるプログラマブルエレメントを使用してユーザ設計のロジックを実装する。
プログラマブルインターコネクトおよびプログラマブルロジックは、通常、プログラマブルエレメントがどのように構成されるかを定義するコンフィギュレーションデータのストリームを内部コンフィギュレーションメモリセルにロードすることによって、プログラムされる。コンフィギュレーションデータは、メモリから(例えば、外部PROMから)読み出すことができ、または外部デバイスによってFPGAに書き込むことができる。その後、個々のメモリセルの集合状態が、FPGAの機能を決定する。
いくつかのプログラマブルICには、プログラムコードを実行できるエンベデッドプロセッサが含まれる。プロセッサは、ICの「プログラマブル回路」とも総称されるプログラマブルロジック回路およびプログラマブルインターコネクト回路を含む同じダイの一部として製造することができる。プロセッサ内でのプログラムコードの実行は、IC上で利用可能なプログラマブル回路を「プログラムすること」または「構成すること」と区別できる、ということを理解されたい。ICのプログラマブル回路をプログラムまたは構成する行為は、プログラマブル回路内にコンフィギュレーションデータによって特定される異なる物理回路の実装をもたらす。
プログラマブルロジックサブシステム、プロセッシングサブシステム、およびセーフティサブシステムを含むプログラマブルICが、開示される。プログラマブルロジックサブシステムは、コンフィギュレーションデータの第1のサブセットに応答して構成された複数のプログラマブルロジック回路を含む。プロセッシングサブシステムは、コンフィギュレーションデータの第2のサブセットに応答してソフトウェアプログラムを実行するように構成された1つ以上の処理回路を含む。セーフティサブシステムは、プログラマブルICの回路におけるエラーを検出および/または緩和する安全機能を実行するように構成される。セーフティサブシステムは、プログラマブルICの回路の第1のサブセットに対してハードウェアベースの安全機能を実行するように構成された一組のハードワイヤード回路を含む。セーフティサブシステムはまた、プログラマブルICの回路の第2のサブセットに対してソフトウェアベースの安全機能を実行するように構成された処理回路を含む。
任意選択で、プログラマブルICは、コンフィギュレーションデータの受信に応答してコンフィギュレーションデータの第3のサブセットに含まれる安全ポリシーを格納するように構成されてもよく、安全ポリシーは、プログラマブルICの回路の優先度を識別してもよく、回路の第1のサブセットは、より高い優先度の回路として識別され、回路の第2のサブセットは、より低い優先度の回路として識別される。
任意選択で、コンフィギュレーションデータの第3のサブセットは、プログラマブルICの各回路に対して実行される安全機能を指定する。
任意選択で、処理回路は、ロックステップでソフトウェアベースの安全機能の1つを実行するように構成された少なくとも2つのプロセッサを含む。
任意選択で、一組のハードワイヤード回路によって実行されるハードウェアベースの安全機能の少なくとも1つは、この2つのプロセッサがロックステップで正しく動作しているか否かを決定するように構成することができる。
任意選択で、プログラマブルICの回路はメモリ回路を含み、メモリ回路に対してセーフティサブシステムによって実行される安全機能は、誤り訂正符号を使用してメモリ回路に記憶されたデータの完全性を監視する。
任意選択で、プログラマブルロジックサブシステム、プロセッシングサブシステム、およびセーフティサブシステムは、別々のパワードメインによって電力供給される。
任意選択で、プログラマブルICは、プログラマブルロジックサブシステム、プロセッシングサブシステム、およびセーフティサブシステムに電源供給するために使用されるパワードメインの電力を調整するように構成された電力管理ユニットを含む。電力管理ユニットに対してセーフティサブシステムによって実行される安全機能は、一組のハードワイヤード回路に含まれる三重モジュール冗長エラー検出回路を使用して、電力管理ユニットの動作をエラーについて監視する。
任意選択で、セーフティサブシステムによって実行される安全機能のうちの少なくとも1つは、プログラマブルICのプログラマブルロジックサブシステムまたはプロセッシングサブシステムのうちの1つを、該サブシステムにエラーを検出することに応答して、リセットするように構成される。
任意選択で、プログラマブルICの1つの回路に対してセーフティサブシステムによって実行される安全機能の少なくとも1つは、該1つの回路によって使用される通信データ経路をプログラマブルICの他の回路によって使用される通信データ経路から分離する。
プログラマブルICを動作させる方法もまた、開示される。ユーザ設計のハードウェア部分が、プログラマブルICのプログラマブルロジックサブシステムで動作する。ユーザ設計のソフトウェア部分が、プログラマブルICのプロセッシングサブシステムで実行される。ソフトウェアベースの安全機能は、プログラマブルICのセーフティサブシステムの一組のプロセッサを使用して実行される。ハードウェアベースの安全機能は、セーフティサブシステムの一組のハードワイヤード回路を使用して実行される。ソフトウェアベースおよびハードウェアベースの安全機能は、プログラマブルICのそれぞれの回路におけるエラーを検出および/または緩和するように構成される。
任意選択で、本方法は、コンフィギュレーションデータのセットでプログラマブルロジックサブシステムを、ユーザ設計のハードウェア部分を形成するように構成することと、コンフィギュレーションデータのセットのサブセットに含まれる安全ポリシーをセーフティサブシステムのメモリに格納することと、を更に含み、安全ポリシーは、ハードウェアベースまたはソフトウェアベースの安全機能の少なくとも1つを示す。
任意選択で、安全ポリシーは、プログラマブルICの回路を高優先度または低優先度として分類し、ソフトウェアベースの安全機能が、低優先度と分類されたプログラマブルICの回路内のエラーを検出および/または緩和し、ハードウェアベースの安全機能が、高優先度と分類されたプログラマブルICの回路内のエラーを検出および/または緩和する。
任意選択で、ソフトウェアベースの安全機能の少なくとも1つは、ロックステップで動作される一組のプロセッサの少なくとも2つのプロセッサを使用して実行される。
任意選択で、ハードウェアベースの安全機能の少なくとも1つは、該少なくとも2つのプロセッサがロックステップで正しく動作しているか否かを決定するように構成される。
任意選択で、プログラマブルICの回路はメモリ回路を含み、ソフトウェアベースまたはハードウェアベースの安全機能のうちの少なくとも1つを実行することは、誤り訂正符号を使用してメモリ回路に記憶されたデータの完全性を監視することを含む。
任意選択で、本方法は、別々のパワードメインを使用して、プログラマブルロジックサブシステム、プロセッシングサブシステム、およびセーフティサブシステムに電源供給することをさらに含む。
任意選択で、本方法は、プログラマブルICの電力管理ユニットを使用して別々のパワードメインで電力を調整することを、さらに含む。ハードウェアベースの安全機能を実行することは、一組のハードワイヤード回路に含まれる三重モジュール冗長エラー検出回路を使用して、エラーについて電力管理ユニットの動作を監視することを含むことができる。
任意選択で、ソフトウェアベースまたはハードウェアベースの安全機能のうちの少なくとも1つは、プログラマブルICのプログラマブルロジックサブシステムまたはプロセッシングサブシステムのうちの1つを、該サブシステムにエラーを検出することに応答して、リセットするように構成される。
任意選択で、ソフトウェアベースまたはハードウェアベースの安全機能のうちの少なくとも1つは、プログラマブルICの回路のうちの1つによって使用される通信データ経路を、プログラマブルICの他の回路によって使用される通信データ経路から分離するように構成される。
他の特徴は、以下の詳細な説明および特許請求の範囲の考察から認識されるであろう。
開示された方法および回路の様々な態様および特徴は、以下の詳細な説明を概観し、図面を参照して明らかになるであろう。
1つ以上の実施形態と一致する、第1のプログラマブルICを示す。 1つ以上の実施形態と一致する、プログラマブルICを動作させるための例示的なプロセスを示す。 1つ以上の実施形態と一致する、第2のプログラマブルICを示す。 プログラマブルICのセーフティサブシステムに含まれ得る、ユーザ構成可能なエラー処理のための例示的なシステムを示す。
いくつかのミッションクリティカルな用途では、プログラマブルICは、プログラマブルロジックサブシステムまたはプロセッシングサブシステムにおいて1つ以上のミッションクリティカルな機能を実行するように構成することができる。IEC 61508 SIL3やISO−26262 ASILCなどの幾つかの高安全性認定基準を満たすために、別個の安全回路がプログラマブルICに接続され、ミッションクリティカルな回路や機能の正しい動作を保証する。安全回路は、高安全性認定基準を満たすために、厳重な分離、保護、および診断カバレッジの要件に準拠する必要があり得る。この要件は、プログラマブルIC全体および安全回路を含むデバイス全体に適用され、非ミッションクリティカルな回路の障害が、ミッションクリティカルな回路または機能を監視するセーフティシステムの能力に影響を与えないことを保証する。これらの要件は、著しい負担をかけ、設計プロセスを長くする可能性がある。
1つ以上の実施形態では、プログラマブルICは、プロセッシングサブシステムおよびプログラマブルロジックサブシステムと統合されたセーフティサブシステムを含む。プログラマブルロジックサブシステムは、ユーザ設計のハードウェア部分を形成するようにコンフィギュレーションデータの第1のサブセットによって構成され得る複数のプログラマブルロジック回路を含む。プロセッシングサブシステムは、コンフィギュレーションデータの第2のサブセットに含まれるユーザ設計のソフトウェア部分を実行するように構成された1つ以上の処理回路を含む。セーフティサブシステムは、1つ以上の安全機能を実行するように構成される。各安全機能は、プログラマブルICの複数の回路のうちのそれぞれの回路内のエラーを検出および/または緩和するように構成される。安全機能は、電圧調整、パワーダウン、リセット、エラー信号生成、データバックアップ、冗長/バックアップシステムへの切り替え、ビルトイン・セルフテストなど、検出されたエラーに応答して複数の様々なアクションを実行する。いくつかの実施形態では、局所的なエラーが発生した個々のサブシステムをリセットするように、安全機能を構成することができる。
セーフティサブシステムは、複数の回路の第1のサブセットに対して安全機能を実行するように構成された一組のハードワイヤード回路を含む。ハードワイヤード回路は、プログラマブルICのプログラマブル回路を実装するダイの部分として製造される。セーフティサブシステムはまた、プログラマブルICの複数の回路の第2のサブセットに対して一組の安全機能を実施するためのプログラムコードを実行するように構成された処理回路を含む。参照を容易にするために、ハードワイヤード回路によって実行される安全機能は、ハードウェアベースの安全機能と呼ぶことができる。逆に、処理回路によって実行される安全機能は、ソフトウェアベースの安全機能と呼ぶことができる。
様々な実施形態では、保護されるべき複数の回路および使用される安全機能は、ユーザによって全体的または部分的に指定されてもよい。例えば、コンフィギュレーションデータの一部は、プログラマブルICの複数の回路のそれぞれに対して実行されるべき安全機能を指定する安全ポリシーを含むことができる。
安全機能は、プログラマブルICの異なるタイプの回路に対して異なるレベルの保護を提供することができる。いくつかの実施形態では、コンフィギュレーションデータは、回路の各々について保護される優先度を示すことができる。セーフティサブシステムは、低優先度回路に対してソフトウェアベースの安全機能を実行し、高優先度回路に対してハードウェアベースの安全機能を実行するように構成することができる。これに代えて、またはそれに加えて、安全機能は、より低い優先度の回路よりも頻繁に、正しい動作のためにより高い優先度の回路をチェックすることができる。いくつかの安全機能は、セーフティサブシステムの冗長ハードワイヤード回路によって実行することができる。例えば、セーフティサブシステムのハードワイヤード回路は、プログラマブルICの電力管理ユニットを監視するように構成された三重モジュール冗長回路を含むことができる。
いくつかの用途では、セーフティサブシステムの処理回路は、ロックステップで一組のソフトウェアベースの安全機能を実行するように構成された少なくとも2つのプロセッサを含む。セーフティサブシステム内のハードワイヤード回路によって実行される安全機能の1つ以上が、2つのプロセッサがロックステップで正しく動作していることを保証するために様々な回路を監視するように構成することができる。
いくつかの実施形態では、プロセッサのロックステップ動作に重要な高優先度回路の第1のグループは、ソフトウェア診断を使用せずにハードウェアベースの安全機能によって保護される。第1のグループの回路は、例えば、ロックステップで動作させるべきプロセッサ、プロセッサによって使用されるキャッシュ、ロックステッププロセッサ上で実行されるソフトウェアによって参照される変数を格納するために使用されるオンチップメモリ、メモリとプロセッサとの間でデータを伝達するインターコネクトを含み得る。例えば、メモリの安全機能は、誤り訂正符号を使用してメモリ回路に格納されたデータの完全性を監視することができる。別の例として、キャッシュの安全機能は、正しいロックステップ動作のためにプロセッサによって使用されるキャッシュを監視するように構成されてもよい。
プログラマブルICのインフラストラクチャに関連する中間優先度の回路の第2のグループは、ハードウェアベースおよびソフトウェアベースの安全機能の組み合わせによって保護されてもよい。第2のグループに対するいくつかの安全機能は、クロック周波数、電圧レベル、および/または温度などの動作パラメータを監視することができる。第2のグループに対するいくつかの他の安全機能は、プログラマブルICの他の回路またはサブシステムからのセーフティクリティカルな回路または機能の分離を容易にすることができる。
より低い優先度の回路の第3のグループは、主にソフトウェアベースの安全機能によって保護されてもよい。より低い優先度の回路の第3のグループは、例えば、セーフティクリティカルな回路または機能によって利用されない周辺装置を含むことができる。ハードウェアベースの安全機能を使用して、セーフティクリティカルな回路または機能によって使用される周辺装置を保護することができる。複数のI/Oチャネルおよび/またはI/Oループバック性能を、セーフティクリティカルな周辺装置のために提供することもできる。
いくつかの実施形態では、プログラマブルロジックサブシステム、プロセッシングサブシステム、およびセーフティサブシステムは、別々のパワードメインで電力供給されてもよい。別々のパワードメインを使用することにより、セーフティサブシステムは、万一、プロセッシングサブシステムまたはプログラマブルロジックサブシステムに電力障害が発生した場合に、動作を継続し得る。いくつかの実施形態では、1つ以上の安全機能が、プロセッシングサブシステムまたはプログラマブルロジックサブシステムにおける電力障害に応答して是正措置を講じることができる。さらに、別々のパワードメインを使用することにより、例えば、サブシステムにおける回復不能なエラーに応答して、プロセッシングサブシステムまたはプログラマブルロジックサブシステムを独立してリセットすることができる。
以下の説明では、本明細書に示される特定の例を説明するために、多数の特定の詳細が説明される。しかしながら、以下に示す特定の詳細が全てなくとも、1つ以上の他の例および/またはこれらの例の変形例が実施され得ることは明らかである。他の例では、本明細書の例の説明を不明瞭にしないように、周知の特徴については詳細には説明していない。
ここで図面を参照すると、図1は、1つ以上の実施形態に従って構成された第1のプログラマブルICを示す。プログラマブルIC102は、プロセッシングサブシステム110、セーフティサブシステム120、及びプログラマブルロジックサブシステム130を含む。プログラマブルロジックサブシステム130は、ユーザ設計のハードウェア部分を形成するようにコンフィギュレーションデータの第1のサブセットによって構成され得る複数のプログラマブルロジック回路132を含む。プロセッシングサブシステム110は、コンフィギュレーションデータの第2のサブセットに含まれるユーザ設計のソフトウェア部分のプログラムコードを実行するように構成された1つ以上の処理回路112を含む。
セーフティサブシステム120は、各々がプログラマブルICのそれぞれの回路内のエラーを検出および/または緩和するように構成された1つ以上の安全機能を実行するように構成される。セーフティサブシステム120は、プログラマブルICの回路の第1の組に対してハードウェアベースの安全機能123を実行するように構成された一組のハードワイヤード回路122を含む。セーフティサブシステムはまた、プログラマブルICの回路の第2の組に対して一組のソフトウェアベースの安全機能125を実行するように構成された1つ以上の処理回路124を含む。前述のように、安全機能123および125は、検出されたエラーに応答して、多くの異なるアクションを実行する。異なるアクションは、電圧調整、パワーダウン、サブシステムリセット、エラー信号生成、データバックアップ、冗長/バックアップシステムへの切り替え、および/またはビルトイン・セルフテストを含むことができる。いくつかの実施形態では、実行されるべき安全機能123および125ならびに安全機能によって保護されるべき回路は、サブシステムのメモリ126に格納された安全ポリシー128で指定される。いくつかの実施形態では、メモリ126は、デフォルトの安全ポリシーを格納するように構成された不揮発性メモリであってもよい。いくつかの他の実施形態では、安全ポリシー128は、プログラマブルICの起動時にメモリ126に格納されてもよい。いくつかの実施形態では、安全ポリシー128は、ユーザによって準備または調整されてもよい。例えば、安全ポリシー128は、プログラマブルロジックサブシステム130のプログラマブルロジック回路132を構成するために使用されるコンフィギュレーションデータのセットの一部に、全体的または部分的に準備されてもよい。
図2は、1つ以上の実施形態と一致する、プログラマブルICを動作させるための例示的なプロセスを示す。ブロック202において、プロセッシング(PS)サブシステムは、コンフィギュレーションデータのセットの第1のサブセットに示されるユーザ設計のソフトウェア部分を実行するように構成される。ブロック204において、プログラマブルロジック(PL)サブシステムの一組のプログラマブルロジック回路は、ユーザ設計のハードウェア部分を実装するように、コンフィギュレーションデータのセットの第2のサブセットでプログラムされる。任意選択で、ブロック206において、セーフティサブシステムは、コンフィギュレーションデータのセットの第3のサブセットに含まれる安全ポリシーで指定された1つ以上のユーザ定義の安全機能を実行するように構成されてもよい。コンフィギュレーションは、例えば、セーフティサブシステムのメモリに安全ポリシーを格納することを含むことができる。
ブロック208において、ユーザ設計のソフトウェア部分およびハードウェア部分が動作される。ブロック210において、安全機能の第1の組が、セーフティサブシステム内のロックステップで動作される一組のプロセッサによって実行される。安全機能の第1の組は、例えば、ユーザ定義の安全機能(提供されている場合)を含むことができる。ブロック212において、安全機能の第2の組が、セーフティサブシステム内の一組のハードワイヤード回路によって実行される。例えば、安全機能の第2の組のうちの1つは、セーフティサブシステム内の一組のプロセッサがロックステップで正しく動作するのを保証するように構成することができる。いくつかの実施形態では、1つ以上のハードワイヤード回路を、1つ以上のユーザ定義の安全機能(提供されている場合)を実装するように構成することができる。ユーザ定義の安全機能を実行するように構成することができるハードワイヤード回路は、図4を参照してより詳細に説明される。ユーザ設計のソフトウェア部分およびハードウェア部分が、ブロック208で動作し続ける間、安全機能は、ブロック210および212で実行され続ける。
図3は、1つ以上の実施形態に従って構成され得るプログラマブルIC302を示す。プログラマブルICは、プロセッシングサブシステム310およびプログラマブルロジックサブシステム330を含むシステムオンチップ(SOC)とも呼ばれる。プロセッシングサブシステム310は、ユーザプログラムの実行を介して、ユーザ設計のソフトウェア部分を実装するようにプログラムされてもよい。プログラムは、コンフィギュレーションデータストリームの一部として指定されてもよく、またはオンチップ若しくはオフチップのデータストレージデバイスから取り出されてもよい。プロセッシングサブシステム310は、1つ以上のソフトウェアプログラムを実行するための様々な回路312,314,316、および318を含むことができる。回路312,314,316、および318は、例えば、1つ以上のプロセッサコア、浮動小数点ユニット(FPU)、割り込み処理ユニット、オンチップメモリ、メモリキャッシュ、および/またはキャッシュコヒーレントインターコネクトを含むことができる。
プログラマブルIC302のプログラマブルロジックサブシステム330は、ユーザ設計のハードウェア部分を実装するようにプログラムすることができる。例えば、プログラマブルロジックサブシステムは、コンフィギュレーションデータストリームに指定された一組の回路を実装するようにプログラムすることができるいくつかのプログラマブルロジック回路332を含むことができる。プログラマブルロジック回路332は、プログラマブルインターコネクト回路、プログラマブルロジック回路、およびコンフィギュレーションメモリセルを含む。プログラマブルロジックは、例えば、ファンクションジェネレータ、レジスタ、算術論理などを含むことができるプログラマブルエレメントを使用して、ユーザ設計のロジックを実装する。プログラマブルインターコネクト回路は、プログラマブルインターコネクトポイント(PIP)によって相互接続された様々な長さの多数のインターコネクトラインを含むことができる。
プログラマブルロジック回路332は、プログラマブルインターコネクト回路およびプログラマブルロジック回路がどのように構成されるかを定めるコンフィギュレーションメモリセルにコンフィギュレーションデータストリームをロードすることによってプログラムすることができる。次いで、個々のメモリセルの集合状態が、プログラマブルロジック回路332の機能を決定する。コンフィギュレーションデータは、メモリから(例えば、外部PROMから)読み出すことができ、または外部デバイスによってプログラマブルIC 302に書き込むことができる。いくつかの実施形態では、コンフィギュレーションデータは、プログラマブルロジックサブシステム330に含まれるコンフィギュレーションコントローラ334によってコンフィギュレーションメモリセルにロードされてもよい。いくつかの他の実施形態では、コンフィギュレーションデータは、プロセッシングサブシステム310によって実行される始動プロセスによってコンフィギュレーションメモリセルにロードされてもよい。
プログラマブルIC302は、プロセッシングサブシステム310を、プログラマブルロジックサブシステム330内に実装された回路と相互接続するための様々な回路を含むことができる。この例では、プログラマブルIC302は、プロセッシングサブシステム310およびプログラマブルロジックサブシステム330の様々なデータポート間でデータ信号をルーティングすることができるコアスイッチ326を含む。コアスイッチ326はまた、プログラマブルロジックサブシステム330またはプロセッシングサブシステム310のいずれかと、プログラマブルICの様々な他の回路(例えば、内部データバス)との間でデータ信号をルーティングすることもできる。代替的または追加的に、プロセッシングサブシステム310は、コアスイッチ326をバイパスしてプログラマブルロジックサブシステムに直接接続するためのインターフェースを含むことができる。そのようなインターフェースは、例えば、ARMによって公表されたAMBA AXIプロトコル仕様(AXI)を使用して実装することができる。
いくつかの実施形態では、プロセッシングサブシステム310およびプログラマブルロジックサブシステム330は、メモリコントローラ321を介してオンチップメモリ322またはオフチップメモリ(図示せず)のメモリロケーションを読み書きすることもできる。メモリコントローラ321は、限定しないが、16ビット、32ビット、ECC付き16ビットなどであれ、デュアルデータレート(DDR)2、DDR3、低電力(LP)DDR2タイプのメモリを含む1つ以上の異なるタイプのメモリ回路と通信するように実装することができる。メモリコントローラ321が通信することができる異なるメモリタイプのリストは、例示のみのために提供されており、限定または網羅的なものではない。図3に示すように、プログラマブルIC302は、サブシステム310および330によって使用される仮想メモリアドレスを、メモリコントローラ321が特定のメモリロケーションにアクセスするために使用する物理メモリアドレスに変換するためのメモリ管理ユニット320およびトランスレーションルックアサイドバッファ324を含むことができる。
プログラマブルICは、外部回路とのデータ通信のための入出力(I/O)サブシステム350を含むことができる。I/Oサブシステム350は、例えば、フラッシュメモリタイプI/Oデバイス、高性能I/Oデバイス、低性能インターフェース、デバッグI/Oデバイス、および/またはRAM I/Oデバイスを含む様々なタイプのI/Oデバイスまたはインターフェースを含むことができる。
I/Oサブシステム350は、360Aおよび360Bとして示す1つ以上のフラッシュメモリインターフェース360を含むことができる。例えば、フラッシュメモリインターフェース360のうちの1つ以上は、4ビット通信用に構成されたクワッドシリアル・ペリフェラル・インターフェース(QSPI)として実装することができる。フラッシュメモリインターフェース360のうちの1つ以上は、パラレル8ビットNOR/SRAMタイプのインターフェースとして実装することができる。フラッシュメモリインターフェース360のうちの1つ以上は、8ビットおよび/または16ビット通信用に構成されたNANDインターフェースとして実装することができる。記載された特定のインターフェースは、例示のために提供され、限定のためではないことを理解されたい。異なるビット幅を有する他のインターフェースを使用することができる。
I/Oサブシステム350は、フラッシュメモリインターフェース360より高い性能レベルを提供する1つ以上のインターフェース362を含むことができる。インターフェース362A〜362Cの各々は、DMAコントローラ364A〜364Cにそれぞれ接続することができる。例えば、インターフェース362のうちの1つ以上は、ユニバーサルシリアルバス(USB)タイプのインターフェースとして実施することができる。インターフェース362のうちの1つ以上は、ギガビットイーサネット(登録商標)タイプのインターフェースとして実装することができる。インターフェース362のうちの1つ以上は、セキュアデジタル(SD)タイプのインターフェースとして実装することができる。
I/Oサブシステム350はまた、インターフェース362よりも低い性能レベルを提供する、インターフェース366A〜366Dなどの1つ以上のインターフェース366を含むことができる。例えば、インターフェース366のうちの1つ以上は、汎用I/O(GPIO)タイプのインターフェースとして実施することができる。インターフェース366のうちの1つ以上は、汎用非同期送受信回路(UART)タイプのインターフェースとして実装することができる。インターフェース366のうちの1つ以上は、シリアル・ペリフェラル・インターフェース(SPI)バスタイプのインターフェースの形態で実装することができる。インターフェース366のうちの1つ以上は、コントローラエリアネットワーク(CAN)タイプのインターフェースおよび/またはICタイプのインターフェースの形態で実装することができる。
I/Oサブシステム350は、プロセッサJTAG(PJTAG)インターフェース368Aおよびトレースインターフェース368Bなどの1つ以上のデバッグインターフェース368を含むことができる。PJTAGインターフェース368Aは、プログラマブルIC302のための外部デバッグインターフェースを提供することができる。トレースインターフェース368Bは、プロセッシングサブシステム310またはプログラマブルロジックサブシステム330からデバッグ、例えば、トレース情報を受信するためのポートを提供することができる。
図示されているように、インターフェース360,362,366、および368の各々は、マルチプレクサ370に接続することができる。マルチプレクサ370は、プログラマブルIC302の外部ピン、例えばプログラマブルIC302が配置されるパッケージのボールなどに直接ルーティングまたは接続され得る複数の出力を提供する。例えば、プログラマブルIC302のI/Oピンは、インターフェース360,362,366、および368の間で共有することができる。ユーザは、インターフェース360〜368のどれを使用するか、したがって、マルチプレクサ370を介してプログラマブルIC302のI/Oピンに接続するか、選択するように、コンフィギュレーションデータストリームによって、マルチプレクサ370を構成することができる。I/Oサブシステム350はまた、インターフェース362−368をプログラマブルロジックサブシステムのプログラマブルロジック回路に接続するためのファブリックマルチプレクサI/O(FMIO)インターフェース(図示せず)を含むことができる。これに加えて、またはこれに代えて、プログラマブルロジックサブシステム330は、プログラマブルロジック内に1つ以上のI/O回路を実装するように構成することができる。いくつかの実施形態では、プログラマブルIC302は、電力および/または安全管理のための様々な回路を有するサブシステム340を含むこともできる。例えば、サブシステム340は、プログラマブルIC302の様々なサブシステムに電力を供給するために使用される1つ以上の電圧ドメインを監視および維持するように構成された電力管理ユニット346を含むことができる。いくつかの実施形態では、電力管理ユニット346は、使用中のサブシステムへの電力を停止することなく、アイドル時に、個々のサブシステムの電力を停止して、電力消費を低減することができる。
サブシステム340は、正しい動作を保証するためにサブシステムのステータスを監視する安全回路を含むこともできる。例えば、サブシステム340は、プログラマブルICの様々なサブシステムまたは回路に対して安全機能を実行するように構成された1つ以上のハードワイヤード安全回路341を含むことができる。サブシステム340はまた、プログラマブルICの様々なサブシステムまたは回路に対して様々なソフトウェアベースの安全機能を実行するように構成された1つ以上のリアルタイムプロセッサ342を含むことができる。
サブシステム340は、プログラマブルICの様々な動作パラメータ(例えば、電圧、温度、クロックおよび/またはデータ/制御信号)を監視し、監視された動作パラメータのステータスを示すデータをステータスレジスタ344に保存するように構成された1つ以上のセンサまたは検出器349を含み得る。ステータスレジスタは、ハードワイヤード安全回路341、リアルタイムプロセッサ342、または電力管理ユニット346によってアクセスされてもよい。
安全機能は、様々なサブシステムのステータスを監視し、1つ以上のサブシステムまたは回路におけるエラーの検出、防止、および/または緩和を容易にするための様々なアクションを実行することができる。いくつかの実施形態では、安全機能は、エラーを示す値を有するステータスレジスタに応答してアクションを行うことができる。例えば、安全機能は、エラーの検出に応答してアラートを生成することができる。別の例として、安全機能は、個々のサブシステムをリセットして、サブシステムを正しい動作に修復しようと試みることができる。
保護すべきサブシステムまたは回路および実行すべき安全機能は、メモリ343に格納された安全ポリシーで指定することができる。安全ポリシーは、プログラマブルIC302の異なるサブシステムまたは回路に対して異なるレベルの保護を提供することができる。例えば、高優先度の回路/機能(例えば、プログラマブルICのユーザ)は、専用ハードワイヤード安全回路341またはロックステップで動作するリアルタイム安全プロセッサ342のうちの2つによって実行される安全機能によって保護することができる。低優先度回路(例えば、周辺装置)は、低優先度回路の機能をテストするために定期的に実行されるソフトウェアベースのテストによって保護されてもよい。
安全ポリシーは、不揮発性メモリにハードコードされてもよく、または起動時にメモリに格納されてもよい。いくつかの実施形態では、安全ポリシーは、ユーザ構成可能であり、例えば、コンフィギュレーションデータのセットのサブセットに提供されてもよい。
サブシステム340は、様々なサブシステムを相互接続するために使用され得るインターコネクトスイッチネットワーク348を含む。例えば、インターコネクトスイッチネットワーク348は、様々なサブシステム310,330,及び340をI/Oサブシステム350の様々なインターフェースに接続するように構成することができる。いくつかの応用では、インターコネクトスイッチネットワーク348はまた、監視されるべきサブシステムからリアルタイムプロセッサ342を分離するように、ハードワイヤード安全回路341またはリアルタイム安全プロセッサ342の1つ以上の安全機能によって、制御されてもよい。そのような分離は、リアルタイムプロセッサ342が他のサブシステムで発生するエラーの影響を受けないことを保証するために、特定のアプリケーション規格(例えば、IEC−61508 SIL3またはISO−26262規格)によって要求されることがある。いくつかの応用では、インターコネクトスイッチネットワーク348は、ランダム障害に対して保護を提供するために、(例えば、ECCまたはパリティによって)保護されてもよい。いくつかの応用では、インターコネクトスイッチネットワーク348は、インターコネクトスイッチネットワーク348をテストするために定期的に実行されるソフトウェアベースのテストによって保護されてもよい。
いくつかの実施形態では、いくつかの安全機能は、ハードワイヤード安全回路341の冗長ハードワイヤード回路によって実行されてもよい。例えば、電力管理ユニット346は、ハードワイヤード安全回路341の三重モジュール冗長回路によって実行される安全機能によって保護されてもよい。例えば、セーフティサブシステムのハードワイヤード回路は、プログラマブルICの電力管理ユニットを監視するように構成された三重モジュール冗長回路を含むことができる。別の例として、プログラマブルICは、(例えば、プロセッシングサブシステム310のリセット中の)プログラマブルロジック回路の意図しない再構成を防止するように構成されたコンフィギュレーションセキュリティユニットを含むことができる。コンフィギュレーションセキュリティユニットは、同様に三重モジュール冗長回路によって保護することができる。
図4は、1つ以上の実施形態におけるセーフティシステムに含まれ得る、ユーザ構成可能なエラー処理のための例示的なシステムを示す。システムは、各々が一組のステータス信号410のうちのそれぞれのステータス信号を受信するように構成された一組のエラーステータスレジスタ420を含む。エラーステータスレジスタ420は、エラーリセット信号426によってエラーがクリアされるまで、ステータス信号410によって示されるエラーを記憶し維持するように構成される。例えば、いくつかの実施形態では、ステータス信号は各々、エラーが存在しない場合には論理0値を示し、エラーが存在する場合には論理1値を示してもよい。エラーリセット信号426によってリセットされると、全てのエラーステータスレジスタの値は、論理0に設定され、エラーが存在しないことを示し得る。エラーを示すステータス信号410の1つに応答して、エラーステータスレジスタ420のうちの対応するレジスタの値が、論理1に設定される。論理1値は、ステータス信号が後に論理0値に戻っても、レジスタによって維持される。エラーステータスレジスタ420にエラーを示す値を維持することによって、エラーは、例えば、エラー処理回路によって、より容易に処理され得る。例えば、エラーステータスレジスタ420にエラーが維持されると、エラー処理回路は、間欠性のエラーの発生を逃すことなく、エラーステータスレジスタ420の値をより少ない頻度で取り出す/受信することができる。
エラーステータスレジスタ420の値は、システムに含まれ得る様々な回路によるエラー処理および/または監視のために並列に出力される。例えば、エラーステータスレジスタ420の値は、パラレルエラー信号462としてプログラマブルロジックサブシステムへ、その中に実装されたユーザ定義回路による処理のために提供される。ユーザは、カスタマイズされたエラー処理回路を実装するために、コンフィギュレーションデータのセットによって、プログラマブルロジックをプログラムすることができる。エラー処理回路は、エラーステータスレジスタ420によって示される様々なエラーの組合せに応答して、多数の異なるアクションを実行するようにユーザによって構成されてもよい。例えば、ユーザによって定義されたエラー処理回路は、リセット、シャットダウン、および/またはアラートなどの1つ以上のシステム全体のアクションをトリガすることができる。代替的または追加的に、ユーザによって定義されたエラー処理回路は、プログラマブルロジックに実装されたユーザ定義回路に1つ以上のアクションを実行させることができる。例えば、エラーに応答して、エラー処理回路は、回路が正しく動作しているかどうかを判定するために、プログラマブルロジックに実装された回路をトリガして、ビルトイン・セルフテストを実行することができる。同様に、いくつかの実施形態では、パラレルエラー信号462は、システムのプロセッサ上で実行されるソフトウェアベースのエラー処理ルーチンに提供されてもよい。
代替的または追加的に、エラーステータスレジスタ420の値は、電力管理ユニットへのパラレル信号460として提供されてもよい。電力管理ユニットは、例えば、個々のサブシステムまたはシステム全体をパワーダウンまたはリセットし、および/または様々なパワードメインの電圧を調整するように、構成することができる。いくつかの実施形態では、電力管理ユニットのファームウェアは、エラーステータスレジスタによって示される様々なエラーの組み合わせに応答してユーザ定義のアクションを実行するように、ユーザによってプログラムされてもよい。
いくつかの実施形態では、システムは、1つ以上のユーザ定義のハードウェアベースの安全機能を実行するために使用され得るマスキング回路430を含むことができる。マスキング回路430は、例えば、エラーステータスレジスタ420によって示されるエラーをフィルタリングするために使用され得る。例えば、この回路は、エラーステータスレジスタ420によって示されたエラーをユーザ定義のマスクでフィルタリングして、関心のあるマスクされた信号のセットを生成することができる。ユーザ定義マスクは、例えば、プログラマブルロジックサブシステムの構成に使用されるコンフィギュレーションデータのセット内で指定することができる。ユーザ定義のマスクは、特定のアクションをトリガするために、個別にまたは一緒に使用され得るエラーのセットを分離することができる。例えば、マスクされたエラー信号は、リセット回路などのプログラマブルIC内の1つ以上のハードワイヤード回路によって使用される制御信号を設定するために使用されてもよい。例えば、マスクされた信号のいずれかがエラーを示す場合、論理ORゲートを用いて、アクションをトリガすることができる。マスクされた信号のすべてがエラーを示す場合にのみ、論理ANDゲートを用いて、アクションをトリガすることができる。より複雑なトリガを生成するために、様々な論理ゲートの組合せを使用することができる。
図4に示すように、マスキング回路430は、マスクされたエラー信号の第1のセット435を生成する第1のユーザ構成可能なマスク432を含むことができる。論理ORゲート436は、マスクされたエラー信号435のいずれかがエラーを示す場合、またはSWエラーステータス信号434がエラーを示す場合、エラーを示す値にエラー信号438を設定する。別の例として、マスキング回路430は、システムのパワーオンリセットをトリガするエラー信号のセット443を識別する第2のユーザ構成可能なマスク440を含むことができる。論理ORゲート444は、マスクされた信号443のいずれかがエラーを示す場合、またはSWリセット要求442が論理1に設定されている場合、POR要求信号446を論理1に設定することによって、システムのパワーオンリセット(POR)をトリガし得る。さらに別の例として、マスキング回路430は、システムのソフトウェアリセットをトリガするエラー信号のセット452を識別するユーザ構成可能なマスク450を含むことができる。論理ORゲート454は、マスクされた信号452のいずれかがエラーを示している場合、またはSWリセット要求442が論理1に設定されている場合、SWリセット要求信号456を論理1に設定することによって、ソフトウェアリセットをトリガする。
いくつかの実施形態では、エラーステータスレジスタは、エラーステータスレジスタ420のそれぞれの値を示すシリアルステータス信号424を生成するために全てのレジスタの値をシリアルにシフトアウトするように構成されたシフト回路422を含むことができる。シリアルステータス信号424は、システムから出力されてもよく、エラー処理のために様々な回路に供給されてもよい。例えば、いくつかの実施形態では、シリアルステータス信号424は、パラレル信号462の代わりにプログラマブルロジックのエラー処理回路に供給されてもよい。
この方法および回路は、様々なシステムおよびアプリケーションに適用可能であると考えられる。他の態様および特徴は、明細書の考察から当業者には明らかであろう。例えば、態様および特徴は、場合によっては個々の図に記述されることがあるが、組合せが明示的に示されていない場合でも、組合せとして明示的に記述されている場合でも、ある図の特徴を他の図の特徴と組み合わせることができる、ということが理解されるであろう。本明細書および図面は、単なる例示としてみなされ、本発明の真の範囲は、添付の特許請求の範囲によって示されることが意図されている。

Claims (15)

  1. プログラマブル集積回路(IC)であって、
    コンフィギュレーションデータの第1のサブセットに応答して構成される複数のプログラマブルロジック回路を含むプログラマブルロジックサブシステムと、
    コンフィギュレーションデータの第2のサブセットに応答してソフトウェアプログラムを実行するように構成された1つ以上の処理回路を含むプロセッシングサブシステムと、
    前記プログラマブルICの回路におけるエラーを検出及び/又は緩和する安全機能を実行するように構成されたセーフティサブシステムと
    を備え、前記セーフティサブシステムは、
    前記プログラマブルICの回路の第1のサブセットに対してハードウェアベースの安全機能を実行するように構成された一組のハードワイヤード回路と、
    前記プログラマブルICの回路の第2のサブセットに対してソフトウェアベースの安全機能を実行するように構成された処理回路と
    を含む、プログラマブルIC。
  2. 前記プログラマブルICは、前記コンフィギュレーションデータの受信に応答して前記コンフィギュレーションデータの第3のサブセットに含まれる安全ポリシーを格納するように構成され、
    前記安全ポリシーは、前記プログラマブルICの回路の優先度を識別し、回路の前記第1のサブセットは、より高い優先度の回路として識別され、回路の前記第2のサブセットは、より低い優先度の回路として識別される、請求項1に記載のプログラマブルIC。
  3. 前記コンフィギュレーションデータの前記第3のサブセットは、前記プログラマブルICの回路の各々に対して実行されるべき安全機能を指定する、請求項2に記載のプログラマブルIC。
  4. 前記処理回路は、前記ソフトウェアベースの安全機能の1つをロックステップで実行するように構成された少なくとも2つのプロセッサを含む、請求項1から3のいずれか一項に記載のプログラマブルIC。
  5. 前記一組のハードワイヤード回路によって実行される前記ハードウェアベースの安全機能の少なくとも1つは、前記2つのプロセッサがロックステップで正しく動作しているか否かを決定するように構成される、請求項1から4のいずれか一項に記載のプログラマブルIC。
  6. 前記プログラマブルICの回路は、メモリ回路を含み、
    前記メモリ回路に対して前記セーフティサブシステムによって実行される安全機能は、誤り訂正符号を用いて、前記メモリ回路に格納されたデータの完全性を監視する、請求項1から5のいずれか一項に記載のプログラマブルIC。
  7. 前記プログラマブルロジックサブシステム、前記プロセッシングサブシステム、及び前記セーフティサブシステムは、別々のパワードメインによって電力供給される、請求項1から6のいずれか一項に記載のプログラマブルIC。
  8. 前記プログラマブルICは、前記プログラマブルロジックサブシステム、前記プロセッシングサブシステム、及び前記セーフティサブシステムに電力供給するために使用される前記パワードメインにおける電力を調整するように構成された電力管理ユニットを含み、
    前記電力管理ユニットに対して前記セーフティサブシステムによって実行される安全機能は、前記一組のハードワイヤード回路に含まれる三重モジュール冗長エラー検出回路を使用して、前記電力管理ユニットの動作をエラーについて監視する、請求項7に記載のプログラマブルIC。
  9. 前記セーフティサブシステムによって実行される前記安全機能の少なくとも1つは、前記プログラマブルICの前記プログラマブルロジックサブシステム又は前記プロセッシングサブシステムのうちの1つを、前記サブシステムにおけるエラーを検出することに応答して、リセットするように構成される、請求項7に記載のプログラマブルIC。
  10. 前記プログラマブルICの1つの回路に対して前記セーフティサブシステムによって実行される前記安全機能の少なくとも1つは、前記1つの回路によって使用される通信データ経路を、前記プログラマブルICの他の回路によって使用される通信データ経路から分離する、請求項1から9のいずれか一項に記載のプログラマブルIC。
  11. プログラマブル集積回路(IC)のプログラマブルロジックサブシステムでユーザ設計のハードウェア部分を動作させることと、
    前記プログラマブルICのプロセッシングサブシステムで前記ユーザ設計のソフトウェア部分を実行することと、
    前記プログラマブルICのセーフティサブシステムの一組のプロセッサを使用して、ソフトウェアベースの安全機能を実行することと、
    前記セーフティサブシステムの一組のハードワイヤード回路を使用して、ハードウェアベースの安全機能を実行することと
    を含み、前記ソフトウェアベース及びハードウェアベースの安全機能が、前記プログラマブルICの回路におけるエラーを検出及び/又は緩和するように構成される、方法。
  12. 前記ユーザ設計の前記ハードウェア部分を形成するように、コンフィギュレーションデータのセットで前記プログラマブルロジックサブシステムを構成することと、
    前記ハードウェアベース又はソフトウェアベースの安全機能の少なくとも1つを示す、前記コンフィギュレーションデータのセットのサブセットに含まれる安全ポリシーを、前記セーフティサブシステムのメモリに格納することとを更に含み、
    前記安全ポリシーは、前記プログラマブルICの回路を高優先度又は低優先度として分類し、
    前記ソフトウェアベースの安全機能は、低優先度として分類される前記プログラマブルICの回路におけるエラーを検出及び/又は緩和し、
    前記ハードウェアベースの安全機能は、高優先度として分類される前記プログラマブルICの回路におけるエラーを検出及び/又は緩和する、請求項11に記載の方法。
  13. 前記ソフトウェアベースの安全機能の少なくとも1つは、ロックステップで動作する前記一組のプロセッサの少なくとも2つのプロセッサを使用して実行され、
    前記ハードウェアベースの安全機能の少なくとも1つは、前記少なくとも2つのプロセッサがロックステップで正しく動作しているか否かを決定するように構成される、請求項11又は12に記載の方法。
  14. 前記プログラマブルICの回路は、メモリ回路を含み、
    前記ソフトウェアベース又はハードウェアベースの安全機能の少なくとも1つを実行することは、誤り訂正符号を使用して、前記メモリ回路に格納されたデータの完全性を監視することを含む、請求項11から13のいずれか一項に記載の方法。
  15. 別々のパワードメインを使用して、前記プログラマブルロジックサブシステム、前記プロセッシングサブシステム、及び前記セーフティサブシステムに電力供給することと、
    前記プログラマブルICの電力管理ユニットを使用して、前記別々のパワードメインにおける電力を調整することとを更に含み、
    前記ハードウェアベースの安全機能を実行することは、前記一組のハードワイヤード回路に含まれる三重モジュール冗長エラー検出回路を使用して、前記電力管理ユニットの動作をエラーについて監視することを含み、
    前記ソフトウェアベース又はハードウェアベースの安全機能の少なくとも1つは、前記プログラマブルICの前記プログラマブルロジックサブシステム又はプロセッシングサブシステムのうちの1つを、前記サブシステムにおけるエラーを検出することに応答して、リセットするように構成される、請求項11から14のいずれか一項に記載の方法。
JP2017515723A 2014-09-24 2015-09-04 セーフティサブシステムを有するプログラマブルic Active JP6647289B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/495,024 US9130559B1 (en) 2014-09-24 2014-09-24 Programmable IC with safety sub-system
US14/495,024 2014-09-24
PCT/US2015/048580 WO2016048627A1 (en) 2014-09-24 2015-09-04 Programmable ic with safety sub-system

Publications (2)

Publication Number Publication Date
JP2017535125A true JP2017535125A (ja) 2017-11-24
JP6647289B2 JP6647289B2 (ja) 2020-02-14

Family

ID=54012683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017515723A Active JP6647289B2 (ja) 2014-09-24 2015-09-04 セーフティサブシステムを有するプログラマブルic

Country Status (6)

Country Link
US (1) US9130559B1 (ja)
EP (1) EP3198725B1 (ja)
JP (1) JP6647289B2 (ja)
KR (1) KR102386719B1 (ja)
CN (1) CN106716843B (ja)
WO (1) WO2016048627A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10594321B1 (en) 2018-09-18 2020-03-17 Kabushiki Kaisha Toshiba Semiconductor integrated circuit and reconfigurable semiconductor system
JP2022512879A (ja) * 2018-11-05 2022-02-07 ザイリンクス インコーポレイテッド ネットワークインターフェースデバイス

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9929556B2 (en) * 2014-09-30 2018-03-27 Stmicroelectronics S.R.L. Fail-safe device corresponding apparatus and vehicle
US9772897B1 (en) 2014-12-19 2017-09-26 Xilinx, Inc. Methods and systems for improving safety of processor system
US10482054B1 (en) 2016-09-09 2019-11-19 Xilinx, Inc. AXI-CAPI adapter
US10657067B1 (en) 2016-09-12 2020-05-19 Xilinx, Inc. Memory management unit with prefetch
US10551902B2 (en) * 2016-11-10 2020-02-04 Apple Inc. Methods and apparatus for providing access to peripheral sub-system registers
US10657292B2 (en) * 2017-12-18 2020-05-19 Xilinx, Inc. Security for programmable devices in a data center
US10719452B2 (en) * 2018-06-22 2020-07-21 Xilinx, Inc. Hardware-based virtual-to-physical address translation for programmable logic masters in a system on chip
US11281810B1 (en) 2018-12-11 2022-03-22 Xilinx, Inc. Memory access protection in programmable logic device
US10673439B1 (en) * 2019-03-27 2020-06-02 Xilinx, Inc. Adaptive integrated programmable device platform

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309700A (ja) * 2005-03-31 2006-11-09 Fujitsu Ltd 動的代替機能を持つ論理集積回路、これを用いた情報処理装置及び論理集積回路の動的代替方法
JP2009516277A (ja) * 2005-11-18 2009-04-16 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 少なくとも2つのレジスタ付き処理ユニットを有するシステムにおいてエラーを除去する装置および方法
WO2009107309A1 (ja) * 2008-02-29 2009-09-03 株式会社ルネサステクノロジ 半導体装置
US20110191062A1 (en) * 2007-11-14 2011-08-04 Endress + Hauser Gmbh + Co. Kg Field device for determining or monitoring a process variable in process automation
JP2011188115A (ja) * 2010-03-05 2011-09-22 Toshiba Corp 半導体集積回路
JP2011216020A (ja) * 2010-04-01 2011-10-27 Mitsubishi Electric Corp 情報処理装置および回路再構成装置
US20120004860A1 (en) * 2010-07-05 2012-01-05 Endress + Hauser Gmbh + Co. Kg Field device for determining or monitoring a physical or chemical, process variable
JP2013073289A (ja) * 2011-09-27 2013-04-22 Nec Corp 多重化システム、データ通信カード、状態異常検出方法、及びプログラム
JP2014515843A (ja) * 2011-02-28 2014-07-03 ザイリンクス インコーポレイテッド プログラマブル回路と埋込型プロセッサシステムとを伴う集積回路

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5365922A (en) * 1991-03-19 1994-11-22 Brigham And Women's Hospital, Inc. Closed-loop non-invasive oxygen saturation control system
US6647301B1 (en) * 1999-04-22 2003-11-11 Dow Global Technologies Inc. Process control system with integrated safety control system
FR2860313B1 (fr) * 2003-09-30 2005-11-04 Commissariat Energie Atomique Composant a architecture reconfigurable dynamiquement
SE0402098D0 (sv) * 2004-08-30 2004-08-30 Abb Ab A control system
US8117512B2 (en) * 2008-02-06 2012-02-14 Westinghouse Electric Company Llc Failure detection and mitigation in logic circuits
WO2009098312A1 (en) * 2008-02-06 2009-08-13 Capis Sprl Method and device for the determination of murmur frequency band
WO2009155993A1 (en) * 2008-06-27 2009-12-30 Abb Research Ltd. A safety system for a machine
DE102008059841A1 (de) * 2008-12-01 2010-06-02 Robert Bosch Gmbh Verfahren zum Programmieren einer sichheitsgerichteten Speicherprogrammierbaren Steuerung und Vermittler-Funktionsbaustein

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309700A (ja) * 2005-03-31 2006-11-09 Fujitsu Ltd 動的代替機能を持つ論理集積回路、これを用いた情報処理装置及び論理集積回路の動的代替方法
JP2009516277A (ja) * 2005-11-18 2009-04-16 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 少なくとも2つのレジスタ付き処理ユニットを有するシステムにおいてエラーを除去する装置および方法
US20110191062A1 (en) * 2007-11-14 2011-08-04 Endress + Hauser Gmbh + Co. Kg Field device for determining or monitoring a process variable in process automation
WO2009107309A1 (ja) * 2008-02-29 2009-09-03 株式会社ルネサステクノロジ 半導体装置
JP2011188115A (ja) * 2010-03-05 2011-09-22 Toshiba Corp 半導体集積回路
JP2011216020A (ja) * 2010-04-01 2011-10-27 Mitsubishi Electric Corp 情報処理装置および回路再構成装置
US20120004860A1 (en) * 2010-07-05 2012-01-05 Endress + Hauser Gmbh + Co. Kg Field device for determining or monitoring a physical or chemical, process variable
JP2014515843A (ja) * 2011-02-28 2014-07-03 ザイリンクス インコーポレイテッド プログラマブル回路と埋込型プロセッサシステムとを伴う集積回路
JP2013073289A (ja) * 2011-09-27 2013-04-22 Nec Corp 多重化システム、データ通信カード、状態異常検出方法、及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10594321B1 (en) 2018-09-18 2020-03-17 Kabushiki Kaisha Toshiba Semiconductor integrated circuit and reconfigurable semiconductor system
JP2022512879A (ja) * 2018-11-05 2022-02-07 ザイリンクス インコーポレイテッド ネットワークインターフェースデバイス

Also Published As

Publication number Publication date
JP6647289B2 (ja) 2020-02-14
KR102386719B1 (ko) 2022-04-13
WO2016048627A1 (en) 2016-03-31
CN106716843A (zh) 2017-05-24
KR20170060028A (ko) 2017-05-31
EP3198725A1 (en) 2017-08-02
EP3198725B1 (en) 2018-12-05
CN106716843B (zh) 2018-08-17
US9130559B1 (en) 2015-09-08

Similar Documents

Publication Publication Date Title
JP6647289B2 (ja) セーフティサブシステムを有するプログラマブルic
US9632869B1 (en) Error correction for interconnect circuits
US8843785B2 (en) Collecting debug data in a secure chip implementation
US10078565B1 (en) Error recovery for redundant processing circuits
US9652252B1 (en) System and method for power based selection of boot images
US9529686B1 (en) Error protection for bus interconnect circuits
US10754760B1 (en) Detection of runtime failures in a system on chip using debug circuitry
US10037301B2 (en) Circuits and methods for inter-processor communication
KR102384904B1 (ko) 집적 회로들을 위한 전력 관리 시스템
US9130566B1 (en) Programmable IC with power fault tolerance
US9495239B1 (en) User-configurable error handling
Mariani et al. A flexible microcontroller architecture for fail-safe and fail-operational systems
US10042692B1 (en) Circuit arrangement with transaction timeout detection
KR102386662B1 (ko) 서브시스템 전력 관리 제어
US10275259B1 (en) Multi-stage booting of integrated circuits
Newgard et al. Using multiple processors in a single reconfigurable fabric for high-assurance applications
Yiu Design of SOC for high reliability systems with embedded processors
US9734032B1 (en) Diagnostic coverage of registers by software
CN109872150B (zh) 具有时钟同步操作的数据处理系统
US9772897B1 (en) Methods and systems for improving safety of processor system

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20170516

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180904

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180904

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20181120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191009

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200114

R150 Certificate of patent or registration of utility model

Ref document number: 6647289

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