(57)【特許請求の範囲】
【請求項１】
プログラマブル集積回路（ＩＣ）であって、
コンフィギュレーションデータの第１のサブセットに応答して構成される複数のプログラマブルロジック回路を含むプログラマブルロジックサブシステムと、
コンフィギュレーションデータの第２のサブセットに含まれるソフトウェア部分のプログラムコードを実行するように構成された１つ以上の第１の処理回路を含むプロセッシングサブシステムと、
前記プログラマブルＩＣの回路におけるエラーを示す値を有する一組のステータスレジスタに応答して１つ以上のアクションを実行する安全機能を実行するように構成されたセーフティサブシステムと
を備え、前記セーフティサブシステムは、
前記プログラマブルＩＣの回路の第１のサブセットに対してハードウェアベースの安全機能を実行するように構成された一組のハードワイヤード回路と、
前記プログラマブルＩＣの回路の第２のサブセットに対してソフトウェアベースの安全機能を実行するように構成された第２の処理回路とを含み、
前記プログラマブルＩＣは、前記コンフィギュレーションデータの受信に応答して前記コンフィギュレーションデータの第３のサブセットに含まれる安全ポリシーを格納するように構成され、
前記安全ポリシーは、前記プログラマブルＩＣの回路の優先度を識別し、回路の前記第１のサブセットは、より高い優先度の回路として識別され、回路の前記第２のサブセットは、より低い優先度の回路として識別される、
プログラマブルＩＣ。
【請求項２】
前記コンフィギュレーションデータの前記第３のサブセットは、前記プログラマブルＩＣの回路の各々に対して実行されるべき安全機能を指定する、請求項１に記載のプログラマブルＩＣ。
【請求項３】
前記第２の処理回路は、前記ソフトウェアベースの安全機能の１つをロックステップで実行するように構成された少なくとも２つのプロセッサを含む、請求項１又は２に記載のプログラマブルＩＣ。
【請求項４】
前記一組のハードワイヤード回路によって実行される前記ハードウェアベースの安全機能の少なくとも１つは、２つのプロセッサがロックステップで正しく動作しているか否かを決定するように構成される、請求項１から３のいずれか一項に記載のプログラマブルＩＣ。
【請求項５】
前記プログラマブルＩＣの回路は、メモリ回路を含み、
前記メモリ回路に対して前記セーフティサブシステムによって実行される安全機能は、誤り訂正符号を用いて、前記メモリ回路に格納されたデータの完全性を監視する、請求項１から４のいずれか一項に記載のプログラマブルＩＣ。
【請求項６】
前記プログラマブルロジックサブシステム、前記プロセッシングサブシステム、及び前記セーフティサブシステムは、別々のパワードメインによって電力供給される、請求項１から５のいずれか一項に記載のプログラマブルＩＣ。
【請求項７】
前記プログラマブルＩＣは、前記プログラマブルロジックサブシステム、前記プロセッシングサブシステム、及び前記セーフティサブシステムに電力供給するために使用される前記パワードメインにおける電力を調整するように構成された電力管理ユニットを含み、
前記電力管理ユニットに対して前記セーフティサブシステムによって実行される安全機能が、前記一組のハードワイヤード回路に含まれる三重モジュール冗長エラー検出回路を使用して、前記電力管理ユニットの動作をエラーについて監視する、請求項６に記載のプログラマブルＩＣ。
【請求項８】
前記セーフティサブシステムによって実行される前記安全機能の少なくとも１つは、前記プログラマブルＩＣの前記プログラマブルロジックサブシステム又は前記プロセッシングサブシステムのうちの１つを、前記サブシステムにおけるエラーを検出することに応答して、リセットするように構成される、請求項６に記載のプログラマブルＩＣ。
【請求項９】
前記プログラマブルＩＣの１つの回路に対して前記セーフティサブシステムによって実行される前記安全機能の少なくとも１つは、前記１つの回路によって使用される通信データ経路を、前記プログラマブルＩＣの他の回路によって使用される通信データ経路から分離する、請求項１から８のいずれか一項に記載のプログラマブルＩＣ。
【請求項１０】
プログラマブル集積回路（ＩＣ）のプログラマブルロジックサブシステムでユーザ設計のハードウェア部分を動作させることと、
前記プログラマブルＩＣのプロセッシングサブシステムの１つ以上の第１のプロセッサで前記ユーザ設計のソフトウェア部分を実行することと、
前記プログラマブルＩＣのセーフティサブシステムの一組の第２のプロセッサを使用して、ソフトウェアベースの安全機能を実行することと、
前記セーフティサブシステムの一組のハードワイヤード回路を使用して、ハードウェアベースの安全機能を実行することであって、前記ソフトウェアベース及びハードウェアベースの安全機能が、前記プログラマブルＩＣの回路におけるエラーを示す値を有する一組のステータスレジスタに応答して１つ以上のアクションを実行するように構成される、実行することと、
前記ユーザ設計の前記ハードウェア部分を形成するように、コンフィギュレーションデータのセットで前記プログラマブルロジックサブシステムを構成することと、
前記ハードウェアベース又はソフトウェアベースの安全機能の少なくとも１つを示す、前記コンフィギュレーションデータのセットのサブセットに含まれる安全ポリシーを、前記セーフティサブシステムのメモリに格納することと
を含む方法であって、
前記安全ポリシーは、前記プログラマブルＩＣの回路を高優先度又は低優先度として分類し、
前記ソフトウェアベースの安全機能は、低優先度として分類される前記プログラマブルＩＣの回路に対して実行され、
前記ハードウェアベースの安全機能は、高優先度として分類される前記プログラマブルＩＣの回路に対して実行される、方法。
【請求項１１】
前記ソフトウェアベースの安全機能の少なくとも１つは、ロックステップで動作する前記一組の第２のプロセッサのうちの少なくとも２つのプロセッサを使用して実行され、
前記ハードウェアベースの安全機能の少なくとも１つは、前記少なくとも２つのプロセッサがロックステップで正しく動作しているか否かを決定するように構成される、請求項１０に記載の方法。
【請求項１２】
前記プログラマブルＩＣの回路は、メモリ回路を含み、
前記ソフトウェアベース又はハードウェアベースの安全機能の少なくとも１つを実行することは、誤り訂正符号を使用して、前記メモリ回路に格納されたデータの完全性を監視することを含む、請求項１０又は１１に記載の方法。
【請求項１３】
別々のパワードメインを使用して、前記プログラマブルロジックサブシステム、前記プロセッシングサブシステム、及び前記セーフティサブシステムに電力供給することと、
前記プログラマブルＩＣの電力管理ユニットを使用して、前記別々のパワードメインにおける電力を調整することとを更に含み、
前記ハードウェアベースの安全機能を実行することは、前記一組のハードワイヤード回路に含まれる三重モジュール冗長エラー検出回路を使用して、前記電力管理ユニットの動作をエラーについて監視することを含み、
前記ソフトウェアベース又はハードウェアベースの安全機能の少なくとも１つは、前記プログラマブルＩＣの前記プログラマブルロジックサブシステム又は前記プロセッシングサブシステムのうちの１つを、前記サブシステムにおけるエラーを検出することに応答して、リセットするように構成される、請求項１０から１２のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、セーフティクリティカルな用途のための回路および方法に関する。
【背景技術】
【０００２】
プログラマブル集積回路（ＩＣ）は、特定の論理機能を実行するようにプログラムすることができるデバイスである。１つのタイプのプログラマブルＩＣであるフィールドプログラマブルゲートアレイ（ＦＰＧＡ）は、通常、プログラマブルタイルのアレイを含む。これらのプログラマブルタイルは、例えば、入出力ブロック（ＩＯＢ）、構成可能論理ブロック（ＣＬＢ）、専用ランダムアクセスメモリブロック（ＢＲＡＭ）、乗算器、デジタル信号処理ブロック（ＤＳＰ）、プロセッサ、クロックマネージャ、ディレイロックループ（ＤＬＬ）、ペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）およびイーサネット（登録商標）などのバスまたはネットワークインターフェースを含むことができる、様々なタイプの論理ブロックを含む。
【０００３】
各プログラマブルタイルは、通常、プログラマブルインターコネクトとプログラマブルロジックの両方を含む。プログラマブルインターコネクトは、通常、プログラマブルインターコネクトポイント（ＰＩＰ）によって相互接続された様々な長さの多数のインターコネクトラインを含む。プログラマブルロジックは、例えば、ファンクションジェネレータ、レジスタ、算術論理などを含むことができるプログラマブルエレメントを使用してユーザ設計のロジックを実装する。
【０００４】
プログラマブルインターコネクトおよびプログラマブルロジックは、通常、プログラマブルエレメントがどのように構成されるかを定義するコンフィギュレーションデータのストリームを内部コンフィギュレーションメモリセルにロードすることによって、プログラムされる。コンフィギュレーションデータは、メモリから（例えば、外部ＰＲＯＭから）読み出すことができ、または外部デバイスによってＦＰＧＡに書き込むことができる。その後、個々のメモリセルの集合状態が、ＦＰＧＡの機能を決定する。
【０００５】
いくつかのプログラマブルＩＣには、プログラムコードを実行できるエンベデッドプロセッサが含まれる。プロセッサは、ＩＣの「プログラマブル回路」とも総称されるプログラマブルロジック回路およびプログラマブルインターコネクト回路を含む同じダイの一部として製造することができる。プロセッサ内でのプログラムコードの実行は、ＩＣ上で利用可能なプログラマブル回路を「プログラムすること」または「構成すること」と区別できる、ということを理解されたい。ＩＣのプログラマブル回路をプログラムまたは構成する行為は、プログラマブル回路内にコンフィギュレーションデータによって特定される異なる物理回路の実装をもたらす。
【発明の概要】
【０００６】
プログラマブルロジックサブシステム、プロセッシングサブシステム、およびセーフティサブシステムを含むプログラマブルＩＣが、開示される。プログラマブルロジックサブシステムは、コンフィギュレーションデータの第１のサブセットに応答して構成された複数のプログラマブルロジック回路を含む。プロセッシングサブシステムは、コンフィギュレーションデータの第２のサブセットに応答してソフトウェアプログラムを実行するように構成された１つ以上の処理回路を含む。セーフティサブシステムは、プログラマブルＩＣの回路におけるエラーを検出および／または緩和する安全機能を実行するように構成される。セーフティサブシステムは、プログラマブルＩＣの回路の第１のサブセットに対してハードウェアベースの安全機能を実行するように構成された一組のハードワイヤード回路を含む。セーフティサブシステムはまた、プログラマブルＩＣの回路の第２のサブセットに対してソフトウェアベースの安全機能を実行するように構成された処理回路を含む。
【０００７】
任意選択で、プログラマブルＩＣは、コンフィギュレーションデータの受信に応答してコンフィギュレーションデータの第３のサブセットに含まれる安全ポリシーを格納するように構成されてもよく、安全ポリシーは、プログラマブルＩＣの回路の優先度を識別してもよく、回路の第１のサブセットは、より高い優先度の回路として識別され、回路の第２のサブセットは、より低い優先度の回路として識別される。
【０００８】
任意選択で、コンフィギュレーションデータの第３のサブセットは、プログラマブルＩＣの各回路に対して実行される安全機能を指定する。
【０００９】
任意選択で、処理回路は、ロックステップでソフトウェアベースの安全機能の１つを実行するように構成された少なくとも２つのプロセッサを含む。
【００１０】
任意選択で、一組のハードワイヤード回路によって実行されるハードウェアベースの安全機能の少なくとも１つは、この２つのプロセッサがロックステップで正しく動作しているか否かを決定するように構成することができる。
【００１１】
任意選択で、プログラマブルＩＣの回路はメモリ回路を含み、メモリ回路に対してセーフティサブシステムによって実行される安全機能は、誤り訂正符号を使用してメモリ回路に記憶されたデータの完全性を監視する。
【００１２】
任意選択で、プログラマブルロジックサブシステム、プロセッシングサブシステム、およびセーフティサブシステムは、別々のパワードメインによって電力供給される。
【００１３】
任意選択で、プログラマブルＩＣは、プログラマブルロジックサブシステム、プロセッシングサブシステム、およびセーフティサブシステムに電源供給するために使用されるパワードメインの電力を調整するように構成された電力管理ユニットを含む。電力管理ユニットに対してセーフティサブシステムによって実行される安全機能は、一組のハードワイヤード回路に含まれる三重モジュール冗長エラー検出回路を使用して、電力管理ユニットの動作をエラーについて監視する。
【００１４】
任意選択で、セーフティサブシステムによって実行される安全機能のうちの少なくとも１つは、プログラマブルＩＣのプログラマブルロジックサブシステムまたはプロセッシングサブシステムのうちの１つを、該サブシステムにエラーを検出することに応答して、リセットするように構成される。
【００１５】
任意選択で、プログラマブルＩＣの１つの回路に対してセーフティサブシステムによって実行される安全機能の少なくとも１つは、該１つの回路によって使用される通信データ経路をプログラマブルＩＣの他の回路によって使用される通信データ経路から分離する。
【００１６】
プログラマブルＩＣを動作させる方法もまた、開示される。ユーザ設計のハードウェア部分が、プログラマブルＩＣのプログラマブルロジックサブシステムで動作する。ユーザ設計のソフトウェア部分が、プログラマブルＩＣのプロセッシングサブシステムで実行される。ソフトウェアベースの安全機能は、プログラマブルＩＣのセーフティサブシステムの一組のプロセッサを使用して実行される。ハードウェアベースの安全機能は、セーフティサブシステムの一組のハードワイヤード回路を使用して実行される。ソフトウェアベースおよびハードウェアベースの安全機能は、プログラマブルＩＣのそれぞれの回路におけるエラーを検出および／または緩和するように構成される。
【００１７】
任意選択で、本方法は、コンフィギュレーションデータのセットでプログラマブルロジックサブシステムを、ユーザ設計のハードウェア部分を形成するように構成することと、コンフィギュレーションデータのセットのサブセットに含まれる安全ポリシーをセーフティサブシステムのメモリに格納することと、を更に含み、安全ポリシーは、ハードウェアベースまたはソフトウェアベースの安全機能の少なくとも１つを示す。
【００１８】
任意選択で、安全ポリシーは、プログラマブルＩＣの回路を高優先度または低優先度として分類し、ソフトウェアベースの安全機能が、低優先度と分類されたプログラマブルＩＣの回路内のエラーを検出および／または緩和し、ハードウェアベースの安全機能が、高優先度と分類されたプログラマブルＩＣの回路内のエラーを検出および／または緩和する。
【００１９】
任意選択で、ソフトウェアベースの安全機能の少なくとも１つは、ロックステップで動作される一組のプロセッサの少なくとも２つのプロセッサを使用して実行される。
【００２０】
任意選択で、ハードウェアベースの安全機能の少なくとも１つは、該少なくとも２つのプロセッサがロックステップで正しく動作しているか否かを決定するように構成される。
【００２１】
任意選択で、プログラマブルＩＣの回路はメモリ回路を含み、ソフトウェアベースまたはハードウェアベースの安全機能のうちの少なくとも１つを実行することは、誤り訂正符号を使用してメモリ回路に記憶されたデータの完全性を監視することを含む。
【００２２】
任意選択で、本方法は、別々のパワードメインを使用して、プログラマブルロジックサブシステム、プロセッシングサブシステム、およびセーフティサブシステムに電源供給することをさらに含む。
【００２３】
任意選択で、本方法は、プログラマブルＩＣの電力管理ユニットを使用して別々のパワードメインで電力を調整することを、さらに含む。ハードウェアベースの安全機能を実行することは、一組のハードワイヤード回路に含まれる三重モジュール冗長エラー検出回路を使用して、エラーについて電力管理ユニットの動作を監視することを含むことができる。
【００２４】
任意選択で、ソフトウェアベースまたはハードウェアベースの安全機能のうちの少なくとも１つは、プログラマブルＩＣのプログラマブルロジックサブシステムまたはプロセッシングサブシステムのうちの１つを、該サブシステムにエラーを検出することに応答して、リセットするように構成される。
【００２５】
任意選択で、ソフトウェアベースまたはハードウェアベースの安全機能のうちの少なくとも１つは、プログラマブルＩＣの回路のうちの１つによって使用される通信データ経路を、プログラマブルＩＣの他の回路によって使用される通信データ経路から分離するように構成される。
【００２６】
他の特徴は、以下の詳細な説明および特許請求の範囲の考察から認識されるであろう。
【００２７】
開示された方法および回路の様々な態様および特徴は、以下の詳細な説明を概観し、図面を参照して明らかになるであろう。
【図面の簡単な説明】
【００２８】
【図１】１つ以上の実施形態と一致する、第１のプログラマブルＩＣを示す。
【図２】１つ以上の実施形態と一致する、プログラマブルＩＣを動作させるための例示的なプロセスを示す。
【図３】１つ以上の実施形態と一致する、第２のプログラマブルＩＣを示す。
【図４】プログラマブルＩＣのセーフティサブシステムに含まれ得る、ユーザ構成可能なエラー処理のための例示的なシステムを示す。
【発明を実施するための形態】
【００２９】
いくつかのミッションクリティカルな用途では、プログラマブルＩＣは、プログラマブルロジックサブシステムまたはプロセッシングサブシステムにおいて１つ以上のミッションクリティカルな機能を実行するように構成することができる。ＩＥＣ  ６１５０８  ＳＩＬ３やＩＳＯ−２６２６２  ＡＳＩＬＣなどの幾つかの高安全性認定基準を満たすために、別個の安全回路がプログラマブルＩＣに接続され、ミッションクリティカルな回路や機能の正しい動作を保証する。安全回路は、高安全性認定基準を満たすために、厳重な分離、保護、および診断カバレッジの要件に準拠する必要があり得る。この要件は、プログラマブルＩＣ全体および安全回路を含むデバイス全体に適用され、非ミッションクリティカルな回路の障害が、ミッションクリティカルな回路または機能を監視するセーフティシステムの能力に影響を与えないことを保証する。これらの要件は、著しい負担をかけ、設計プロセスを長くする可能性がある。
【００３０】
１つ以上の実施形態では、プログラマブルＩＣは、プロセッシングサブシステムおよびプログラマブルロジックサブシステムと統合されたセーフティサブシステムを含む。プログラマブルロジックサブシステムは、ユーザ設計のハードウェア部分を形成するようにコンフィギュレーションデータの第１のサブセットによって構成され得る複数のプログラマブルロジック回路を含む。プロセッシングサブシステムは、コンフィギュレーションデータの第２のサブセットに含まれるユーザ設計のソフトウェア部分を実行するように構成された１つ以上の処理回路を含む。セーフティサブシステムは、１つ以上の安全機能を実行するように構成される。各安全機能は、プログラマブルＩＣの複数の回路のうちのそれぞれの回路内のエラーを検出および／または緩和するように構成される。安全機能は、電圧調整、パワーダウン、リセット、エラー信号生成、データバックアップ、冗長／バックアップシステムへの切り替え、ビルトイン・セルフテストなど、検出されたエラーに応答して複数の様々なアクションを実行する。いくつかの実施形態では、局所的なエラーが発生した個々のサブシステムをリセットするように、安全機能を構成することができる。
【００３１】
セーフティサブシステムは、複数の回路の第１のサブセットに対して安全機能を実行するように構成された一組のハードワイヤード回路を含む。ハードワイヤード回路は、プログラマブルＩＣのプログラマブル回路を実装するダイの部分として製造される。セーフティサブシステムはまた、プログラマブルＩＣの複数の回路の第２のサブセットに対して一組の安全機能を実施するためのプログラムコードを実行するように構成された処理回路を含む。参照を容易にするために、ハードワイヤード回路によって実行される安全機能は、ハードウェアベースの安全機能と呼ぶことができる。逆に、処理回路によって実行される安全機能は、ソフトウェアベースの安全機能と呼ぶことができる。
【００３２】
様々な実施形態では、保護されるべき複数の回路および使用される安全機能は、ユーザによって全体的または部分的に指定されてもよい。例えば、コンフィギュレーションデータの一部は、プログラマブルＩＣの複数の回路のそれぞれに対して実行されるべき安全機能を指定する安全ポリシーを含むことができる。
【００３３】
安全機能は、プログラマブルＩＣの異なるタイプの回路に対して異なるレベルの保護を提供することができる。いくつかの実施形態では、コンフィギュレーションデータは、回路の各々について保護される優先度を示すことができる。セーフティサブシステムは、低優先度回路に対してソフトウェアベースの安全機能を実行し、高優先度回路に対してハードウェアベースの安全機能を実行するように構成することができる。これに代えて、またはそれに加えて、安全機能は、より低い優先度の回路よりも頻繁に、正しい動作のためにより高い優先度の回路をチェックすることができる。いくつかの安全機能は、セーフティサブシステムの冗長ハードワイヤード回路によって実行することができる。例えば、セーフティサブシステムのハードワイヤード回路は、プログラマブルＩＣの電力管理ユニットを監視するように構成された三重モジュール冗長回路を含むことができる。
【００３４】
いくつかの用途では、セーフティサブシステムの処理回路は、ロックステップで一組のソフトウェアベースの安全機能を実行するように構成された少なくとも２つのプロセッサを含む。セーフティサブシステム内のハードワイヤード回路によって実行される安全機能の１つ以上が、２つのプロセッサがロックステップで正しく動作していることを保証するために様々な回路を監視するように構成することができる。
【００３５】
いくつかの実施形態では、プロセッサのロックステップ動作に重要な高優先度回路の第１のグループは、ソフトウェア診断を使用せずにハードウェアベースの安全機能によって保護される。第１のグループの回路は、例えば、ロックステップで動作させるべきプロセッサ、プロセッサによって使用されるキャッシュ、ロックステッププロセッサ上で実行されるソフトウェアによって参照される変数を格納するために使用されるオンチップメモリ、メモリとプロセッサとの間でデータを伝達するインターコネクトを含み得る。例えば、メモリの安全機能は、誤り訂正符号を使用してメモリ回路に格納されたデータの完全性を監視することができる。別の例として、キャッシュの安全機能は、正しいロックステップ動作のためにプロセッサによって使用されるキャッシュを監視するように構成されてもよい。
【００３６】
プログラマブルＩＣのインフラストラクチャに関連する中間優先度の回路の第２のグループは、ハードウェアベースおよびソフトウェアベースの安全機能の組み合わせによって保護されてもよい。第２のグループに対するいくつかの安全機能は、クロック周波数、電圧レベル、および／または温度などの動作パラメータを監視することができる。第２のグループに対するいくつかの他の安全機能は、プログラマブルＩＣの他の回路またはサブシステムからのセーフティクリティカルな回路または機能の分離を容易にすることができる。
【００３７】
より低い優先度の回路の第３のグループは、主にソフトウェアベースの安全機能によって保護されてもよい。より低い優先度の回路の第３のグループは、例えば、セーフティクリティカルな回路または機能によって利用されない周辺装置を含むことができる。ハードウェアベースの安全機能を使用して、セーフティクリティカルな回路または機能によって使用される周辺装置を保護することができる。複数のＩ／Ｏチャネルおよび／またはＩ／Ｏループバック性能を、セーフティクリティカルな周辺装置のために提供することもできる。
【００３８】
いくつかの実施形態では、プログラマブルロジックサブシステム、プロセッシングサブシステム、およびセーフティサブシステムは、別々のパワードメインで電力供給されてもよい。別々のパワードメインを使用することにより、セーフティサブシステムは、万一、プロセッシングサブシステムまたはプログラマブルロジックサブシステムに電力障害が発生した場合に、動作を継続し得る。いくつかの実施形態では、１つ以上の安全機能が、プロセッシングサブシステムまたはプログラマブルロジックサブシステムにおける電力障害に応答して是正措置を講じることができる。さらに、別々のパワードメインを使用することにより、例えば、サブシステムにおける回復不能なエラーに応答して、プロセッシングサブシステムまたはプログラマブルロジックサブシステムを独立してリセットすることができる。
【００３９】
以下の説明では、本明細書に示される特定の例を説明するために、多数の特定の詳細が説明される。しかしながら、以下に示す特定の詳細が全てなくとも、１つ以上の他の例および／またはこれらの例の変形例が実施され得ることは明らかである。他の例では、本明細書の例の説明を不明瞭にしないように、周知の特徴については詳細には説明していない。
【００４０】
ここで図面を参照すると、図１は、１つ以上の実施形態に従って構成された第１のプログラマブルＩＣを示す。プログラマブルＩＣ１０２は、プロセッシングサブシステム１１０、セーフティサブシステム１２０、及びプログラマブルロジックサブシステム１３０を含む。プログラマブルロジックサブシステム１３０は、ユーザ設計のハードウェア部分を形成するようにコンフィギュレーションデータの第１のサブセットによって構成され得る複数のプログラマブルロジック回路１３２を含む。プロセッシングサブシステム１１０は、コンフィギュレーションデータの第２のサブセットに含まれるユーザ設計のソフトウェア部分のプログラムコードを実行するように構成された１つ以上の処理回路１１２を含む。
【００４１】
セーフティサブシステム１２０は、各々がプログラマブルＩＣのそれぞれの回路内のエラーを検出および／または緩和するように構成された１つ以上の安全機能を実行するように構成される。セーフティサブシステム１２０は、プログラマブルＩＣの回路の第１の組に対してハードウェアベースの安全機能１２３を実行するように構成された一組のハードワイヤード回路１２２を含む。セーフティサブシステムはまた、プログラマブルＩＣの回路の第２の組に対して一組のソフトウェアベースの安全機能１２５を実行するように構成された１つ以上の処理回路１２４を含む。前述のように、安全機能１２３および１２５は、検出されたエラーに応答して、多くの異なるアクションを実行する。異なるアクションは、電圧調整、パワーダウン、サブシステムリセット、エラー信号生成、データバックアップ、冗長／バックアップシステムへの切り替え、および／またはビルトイン・セルフテストを含むことができる。いくつかの実施形態では、実行されるべき安全機能１２３および１２５ならびに安全機能によって保護されるべき回路は、サブシステムのメモリ１２６に格納された安全ポリシー１２８で指定される。いくつかの実施形態では、メモリ１２６は、デフォルトの安全ポリシーを格納するように構成された不揮発性メモリであってもよい。いくつかの他の実施形態では、安全ポリシー１２８は、プログラマブルＩＣの起動時にメモリ１２６に格納されてもよい。いくつかの実施形態では、安全ポリシー１２８は、ユーザによって準備または調整されてもよい。例えば、安全ポリシー１２８は、プログラマブルロジックサブシステム１３０のプログラマブルロジック回路１３２を構成するために使用されるコンフィギュレーションデータのセットの一部に、全体的または部分的に準備されてもよい。
【００４２】
図２は、１つ以上の実施形態と一致する、プログラマブルＩＣを動作させるための例示的なプロセスを示す。ブロック２０２において、プロセッシング（ＰＳ）サブシステムは、コンフィギュレーションデータのセットの第１のサブセットに示されるユーザ設計のソフトウェア部分を実行するように構成される。ブロック２０４において、プログラマブルロジック（ＰＬ）サブシステムの一組のプログラマブルロジック回路は、ユーザ設計のハードウェア部分を実装するように、コンフィギュレーションデータのセットの第２のサブセットでプログラムされる。任意選択で、ブロック２０６において、セーフティサブシステムは、コンフィギュレーションデータのセットの第３のサブセットに含まれる安全ポリシーで指定された１つ以上のユーザ定義の安全機能を実行するように構成されてもよい。コンフィギュレーションは、例えば、セーフティサブシステムのメモリに安全ポリシーを格納することを含むことができる。
【００４３】
ブロック２０８において、ユーザ設計のソフトウェア部分およびハードウェア部分が動作される。ブロック２１０において、安全機能の第１の組が、セーフティサブシステム内のロックステップで動作される一組のプロセッサによって実行される。安全機能の第１の組は、例えば、ユーザ定義の安全機能（提供されている場合）を含むことができる。ブロック２１２において、安全機能の第２の組が、セーフティサブシステム内の一組のハードワイヤード回路によって実行される。例えば、安全機能の第２の組のうちの１つは、セーフティサブシステム内の一組のプロセッサがロックステップで正しく動作するのを保証するように構成することができる。いくつかの実施形態では、１つ以上のハードワイヤード回路を、１つ以上のユーザ定義の安全機能（提供されている場合）を実装するように構成することができる。ユーザ定義の安全機能を実行するように構成することができるハードワイヤード回路は、図４を参照してより詳細に説明される。ユーザ設計のソフトウェア部分およびハードウェア部分が、ブロック２０８で動作し続ける間、安全機能は、ブロック２１０および２１２で実行され続ける。
【００４４】
図３は、１つ以上の実施形態に従って構成され得るプログラマブルＩＣ３０２を示す。プログラマブルＩＣは、プロセッシングサブシステム３１０およびプログラマブルロジックサブシステム３３０を含むシステムオンチップ（ＳＯＣ）とも呼ばれる。プロセッシングサブシステム３１０は、ユーザプログラムの実行を介して、ユーザ設計のソフトウェア部分を実装するようにプログラムされてもよい。プログラムは、コンフィギュレーションデータストリームの一部として指定されてもよく、またはオンチップ若しくはオフチップのデータストレージデバイスから取り出されてもよい。プロセッシングサブシステム３１０は、１つ以上のソフトウェアプログラムを実行するための様々な回路３１２，３１４，３１６、および３１８を含むことができる。回路３１２，３１４，３１６、および３１８は、例えば、１つ以上のプロセッサコア、浮動小数点ユニット（ＦＰＵ）、割り込み処理ユニット、オンチップメモリ、メモリキャッシュ、および／またはキャッシュコヒーレントインターコネクトを含むことができる。
【００４５】
プログラマブルＩＣ３０２のプログラマブルロジックサブシステム３３０は、ユーザ設計のハードウェア部分を実装するようにプログラムすることができる。例えば、プログラマブルロジックサブシステムは、コンフィギュレーションデータストリームに指定された一組の回路を実装するようにプログラムすることができるいくつかのプログラマブルロジック回路３３２を含むことができる。プログラマブルロジック回路３３２は、プログラマブルインターコネクト回路、プログラマブルロジック回路、およびコンフィギュレーションメモリセルを含む。プログラマブルロジックは、例えば、ファンクションジェネレータ、レジスタ、算術論理などを含むことができるプログラマブルエレメントを使用して、ユーザ設計のロジックを実装する。プログラマブルインターコネクト回路は、プログラマブルインターコネクトポイント（ＰＩＰ）によって相互接続された様々な長さの多数のインターコネクトラインを含むことができる。
【００４６】
プログラマブルロジック回路３３２は、プログラマブルインターコネクト回路およびプログラマブルロジック回路がどのように構成されるかを定めるコンフィギュレーションメモリセルにコンフィギュレーションデータストリームをロードすることによってプログラムすることができる。次いで、個々のメモリセルの集合状態が、プログラマブルロジック回路３３２の機能を決定する。コンフィギュレーションデータは、メモリから（例えば、外部ＰＲＯＭから）読み出すことができ、または外部デバイスによってプログラマブルＩＣ  ３０２に書き込むことができる。いくつかの実施形態では、コンフィギュレーションデータは、プログラマブルロジックサブシステム３３０に含まれるコンフィギュレーションコントローラ３３４によってコンフィギュレーションメモリセルにロードされてもよい。いくつかの他の実施形態では、コンフィギュレーションデータは、プロセッシングサブシステム３１０によって実行される始動プロセスによってコンフィギュレーションメモリセルにロードされてもよい。
【００４７】
プログラマブルＩＣ３０２は、プロセッシングサブシステム３１０を、プログラマブルロジックサブシステム３３０内に実装された回路と相互接続するための様々な回路を含むことができる。この例では、プログラマブルＩＣ３０２は、プロセッシングサブシステム３１０およびプログラマブルロジックサブシステム３３０の様々なデータポート間でデータ信号をルーティングすることができるコアスイッチ３２６を含む。コアスイッチ３２６はまた、プログラマブルロジックサブシステム３３０またはプロセッシングサブシステム３１０のいずれかと、プログラマブルＩＣの様々な他の回路（例えば、内部データバス）との間でデータ信号をルーティングすることもできる。代替的または追加的に、プロセッシングサブシステム３１０は、コアスイッチ３２６をバイパスしてプログラマブルロジックサブシステムに直接接続するためのインターフェースを含むことができる。そのようなインターフェースは、例えば、ＡＲＭによって公表されたＡＭＢＡ  ＡＸＩプロトコル仕様（ＡＸＩ）を使用して実装することができる。
【００４８】
いくつかの実施形態では、プロセッシングサブシステム３１０およびプログラマブルロジックサブシステム３３０は、メモリコントローラ３２１を介してオンチップメモリ３２２またはオフチップメモリ（図示せず）のメモリロケーションを読み書きすることもできる。メモリコントローラ３２１は、限定しないが、１６ビット、３２ビット、ＥＣＣ付き１６ビットなどであれ、デュアルデータレート（ＤＤＲ）２、ＤＤＲ３、低電力（ＬＰ）ＤＤＲ２タイプのメモリを含む１つ以上の異なるタイプのメモリ回路と通信するように実装することができる。メモリコントローラ３２１が通信することができる異なるメモリタイプのリストは、例示のみのために提供されており、限定または網羅的なものではない。図３に示すように、プログラマブルＩＣ３０２は、サブシステム３１０および３３０によって使用される仮想メモリアドレスを、メモリコントローラ３２１が特定のメモリロケーションにアクセスするために使用する物理メモリアドレスに変換するためのメモリ管理ユニット３２０およびトランスレーションルックアサイドバッファ３２４を含むことができる。
【００４９】
プログラマブルＩＣは、外部回路とのデータ通信のための入出力（Ｉ／Ｏ）サブシステム３５０を含むことができる。Ｉ／Ｏサブシステム３５０は、例えば、フラッシュメモリタイプＩ／Ｏデバイス、高性能Ｉ／Ｏデバイス、低性能インターフェース、デバッグＩ／Ｏデバイス、および／またはＲＡＭ  Ｉ／Ｏデバイスを含む様々なタイプのＩ／Ｏデバイスまたはインターフェースを含むことができる。
【００５０】
Ｉ／Ｏサブシステム３５０は、３６０Ａおよび３６０Ｂとして示す１つ以上のフラッシュメモリインターフェース３６０を含むことができる。例えば、フラッシュメモリインターフェース３６０のうちの１つ以上は、４ビット通信用に構成されたクワッドシリアル・ペリフェラル・インターフェース（ＱＳＰＩ）として実装することができる。フラッシュメモリインターフェース３６０のうちの１つ以上は、パラレル８ビットＮＯＲ／ＳＲＡＭタイプのインターフェースとして実装することができる。フラッシュメモリインターフェース３６０のうちの１つ以上は、８ビットおよび／または１６ビット通信用に構成されたＮＡＮＤインターフェースとして実装することができる。記載された特定のインターフェースは、例示のために提供され、限定のためではないことを理解されたい。異なるビット幅を有する他のインターフェースを使用することができる。
【００５１】
Ｉ／Ｏサブシステム３５０は、フラッシュメモリインターフェース３６０より高い性能レベルを提供する１つ以上のインターフェース３６２を含むことができる。インターフェース３６２Ａ〜３６２Ｃの各々は、ＤＭＡコントローラ３６４Ａ〜３６４Ｃにそれぞれ接続することができる。例えば、インターフェース３６２のうちの１つ以上は、ユニバーサルシリアルバス（ＵＳＢ）タイプのインターフェースとして実施することができる。インターフェース３６２のうちの１つ以上は、ギガビットイーサネット（登録商標）タイプのインターフェースとして実装することができる。インターフェース３６２のうちの１つ以上は、セキュアデジタル（ＳＤ）タイプのインターフェースとして実装することができる。
【００５２】
Ｉ／Ｏサブシステム３５０はまた、インターフェース３６２よりも低い性能レベルを提供する、インターフェース３６６Ａ〜３６６Ｄなどの１つ以上のインターフェース３６６を含むことができる。例えば、インターフェース３６６のうちの１つ以上は、汎用Ｉ／Ｏ（ＧＰＩＯ）タイプのインターフェースとして実施することができる。インターフェース３６６のうちの１つ以上は、汎用非同期送受信回路（ＵＡＲＴ）タイプのインターフェースとして実装することができる。インターフェース３６６のうちの１つ以上は、シリアル・ペリフェラル・インターフェース（ＳＰＩ）バスタイプのインターフェースの形態で実装することができる。インターフェース３６６のうちの１つ以上は、コントローラエリアネットワーク（ＣＡＮ）タイプのインターフェースおよび／またはＩ２Ｃタイプのインターフェースの形態で実装することができる。
【００５３】
Ｉ／Ｏサブシステム３５０は、プロセッサＪＴＡＧ（ＰＪＴＡＧ）インターフェース３６８Ａおよびトレースインターフェース３６８Ｂなどの１つ以上のデバッグインターフェース３６８を含むことができる。ＰＪＴＡＧインターフェース３６８Ａは、プログラマブルＩＣ３０２のための外部デバッグインターフェースを提供することができる。トレースインターフェース３６８Ｂは、プロセッシングサブシステム３１０またはプログラマブルロジックサブシステム３３０からデバッグ、例えば、トレース情報を受信するためのポートを提供することができる。
【００５４】
図示されているように、インターフェース３６０，３６２，３６６、および３６８の各々は、マルチプレクサ３７０に接続することができる。マルチプレクサ３７０は、プログラマブルＩＣ３０２の外部ピン、例えばプログラマブルＩＣ３０２が配置されるパッケージのボールなどに直接ルーティングまたは接続され得る複数の出力を提供する。例えば、プログラマブルＩＣ３０２のＩ／Ｏピンは、インターフェース３６０，３６２，３６６、および３６８の間で共有することができる。ユーザは、インターフェース３６０〜３６８のどれを使用するか、したがって、マルチプレクサ３７０を介してプログラマブルＩＣ３０２のＩ／Ｏピンに接続するか、選択するように、コンフィギュレーションデータストリームによって、マルチプレクサ３７０を構成することができる。Ｉ／Ｏサブシステム３５０はまた、インターフェース３６２−３６８をプログラマブルロジックサブシステムのプログラマブルロジック回路に接続するためのファブリックマルチプレクサＩ／Ｏ（ＦＭＩＯ）インターフェース（図示せず）を含むことができる。これに加えて、またはこれに代えて、プログラマブルロジックサブシステム３３０は、プログラマブルロジック内に１つ以上のＩ／Ｏ回路を実装するように構成することができる。いくつかの実施形態では、プログラマブルＩＣ３０２は、電力および／または安全管理のための様々な回路を有するサブシステム３４０を含むこともできる。例えば、サブシステム３４０は、プログラマブルＩＣ３０２の様々なサブシステムに電力を供給するために使用される１つ以上の電圧ドメインを監視および維持するように構成された電力管理ユニット３４６を含むことができる。いくつかの実施形態では、電力管理ユニット３４６は、使用中のサブシステムへの電力を停止することなく、アイドル時に、個々のサブシステムの電力を停止して、電力消費を低減することができる。
【００５５】
サブシステム３４０は、正しい動作を保証するためにサブシステムのステータスを監視する安全回路を含むこともできる。例えば、サブシステム３４０は、プログラマブルＩＣの様々なサブシステムまたは回路に対して安全機能を実行するように構成された１つ以上のハードワイヤード安全回路３４１を含むことができる。サブシステム３４０はまた、プログラマブルＩＣの様々なサブシステムまたは回路に対して様々なソフトウェアベースの安全機能を実行するように構成された１つ以上のリアルタイムプロセッサ３４２を含むことができる。
【００５６】
サブシステム３４０は、プログラマブルＩＣの様々な動作パラメータ（例えば、電圧、温度、クロックおよび／またはデータ／制御信号）を監視し、監視された動作パラメータのステータスを示すデータをステータスレジスタ３４４に保存するように構成された１つ以上のセンサまたは検出器３４９を含み得る。ステータスレジスタは、ハードワイヤード安全回路３４１、リアルタイムプロセッサ３４２、または電力管理ユニット３４６によってアクセスされてもよい。
【００５７】
安全機能は、様々なサブシステムのステータスを監視し、１つ以上のサブシステムまたは回路におけるエラーの検出、防止、および／または緩和を容易にするための様々なアクションを実行することができる。いくつかの実施形態では、安全機能は、エラーを示す値を有するステータスレジスタに応答してアクションを行うことができる。例えば、安全機能は、エラーの検出に応答してアラートを生成することができる。別の例として、安全機能は、個々のサブシステムをリセットして、サブシステムを正しい動作に修復しようと試みることができる。
【００５８】
保護すべきサブシステムまたは回路および実行すべき安全機能は、メモリ３４３に格納された安全ポリシーで指定することができる。安全ポリシーは、プログラマブルＩＣ３０２の異なるサブシステムまたは回路に対して異なるレベルの保護を提供することができる。例えば、高優先度の回路／機能（例えば、プログラマブルＩＣのユーザ）は、専用ハードワイヤード安全回路３４１またはロックステップで動作するリアルタイム安全プロセッサ３４２のうちの２つによって実行される安全機能によって保護することができる。低優先度回路（例えば、周辺装置）は、低優先度回路の機能をテストするために定期的に実行されるソフトウェアベースのテストによって保護されてもよい。
【００５９】
安全ポリシーは、不揮発性メモリにハードコードされてもよく、または起動時にメモリに格納されてもよい。いくつかの実施形態では、安全ポリシーは、ユーザ構成可能であり、例えば、コンフィギュレーションデータのセットのサブセットに提供されてもよい。
【００６０】
サブシステム３４０は、様々なサブシステムを相互接続するために使用され得るインターコネクトスイッチネットワーク３４８を含む。例えば、インターコネクトスイッチネットワーク３４８は、様々なサブシステム３１０，３３０，及び３４０をＩ／Ｏサブシステム３５０の様々なインターフェースに接続するように構成することができる。いくつかの応用では、インターコネクトスイッチネットワーク３４８はまた、監視されるべきサブシステムからリアルタイムプロセッサ３４２を分離するように、ハードワイヤード安全回路３４１またはリアルタイム安全プロセッサ３４２の１つ以上の安全機能によって、制御されてもよい。そのような分離は、リアルタイムプロセッサ３４２が他のサブシステムで発生するエラーの影響を受けないことを保証するために、特定のアプリケーション規格（例えば、ＩＥＣ−６１５０８  ＳＩＬ３またはＩＳＯ−２６２６２規格）によって要求されることがある。いくつかの応用では、インターコネクトスイッチネットワーク３４８は、ランダム障害に対して保護を提供するために、（例えば、ＥＣＣまたはパリティによって）保護されてもよい。いくつかの応用では、インターコネクトスイッチネットワーク３４８は、インターコネクトスイッチネットワーク３４８をテストするために定期的に実行されるソフトウェアベースのテストによって保護されてもよい。
【００６１】
いくつかの実施形態では、いくつかの安全機能は、ハードワイヤード安全回路３４１の冗長ハードワイヤード回路によって実行されてもよい。例えば、電力管理ユニット３４６は、ハードワイヤード安全回路３４１の三重モジュール冗長回路によって実行される安全機能によって保護されてもよい。例えば、セーフティサブシステムのハードワイヤード回路は、プログラマブルＩＣの電力管理ユニットを監視するように構成された三重モジュール冗長回路を含むことができる。別の例として、プログラマブルＩＣは、（例えば、プロセッシングサブシステム３１０のリセット中の）プログラマブルロジック回路の意図しない再構成を防止するように構成されたコンフィギュレーションセキュリティユニットを含むことができる。コンフィギュレーションセキュリティユニットは、同様に三重モジュール冗長回路によって保護することができる。
【００６２】
図４は、１つ以上の実施形態におけるセーフティシステムに含まれ得る、ユーザ構成可能なエラー処理のための例示的なシステムを示す。システムは、各々が一組のステータス信号４１０のうちのそれぞれのステータス信号を受信するように構成された一組のエラーステータスレジスタ４２０を含む。エラーステータスレジスタ４２０は、エラーリセット信号４２６によってエラーがクリアされるまで、ステータス信号４１０によって示されるエラーを記憶し維持するように構成される。例えば、いくつかの実施形態では、ステータス信号は各々、エラーが存在しない場合には論理０値を示し、エラーが存在する場合には論理１値を示してもよい。エラーリセット信号４２６によってリセットされると、全てのエラーステータスレジスタの値は、論理０に設定され、エラーが存在しないことを示し得る。エラーを示すステータス信号４１０の１つに応答して、エラーステータスレジスタ４２０のうちの対応するレジスタの値が、論理１に設定される。論理１値は、ステータス信号が後に論理０値に戻っても、レジスタによって維持される。エラーステータスレジスタ４２０にエラーを示す値を維持することによって、エラーは、例えば、エラー処理回路によって、より容易に処理され得る。例えば、エラーステータスレジスタ４２０にエラーが維持されると、エラー処理回路は、間欠性のエラーの発生を逃すことなく、エラーステータスレジスタ４２０の値をより少ない頻度で取り出す／受信することができる。
【００６３】
エラーステータスレジスタ４２０の値は、システムに含まれ得る様々な回路によるエラー処理および／または監視のために並列に出力される。例えば、エラーステータスレジスタ４２０の値は、パラレルエラー信号４６２としてプログラマブルロジックサブシステムへ、その中に実装されたユーザ定義回路による処理のために提供される。ユーザは、カスタマイズされたエラー処理回路を実装するために、コンフィギュレーションデータのセットによって、プログラマブルロジックをプログラムすることができる。エラー処理回路は、エラーステータスレジスタ４２０によって示される様々なエラーの組合せに応答して、多数の異なるアクションを実行するようにユーザによって構成されてもよい。例えば、ユーザによって定義されたエラー処理回路は、リセット、シャットダウン、および／またはアラートなどの１つ以上のシステム全体のアクションをトリガすることができる。代替的または追加的に、ユーザによって定義されたエラー処理回路は、プログラマブルロジックに実装されたユーザ定義回路に１つ以上のアクションを実行させることができる。例えば、エラーに応答して、エラー処理回路は、回路が正しく動作しているかどうかを判定するために、プログラマブルロジックに実装された回路をトリガして、ビルトイン・セルフテストを実行することができる。同様に、いくつかの実施形態では、パラレルエラー信号４６２は、システムのプロセッサ上で実行されるソフトウェアベースのエラー処理ルーチンに提供されてもよい。
【００６４】
代替的または追加的に、エラーステータスレジスタ４２０の値は、電力管理ユニットへのパラレル信号４６０として提供されてもよい。電力管理ユニットは、例えば、個々のサブシステムまたはシステム全体をパワーダウンまたはリセットし、および／または様々なパワードメインの電圧を調整するように、構成することができる。いくつかの実施形態では、電力管理ユニットのファームウェアは、エラーステータスレジスタによって示される様々なエラーの組み合わせに応答してユーザ定義のアクションを実行するように、ユーザによってプログラムされてもよい。
【００６５】
いくつかの実施形態では、システムは、１つ以上のユーザ定義のハードウェアベースの安全機能を実行するために使用され得るマスキング回路４３０を含むことができる。マスキング回路４３０は、例えば、エラーステータスレジスタ４２０によって示されるエラーをフィルタリングするために使用され得る。例えば、この回路は、エラーステータスレジスタ４２０によって示されたエラーをユーザ定義のマスクでフィルタリングして、関心のあるマスクされた信号のセットを生成することができる。ユーザ定義マスクは、例えば、プログラマブルロジックサブシステムの構成に使用されるコンフィギュレーションデータのセット内で指定することができる。ユーザ定義のマスクは、特定のアクションをトリガするために、個別にまたは一緒に使用され得るエラーのセットを分離することができる。例えば、マスクされたエラー信号は、リセット回路などのプログラマブルＩＣ内の１つ以上のハードワイヤード回路によって使用される制御信号を設定するために使用されてもよい。例えば、マスクされた信号のいずれかがエラーを示す場合、論理ＯＲゲートを用いて、アクションをトリガすることができる。マスクされた信号のすべてがエラーを示す場合にのみ、論理ＡＮＤゲートを用いて、アクションをトリガすることができる。より複雑なトリガを生成するために、様々な論理ゲートの組合せを使用することができる。
【００６６】
図４に示すように、マスキング回路４３０は、マスクされたエラー信号の第１のセット４３５を生成する第１のユーザ構成可能なマスク４３２を含むことができる。論理ＯＲゲート４３６は、マスクされたエラー信号４３５のいずれかがエラーを示す場合、またはＳＷエラーステータス信号４３４がエラーを示す場合、エラーを示す値にエラー信号４３８を設定する。別の例として、マスキング回路４３０は、システムのパワーオンリセットをトリガするエラー信号のセット４４３を識別する第２のユーザ構成可能なマスク４４０を含むことができる。論理ＯＲゲート４４４は、マスクされた信号４４３のいずれかがエラーを示す場合、またはＳＷリセット要求４４２が論理１に設定されている場合、ＰＯＲ要求信号４４６を論理１に設定することによって、システムのパワーオンリセット（ＰＯＲ）をトリガし得る。さらに別の例として、マスキング回路４３０は、システムのソフトウェアリセットをトリガするエラー信号のセット４５２を識別するユーザ構成可能なマスク４５０を含むことができる。論理ＯＲゲート４５４は、マスクされた信号４５２のいずれかがエラーを示している場合、またはＳＷリセット要求４４２が論理１に設定されている場合、ＳＷリセット要求信号４５６を論理１に設定することによって、ソフトウェアリセットをトリガする。
【００６７】
いくつかの実施形態では、エラーステータスレジスタは、エラーステータスレジスタ４２０のそれぞれの値を示すシリアルステータス信号４２４を生成するために全てのレジスタの値をシリアルにシフトアウトするように構成されたシフト回路４２２を含むことができる。シリアルステータス信号４２４は、システムから出力されてもよく、エラー処理のために様々な回路に供給されてもよい。例えば、いくつかの実施形態では、シリアルステータス信号４２４は、パラレル信号４６２の代わりにプログラマブルロジックのエラー処理回路に供給されてもよい。
【００６８】
この方法および回路は、様々なシステムおよびアプリケーションに適用可能であると考えられる。他の態様および特徴は、明細書の考察から当業者には明らかであろう。例えば、態様および特徴は、場合によっては個々の図に記述されることがあるが、組合せが明示的に示されていない場合でも、組合せとして明示的に記述されている場合でも、ある図の特徴を他の図の特徴と組み合わせることができる、ということが理解されるであろう。本明細書および図面は、単なる例示としてみなされ、本発明の真の範囲は、添付の特許請求の範囲によって示されることが意図されている。
【図１】
0006647289.tif 000002
【図２】
0006647289.tif 000003
【図３】
0006647289.tif 000004
【図４】
0006647289.tif 000005