IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シリコン モビリティ エスアエスの特許一覧

特許7416452フレキシブルロジックハードウェアの空間的分化
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】フレキシブルロジックハードウェアの空間的分化
(51)【国際特許分類】
   G06F 15/177 20060101AFI20240110BHJP
   G06F 15/80 20060101ALI20240110BHJP
   G06F 9/38 20180101ALI20240110BHJP
   H03K 19/173 20060101ALI20240110BHJP
【FI】
G06F15/177 A
G06F15/80
G06F9/38 370X
H03K19/173 130
【請求項の数】 16
(21)【出願番号】P 2021565996
(86)(22)【出願日】2019-05-07
(65)【公表番号】
(43)【公表日】2022-09-06
(86)【国際出願番号】 EP2019061656
(87)【国際公開番号】W WO2020224763
(87)【国際公開日】2020-11-12
【審査請求日】2022-05-02
(73)【特許権者】
【識別番号】520154117
【氏名又は名称】シリコン モビリティ エスアエス
(74)【代理人】
【識別番号】100088904
【弁理士】
【氏名又は名称】庄司 隆
(74)【代理人】
【識別番号】100124453
【弁理士】
【氏名又は名称】資延 由利子
(74)【代理人】
【識別番号】100135208
【弁理士】
【氏名又は名称】大杉 卓也
(74)【代理人】
【識別番号】100183656
【弁理士】
【氏名又は名称】庄司 晃
(74)【代理人】
【識別番号】100224786
【弁理士】
【氏名又は名称】大島 卓之
(74)【代理人】
【識別番号】100225015
【弁理士】
【氏名又は名称】中島 彩夏
(72)【発明者】
【氏名】ヴェジール,ロイック,ジーン,ドミニク
(72)【発明者】
【氏名】ルブラン,アンセルム,ジョセフ,フランソワ
(72)【発明者】
【氏名】ガラッシオ,ピエール,ドミニク,ザビエル
【審査官】坂東 博司
(56)【参考文献】
【文献】欧州特許出願公開第01713007(EP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/177
G06F 15/80
G06F 9/38
H03K 19/173
(57)【特許請求の範囲】
【請求項1】
システム(400)であって、
横並びに配置されるとともに、ペアワイズで物理的に接続されるか又は分離されるように適合され、アレイで配置される複数の計算ブロック(410)を含む複数のフレキシブルロジックユニット配置構成(500、510、520)と、
内部の各電子制御システム(710)が前記フレキシブルロジックユニット配置構成のうちの1つに一意に関連付けられる複数の電子制御構造(700)とを備え、
フレキシブルロジックユニット配置構成(500、510)のそれぞれは、前記フレキシブルロジックユニット配置構成の境界に設けられる複数の入力出力ブロック(IOB)(420)を更に含むと共に、複数の回路(100、105、110、200、300)であって、前記フレキシブルロジックユニット配置構成の境界に設けられ、同じフレキシブルロジックユニット配置構成の前記計算ブロック、前記入力出力ブロックに接続可能であり、同じフレキシブルロジックユニット配置構成内で間接的に又は別のフレキシブルロジックユニット配置構成に属するときに直接的に互いに接続可能である、複数の回路(100、105、110、200、300)を更に含み、
前記電子制御構造は、前記それぞれのフレキシブルロジックユニット配置構成の接続又は分離とのペアワイズで物理的に接続又は切り離されるアライメントであるように適合され、
前記電子制御構造(700)は、フレキシブルロジックユニット配置構成(500、510、520)の制御用の制御信号を生成する制御システム(710)と、第1の制御システムから第1の制御信号を受信する第1の制御信号入力手段(720)と、第2の制御信号を受信する第2の制御信号入力手段(730)と、フレキシブルロジックユニット配置構成が物理的に接続されるか又は分離されるかを示す情報を入力する構成入力手段(740)と、制御ロジックとを備え、
該制御ロジックは、前記情報に基づいて、前記制御システムによって生成される制御信号を該制御システムの関連付けられるフレキシブルロジックユニット配置構成に対する出力(760)として選択するか、又はそうでなければ、前記第1の制御信号を前記更に別の電子制御構造に通過させる(750)とともに、前記第2の制御信号を該制御システムの関連付けられるフレキシブルロジックユニット配置構成に対する出力として使用し、前記第2の制御信号を前記別の電子制御構造に通過させる(770)ことが可能である、システム。
【請求項2】
請求項1に記載のシステム(400)であって、前記電子制御構造(700)がディジーチェーンを構築するように同じ種類の電子制御構造に接続可能である、システム。
【請求項3】
請求項1または請求項2に記載のシステム(400)であって、前記電子制御構造の前記制御ロジックは、前記情報によって制御される、2つのセレクター(800、810)を備える、システム。
【請求項4】
請求項1~3のいずれか1項に記載のシステム(400)であって、前記電子制御構造の制御ロジックは、前記通過経路内に記憶手段(820)を備える、システム。
【請求項5】
請求項1に記載のシステムであって、前記回路は、1つの側面(100、110、200)又は複数の側面(300)における該回路の入力及び/又は出力(複数の場合もある)に対するアクセスが物理的に分離可能であることを特徴とする、システム。
【請求項6】
請求項1に記載のシステムであって、異なるフレキシブルロジックユニット配置構成に属する前記回路は、前記回路の前記物理的に分離可能な入力又は出力(複数の場合もある)のうちの少なくとも1つのみによって、直接的に接続される、システム。
【請求項7】
請求項1に記載のシステムであって、複数の前記回路は、少なくとも3つの入力出力側面を有する、システム。
【請求項8】
請求項1に記載のシステムであって、前記複数の入力出力ブロック(IOB)は、2つのIO(入力出力)側面を有する、システム。
【請求項9】
請求項1~8のいずれか1項に記載のシステムを動作させる方法であって、前記システムは、2つ以上の独立した機能が、ともに結合される1つ以上のフレキシブルロジックユニット配置構成によって規定されるように構成され、前記機能のそれぞれは独立であり、該方法は、前記機能を、該機能に関連付けられた結合されたフレキシブルロジックユニット配置構成間の接続を物理的に分離した状態に維持しながら、該機能に関連付けられた結合されたフレキシブルロジックユニット配置構成によって独立に実行することを含む、方法。
【請求項10】
請求項9に記載の方法であって、前記機能を規定する前記結合されるフレキシブルロジックユニット配置構成は、異なるクロックで動作する、及び/又は、更には別々にパワーダウンしてもよい、方法。
【請求項11】
請求項9または請求項10に記載の方法であって、前記システムは、(i)それぞれがソフトウェアプログラマブルユニット、又は、任意選択で電気エンジン制御ユニットハードウェア機能に専用の(SOC)周辺ハードウェアユニットである、複数の電子コンポーネントと、(ii)請求項1~9に記載のプログラマブルロジックマトリクスであるハードウェアプログラマブルユニットとを備えるヘテロジニアスハードウェアシステムであり、結合されるフレキシブルロジックユニット配置構成は、(前記フレキシブルロジックユニット配置構成の入力出力ブロックを介して)関連付けられる電子コンポーネント(それぞれ、600、(640))に接続される、方法。
【請求項12】
請求項1~8に記載のシステムを部分的に再構成する方法であって、前記システムは、2つ以上の独立した機能が、ともに結合される1つ以上のフレキシブルロジックユニット配置構成によって規定されるように構成され、前記機能のそれぞれは独立であり、該方法は、前記結合されたフレキシブルロジックユニット配置構成のうちの1つ以上を再構成し、それと同時に、接続が該再構成中の(結合された)フレキシブルロジックユニット配置構成から物理的に分離した状態に維持された他の結合されたフレキシブルロジックユニット配置構成によって機能を実行することを継続することを含む、方法。
【請求項13】
請求項1~8に記載のシステム内でタスク及び/又はコンテキストを切り換える方法であって、前記システムは、2つ以上の独立した機能が、ともに結合される1つ以上のフレキシブルロジックユニット配置構成によって規定されるように構成され、前記機能のそれぞれは独立であり、前記機能を規定する前記結合されるフレキシブルロジックユニット配置構成は、少なくとも2つのタスク又は機能を順次実行するように適合され、該方法は、前記結合されたフレキシブルロジックユニット配置構成のうちの1つ以上によってタスク及び/又はコンテキスト切り換えを実施し、それと同時に、接続が該切り換え中の前記結合されたフレキシブルロジックユニット配置構成から物理的に分離した状態に維持された他の結合されたフレキシブルロジックユニット配置構成が機能を実行することを継続することを含む、方法。
【請求項14】
部分的故障に陥る請求項5に記載のシステムを、安全性を高めて動作させる方法であって、前記システムは、前記回路(100、105、110、200、300)によって接続された複数のフレキシブルロジックユニット配置構成が、第1の機能を連携して実行することが可能であるように構成され、該方法は、前記複数の前記フレキシブルロジックユニット配置構成が前記回路(100、105、110、200、300)によって接続されている間に、前記第1の機能を実行することと、前記フレキシブルロジックユニット配置構成のうちの1つにおいて故障を検出すると、前記実行を終了することと、残りの依然として動作する前記フレキシブルロジックユニット配置構成を再構成することと、該故障したフレキシブルロジックユニット配置構成と、残りの依然として動作する前記フレキシブルロジックユニット配置構成との間の接続を物理的に分離した状態に維持しながら、該再構成した動作を実行することとを含む、方法。
【請求項15】
請求項1~8に記載のシステム内でのタスク及び/又はコンテキストの切り換えの使用法であって、前記システムは、フレキシブルロジックユニット配置構成のうちの第1の1つ以上のフレキシブルロジックユニット配置構成が第1の独立エンティティを連携して規定し、一方、前記フレキシブルロジックユニット配置構成のうちの第2の1つ以上のフレキシブルロジックユニット配置構成が第2の独立エンティティを連携して規定するように構成され、前記第2の独立エンティティの接続は前記第1の独立エンティティから物理的に分離した状態に維持され、前記第1の独立エンティティ及び第2の独立エンティティは、独立したタスク及び/又はコンテキスト切り換えポリシーも有することを更に特徴とする、使用法。
【請求項16】
請求項5に記載のシステムを安全動作させる方法であって、前記システムは、フレキシブルロジックユニット配置構成のうちの第1の1つ以上のフレキシブルロジックユニット配置構成が第1の機能を連携して規定し、一方、前記フレキシブルロジックユニット配置構成のうちの第2の1つ以上のフレキシブルロジックユニット配置構成が同じデータに対する第2の機能として同じ前記第1の機能を連携して規定するように構成され、該方法は、第1の結合されたフレキシブルロジックユニット配置構成によって前記第1の機能を実施し、接続が前記第1の結合されたフレキシブルロジックユニット配置構成から物理的に分離した状態に維持された第2の結合されたフレキシブルロジックユニット配置構成によって前記第2の機能を実施しながら、該実施の結果を使用することと、前記フレキシブルロジックユニット配置構成のうちの前記第1の1つ以上のフレキシブルロジックユニット配置構成において故障を検出すると、前記フレキシブルロジックユニット配置構成のうちの前記第2の1つ以上のフレキシブルロジックユニット配置構成の結果を選択することとを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、種々の種類のコンポーネント及び/又はユニットを備える電子システムに関し、したがって、電子システムは、ヘテロジニアスシステムと呼ぶことができる。本発明の電子システムは、電気システムデジタル制御ドメインにおいて適用することができ、特に、本発明の電子システムは、ハードリアルタイム及び安全制御を必要とする、純電気自動車又はハイブリッド自動車用電気モーターのパワートレインの制御を対象とする(が、それに限定しない)。
【背景技術】
【0002】
ハードリアルタイム及び安全性重視アプリケーションの文脈において再構成可能ロジック(FLU/FPGA)(自動車パワートレインコントローラーのような)を使用するとき、以下の課題が存在する。
・マルチコア処理の文脈で、アプリケーションに対するFLUリソースの排他的な割り当てをどのように保証することができるか?
・漸進的なファームウェアの加工(incremental firmware elaboration)の文脈で、既に認証されたファームウェアが後退していないこと(non-regression)をどのように保証することができるか?
【0003】
特許文献1に開示されるシステム・オン・チップ構成は、プロセッサ100と可能な組み合わせで、複数の再構成可能なゲートアレイデバイス1001,1002,1003と、ゲートアレイデバイス1001,1002,1003を接続しスケーラブルに配置可能なネットワークオンチップ1004と、を含む。この構成は、複数のデバイス1001,1002,1003のうちの1つのデバイスに1組の処理モジュールをマッピングし、複数のデバイス1001,1002,1003のうちの1つのデバイスに格納された処理モジュールの相互動作を制御するためのソフトウェアコード部分を内部に格納したマイクロコントローラとして、複数のデバイス1001、1002、1003のうちの別のデバイスを構成することによって動作するのに適している。したがって、この構成は例えば、異なる計算精度レベルを処理するように適合される。
【0004】
現在の技術水準の解決策
単一のFPGA
上記で述べたように、単一の基本eFPGAを有することは、そこで実行される全てのアプリケーションが、単一のFPGA構成ビットストリームの一部として必ずマージされるため、問題となる。
【0005】
複数のFPGA
簡単な解決策は、図20(左側)に示すように、マトリクスを複数のより小さいマトリクスに分割すること(4つのCPU/4つのFLUを有する例)である。
【0006】
この解決策は、FPCUで実行される(最大)4つのアプリケーションの厳格な独立性を可能するために、明らかにOKである。そのため、4つのアプリケーションが互いに独立であることを立証することが簡単である。
【0007】
また、各アプリケーションは別個のFLUビットストリームにおいてエンコードされるため、アプリケーションのうちの1つを更新することは、他のアプリケーションを再コンパイルすることを必要としない。
【0008】
しかしながら、このアーキテクチャは柔軟性の深刻な欠如に苦しむ。実際、1つの非常に複雑なアプリケーションのみを実行したい場合はどうか?この場合、このアプリケーションのFLU部分は、FLUの複数の部分のうちの1つの中におそらくは入らないことになる。そのため、アプリケーションは、4つのハードウェアピースに分割されなければならない。そして、各ピースは、4つのFLU部分内に独立にマッピングされるものとする。
【0009】
これは、技術的に可能であるが、実際には、以下の理由でほとんど使用不能である。
・FLUの異なる部分は、SOCインターコネクトを通して通信する必要があり、これは、
〇アプリケーション性能がこのデータフローボトルネックによって強く影響を受けることになる、
〇インターコネクト通信は、各パーティションにおいて関連するプロトコル管理のマッピングを必要とする。これは、FLUリソースの大量浪費である、
〇この通信は、リアルタイム制約の観点から深刻である場合があるインターコネクト上での余分なトラフィックにつながることになる、
という影響を有する、
・どのEDAツーリングも、FLU部分の間でロジックを自動的に分割し、必要に応じて、インターコネクト通信ブリッジを挿入するのに十分にインテリジェントではない。そのため、アプリケーション分割は、設計時に手作業で行われなければならない。これは、生産性の観点から問題である。
【0010】
部分的再構成
一部のFPGAベンダーは、ベンダーのFPGAマトリクスの「部分的再構成」を提供する。その概念は、新しい機能を、既にマッピングされたFPGA上にマッピングすることを可能とすることである。この技術は、提示される課題に対する回答を部分的に与える。
【0011】
しかしながら、以下の問題が、部分的再構成に関して残ったままである。
【0012】
FPGAで実行されるアプリケーションの独立性を立証することは、たとえ、独立したビットストリームにそれらが別々によってマッピングされた場合でも、非常に難しい。実際には、部分的再構成は、ツーリングによって完全に扱われ、結果の観点から必ずしも予測可能でない。これは、安全解析のために許容可能でない。
【先行技術文献】
【特許文献】
【0013】
【文献】欧州特許出願公開第1713007号明細書
【発明の概要】
【発明が解決しようとする課題】
【0014】
本発明は、上記課題に対する特定のアプローチを可能にする特定の専用コンポーネントを有する電子システムを提供する。
【課題を解決するための手段】
【0015】
本発明は、種々の種類のコンポーネント及び/又はユニットを備える電子システムに関し、したがって、電子システムは、ヘテロジニアスシステムと呼ぶことができ、上記で述べたドメインを対象とする。
【0016】
本発明は、特別な境界「SBOX」要素を有する別個のeFPGAマトリクスが、隣接マトリクスを、FPGAツーリングの観点からそれらが単一マトリクスであるかのように「マージする(merge)」ことを可能にする「空間的分化(spatial segregation)」を可能にする、SBOX回路及び/又は特別な制御構造等の特定のコンポーネントを備える、電子システムに関する。
【0017】
本発明の第1の態様において、横並びに配置されるとともに、ペアワイズ(pair-wise)で物理的に接続されるか又は分離されるように適合される複数のフレキシブルロジックユニット配置構成500と、内部の各電子制御システムが上記フレキシブルロジックユニット配置構成のうちの1つに一意に関連付けられる複数の電子制御構造とを備え、当該電子制御構造は、それぞれの配置構成の接続又は分離とのペアワイズで物理的に接続又は切り離されるアライメントであるように適合される、システム。
【0018】
明確にするために、提案されるシステムは、フレキシブルロジックユニット配置構成を、ランタイム(run-time)ペアワイズで物理的に接続するか又は分離することを(制御構造のような必要なサポート構造を設けることによって)可能にし、したがって、両者の間の選択は、FLU構成の一部である或るものであり、これは、回路設計時にフリーズされる選択ではない。
【0019】
本発明の第2の態様において、第1の態様のシステムによって可能にされる種々の方法及び使用事例であって、2つ以上の独立した機能が、ともに結合される1つ以上のフレキシブルロジックユニット配置構成によって規定されるように上記システムを構成することができ、上記機能のそれぞれが独立であり、これらの方法は、それらの機能に関連付けられた(結合された)配置構成によって規定された上記機能に対して、それらの機能に関連付けられた(結合された)配置構成間の(上記回路による)接続を物理的に分離した状態に維持しながら、作用すること(タスク又はコンテキスト切り換え、(部分的)再構成、安全動作を実施すること、及び/又はその組み合わせ等)を含むことを特に利用する、種々の方法及び使用事例。
【0020】
本発明の第3の態様において、コンピューターシステム上で実行されると、上記方法のうちの任意の方法をコンピューターシステムに実行させるコンピューター可読コードを含むコンピュータープログラム製品、及び、コンピュータープログラム製品を記憶する関連する非一時的機械可読記憶媒体が提供される。
【図面の簡単な説明】
【0021】
図1】(i)複数の電子コンポーネント(CPU、ペリフェラル)と、(ii)プログラマブルロジックマトリクス又はフレキシブルロジックユニット(FLU:flexible logic unit)であるハードウェアプログラマブルユニットとを備える現在の技術水準のヘテロジニアスハードウェア(FPCU)システムを示す図である。
図2】本発明による、(i)複数の電子コンポーネント(CPU、ペリフェラル)と、(ii)プログラマブルロジックマトリクス又はフレキシブルロジックユニット(FLU)であるハードウェアプログラマブルユニットとを備えるヘテロジニアスハードウェア(FPCU)システムを示す図であり、FLUは、分化されるか又は分化されるように適合される。
図3】単一の分離ビットを使用するセレクター(マルチプレクサー)を備える、その信号ルーティングロジックを有する、本発明において必要とされるSBOX回路の例示的な実施形態を示す図である。
図4】3つの分離ビットを使用するセレクター(マルチプレクサー)を備える、その信号ルーティングロジックを有する、本発明において必要とされるSBOX回路の代替的な例示的な実施形態を示す図である。
図5】ルーティングロジックと別個の、上記出力又は入力を物理的に分離する手段、及び分離(構成)ビット(複数の場合もある)又は情報を共有する手段を示す、これらのSBOX回路の実施形態の概略的一般化を示し、2つのそのようなSBOX回路が、フレキシブルロジックユニット(FLU)(マトリクス)境界においてどのように接続されるかを更に示す図である。
図6】分離済み側面(太線)を示し、かつ、入力が分離されることが可能である(太線)ことを示す、典型的に角でないSBOX回路の抽象的表現、及び、そのようなSBOX回路を結合する方法を示す図である。
図7】分離済み側面(太線)を示し、かつ、入力及び出力がともに、分離されることが可能である(太線)ことを示す、典型的に角でないSBOX回路の抽象的表現、及び、そのようなSBOX回路を結合する方法を同様に示す図である。
図8】分離済み側面(太線)を示す、代替のSBOX回路の抽象的表現を同様に示す図である。左上図は入力側面分離の実施形態を示すのに対し、右上図は、その出力側面の変形形態を示す。図6図7の角でないSBOX回路は、典型的には4つの入力出力側面を有するが、角のSBOX回路を、左下図に示すより少ない入力出力側面を有するように選択してもよい。これまでに示した種々の実施形態は1つの分離済み側面を有するが、右下の図は、同様に、2つの側面に分離機能を設けることができることを示す。
図9】複数のフレキシブルロジックユニット(ユニット)配置構成を備えるフレキシブルロジックユニットシステムを示す図であり、各配置構成は、横並びに(2Dアレイで)配置された複数の計算ブロックと、上記配置構成の境界に設けられる複数の入力出力ブロック(IOB)と、複数の接続ブロック(CB)とを備え、上記(FLU)(ユニット)配置構成のそれぞれは、複数の(SBOX)(ブロック)回路を更に備え、複数の(SBOX)(ブロック)回路は、(同様に)上記配置構成の境界に設けられ、同じ配置構成の上記計算ブロック、上記入力出力ブロックに接続可能であり、同じ配置構成内で(上記接続ブロック(CB)を介して)間接的に又は別の配置構成に属するときに直接的に互いに接続可能である。
図10】考えられる相互接続スキームを示す、直前の図のシステムの一実施形態を示す図である。
図11】複数のフレキシブルロジックユニット(ユニット)配置構成(1行で配置される)を備える、そのようなフレキシブルロジックユニットシステムの抽象的表現を示す図であり、各フレキシブルロジックユニット配置構成は、フレキシブルロジックユニット(配置構成)の外部で入力又は出力機能を提供するために、上記配置構成の境界に設けられる複数の入力出力ブロック(IOB)を有し、一方、上記フレキシブルロジックユニット(ユニット)配置構成のそれぞれは、複数の(SBOX)(ブロック)回路を更に備え、複数の(SBOX)(ブロック)回路は、(同様に)上記配置構成の境界に設けられ、フレキシブルロジックユニットの内部で入力及び/又は出力機能を提供し、したがって、別の配置構成に属するときに直接的に互いに接続可能である。
図12】2D方式で配置され、したがって、2次元で分離可能又は接続可能な、複数のフレキシブルロジックユニット(ユニット)配置構成を備える、そのようなフレキシブルロジックユニットシステムの抽象的表現を示す図である。
図13】(i)複数の電子コンポーネントと、(ii)上記で説明したプログラマブルロジックマトリクス又はフレキシブルロジックユニットであるハードウェアプログラマブルユニットとを備えるヘテロジニアスハードウェアシステムであるシステムの抽象的表現を示す図であり、第1の結合される配置構成は(その入力出力ブロックを介して)第1の電子コンポーネントに接続され、第2の結合される配置構成は(その入力出力ブロックを介して)第2の電子コンポーネントに接続される(上記接続は、直接的としてもよいし、更なる(スレーブ)インターフェース回路、好ましくは1つの配置構成について1つのインターフェース回路によって間接的としてもよい)。
図14】フレキシブルロジックユニットシステムの抽象的表現を示す図であり、システムは、ここで横並びに配置されるとともに、それぞれペアワイズで(したがって、行に沿って伸長可能に)物理的に接続されるか又は分離されるように適合される複数の(FLU)(ユニット)配置構成と、内部の各電子制御システムが上記(FLU)(ユニット)配置構成のうちの1つに(一意に)関連付けられる複数の(電子)制御構造とを備え、当該(電子)制御構造は、(同様に)それぞれペアワイズで(したがって、行に沿って伸長可能に)接続されるか又は接続可能であり、特に、上記(電子)制御構造(同じ種類の制御構造に接続可能)は、(FLU)(ユニット)配置構成及びその周りのロジックを制御する命令又は信号を生成する(ことが可能な)典型的な制御システムを備える。
図15】典型的な制御システム又は信号生成を有するそのような(電子)制御構造及びその周りのロジックの一実施形態を示す図であり、ロジックは、ここでは、セレクター(マルチプレクサー)及び記憶手段(Dフリップフロップ)を備える。
図16】そのような(電子)制御構造がどのように接続されるか、及び、或る特定の構成について、制御フローがこの接続によってどのように編成されるかを示す図である。
図17】そのような(電子)制御構造がどのように接続されるか、及び、それの回路実現を示す図である。
図18】接続されていない(電子)制御構造、及び、制御フローが、その場合どのように編成されるかを示す図である。
図19】FLU(ユニット)配置構成の種々の編成を概略的に示す図である。
図20】FLU(ユニット)配置構成及びそれらの制御構造の抽象物を示す図である。
図21】本発明による、(i)複数の電子コンポーネント(CPU、ペリフェラル)と、(ii)プログラマブルロジックマトリクス又はフレキシブルロジックユニット(FLU)であるハードウェアプログラマブルユニットとを備えるヘテロジニアスハードウェア(FPCU)システム、及び、FLUを分化することができる種々の方法を示す図である。
図22】本発明による、(i)複数の電子コンポーネント(CPU、ペリフェラル)と、(ii)プログラマブルロジックマトリクス又はフレキシブルロジックユニット(FLU)であるハードウェアプログラマブルユニットとを備えるヘテロジニアスハードウェア(FPCU)システム、及び、FLUを分化することができる種々の方法を示す図である。
図23】(本発明によって分化される)(FLU)システムを安全動作させることに寄与する本発明の更に有利な実施形態を示す図であり、フォールトマネージャー(fault manager)は、上記(FLU)(ユニット)配置構成のうちの1つ以上において故障を検出すると、上記(FLU)(ユニット)配置構成のうちの1つ以上を適切に動作させるという結果を選択する。
図24】本発明の概念によって可能となる或るパワー最適化を説明する図である。
【発明を実施するための形態】
【0022】
課題
本発明のシステム、及び、必要とされるその基礎になるコンポーネントの入念な説明に着手する前に、解決される2つの課題がより詳細に検討される。
【0023】
決定論的マルチコア処理
電気自動車及びハイブリッド自動車のデジタル制御は、益々複雑であり、したがって、益々多くの計算パワーを必要とする。さらに、1つの単一CPUデバイスを用いて複数のシステムを制御しようと試みる傾向が存在する。
【0024】
例:電気自動車において、同じMCUを用いて電気モーター(複数の場合もある)及び電池DC/DCコンバーターの両方を制御することができることは、システムコストの観点から、また全体システムの効率の観点から貴重な恩恵である。実際には、両方の制御アルゴリズム間で一部のリアルタイム情報を共有することが可能である。
【0025】
したがって、MCUプロセッサは、複数のアプリケーションを並列に実行するために、複数のCPUコアを埋め込む傾向がある。
【0026】
この種のシステムにおいて、アプリケーションファームウェアが開発されるときに行われるクリティカルな立証(criticaldemonstration)が存在する。
・他のアプリケーションの活動がどんなものであれ、各アプリケーションのリアルタイム制約が保証されることを立証する必要性(ハードリアルタイム課題)。
・1つのアプリケーションが何らかの理由でうまく働いていないときに、他のアプリケーションが影響を受けないことを立証する必要性(機能安全性課題)。
【0027】
純粋なソフトウェア制御のみを使用するMCUデバイスにおいて、以下の設計規則が、上記課題を保証するために通常使用される。
・1つのCPUコアについて1つのアプリケーションのみ
・クリティカルリソース(特に、メモリ)に対する排他的アクセス
・SOCインターコネクトに関する効率的な調整方策(arbitrationstrategy)(サービス品質)
【0028】
ここで、同じダイ上にCPUコア及び埋め込み式FPGAマトリクス(FLU)を有するFPCUデバイスの具体的な事例を考える。この文脈において、「アプリケーション」は、CPUコアが実行するソフトウェアとFLU内で実行されるハードウェア計算の混合体(mix)である。ソフトウェア部分は、上記で説明したように管理することができる。しかしながら、アプリケーションのFLUマッピング部分について、解決策が規定されなければならない。なぜならば、デフォルトで、FLU内で実行される全てのアプリケーションは、単一のビットストリームにマージされるからである。
【0029】
漸進的なファームウェア認証
これは機能安全性要件である。
【0030】
やはりマルチコアSOCに関して、以下の状況を想像する。
【0031】
或る自動車製造業者が、全てのデジタル処理を管理するマルチコアを有する中央CPUデバイスを使用して2つの電気モーター及びDC/DCコンバーターを制御するシステムを設計した。このシステムは、安定性がありかつ完全に妥当性確認されている。
【0032】
その後、自動車製造業者は、何らかの理由でDC/DC制御を更新する必要性を感じる。明らかに、この状況で、自動車製造業者は、モーター制御アルゴリズムが変更によって影響を受けないことを確信したいと思う。(コンパイル済みバイナリーコードでさえも、修正されるべきでないことを意味する)
【0033】
(自動車製造業者が上記節で述べた設計規則を使用したと仮定する)純粋なソフトウェア計算において、手順はかなり簡単である。DC/DCアプリケーションは、別個に再コンパイルされ、当然他のアプリケーションに影響を及ぼさないことになる。
【0034】
ここで、CPUがFPCUである場合、計算のFLU部分は、全てのアプリケーションが単一のFLUビットストリームにマージされるため、注意深く扱われなければならない。そのため、アプリケーションを変更することは、必然的に、FLUで実行される全てを再コンパイルすることを意味する。
【0035】
本発明の概念
「空間的分化」という本発明の概念は、隣接マトリクスを、FPGAツーリングの観点からそれらが単一のマトリクスであるかのように「マージする」ことを可能にする、特別な境界「SBOX」要素を有する別個のeFPGAマトリクスに基づく。
【0036】
そのため、図21に示す本発明者らの4/4例に関して、種々のeFPGA構成は、FPGA合成及び配置配線(place-n-route)EDAツーリングの観点から管理することができる。これを行うと、課題は、設計時間又はハードウェア使用オーバーヘッドがない状態で、最大eFPGAリソース使用柔軟性を維持しながら完全にカバーされる。
【0037】
本発明の概念が、ここで更に説明される。
【0038】
図14に示すように、本発明は、(FLU)システム400に関し、(FLU)システム400は、横並びに配置されるとともに、(構成情報に従って)ペアワイズで(行、列、又は両方に沿って伸長可能に)物理的に接続されるか又は分離されるように適合される複数の(FLU)(ユニット)配置構成500、510と、内部の各電子制御システムが上記(FLU)(ユニット)配置構成のうちの1つに(一意に)関連付けられる複数の(電子)制御構造(上記構成情報を受信する)とを備え、当該(電子)制御構造は、(上記構成情報に従って)ペアワイズで物理的に接続又は切り離されるように適合される。
【0039】
実際には、FPCUデバイスにおいて、FLUマトリクスは、
・FLUマトリクスクロック/リセット発生
・FLUマトリクスクビットストリームローディング
・FLUマトリクスクコンテキストスイッチシーケンス制御
・...
を担当する、FLUコントローラーに必ず関連付けられる。
【0040】
これらのシーケンスは、FLUマトリクスとFLU制御との間を行き来する専用信号に基づく。本発明による分化アーキテクチャにおいて、各FLUパーティションは、1つのコントローラーに必ず関連付けられる。これは、全てのパーティションが互いに分離されるときにOKである。
【0041】
しかしながら、2つ以上のパーティションがともに結合される場合、関係するFLUコントローラー間で何らかの同期化が保証されなければならない。
・結合FLUパーティションの全てのクロック及びリセットは同時でなければならない
・結合FLUパーティションのコンテキストスイッチシーケンスは同時でなければならない
・...
【0042】
そのため、この同期化を保証する手段が存在しなければならない。
【0043】
本発明者らの解決策は、「マージ済み(merged)」FLUパーティションのグループ内のFLUコントローラーのうちの1つが上記で挙げたアクションについてマスターの役割を有する、「マスターFLUコントローラー」の概念に基づく。
【0044】
図20の例は、マスターFLUコントローラーの概念を説明する。この例において、
・コントローラー0は、FLUグループ0+1+2のマスターである
・コントローラー1及び2は、このグループのスレーブである
・コントローラー3は、グループ3のマスターである
【0045】
上記例において、FLUマトリクス0/1/2のクロック及びリセットは、全てのコントローラーによって同時に生成されなければならない。
【0046】
これを可能にするために、ディジーチェーンが、図15に説明するコントローラー内の基本構造に基づいて、全ての「隣接」コントローラー間で構築される。全てのコントローラーは、図17に示すように横並びに接続される。
【0047】
したがって、FLUパーティションがその最も左のFLUパーティションとの結合である場合、対応するコントローラーはともにチェーン接続され、最も左のコントローラーは、そのグループのマスターになる。
【0048】
本発明者らの例について、コントローラーチェーンは、図16におけるように見えることになる。
【0049】
留意点:
・図面の下部の「前向き」チェーンは、マスターコントローラーから最も右のコントローラーまで信号を伝搬させるように設計される。この経路上にフリップフロップが全くないか、又は複数のフリップフロップが存在することができる。このことは、機能の観点から重要ではない(単に、レイテンシー遅延が挿入される)。しかしながら、複数のフリップフロップを置く可能性を有することは、設計のタイミング収束(timing closure)の観点から重要である(過度に長い経路を回避する)。
・後ろ向き経路は、信号をマスターに戻すように伝搬させる。この経路上で、グループ内の全てのFLUマトリクスに対して信号の同期挙動を保証するために、フリップフロップを有することができない。
【0050】
一般的に言えば、そのような(FLU)システム400内で、これらの上記(電子)制御構造700(同じ種類の制御構造に接続可能)は、(FLU)(ユニット)配置構成500、510の制御用の制御信号(命令又は信号(クロック、リセット又はコンテキストスイッチ信号等))を生成する(ことが可能な)制御システム710と、第1の(外部の)制御システム(場合によっては、他の同様の(電子)制御構造の一部である)から第1の制御信号を受信する第1の制御信号入力手段720と、(場合によっては、更に別の同様の(電子)制御構造からの)第2の制御信号を受信する第2の制御信号入力手段730と、(近傍の)配置構成が物理的に接続されるか又は分離されるかを示す情報(構成ビット)を入力する構成入力手段740と、制御ロジックとを備え、制御ロジックは、上記情報に基づいて、上記制御システムによって生成される制御信号(命令又は信号)を(上記制御システムの関連付けられた(FLU)(ユニット)配置構成に対する)出力760として選択するか、又はそうでなければ、上記第1の制御信号を上記更に別の制御構造に(任意選択で遅延を伴って)通過させる(750)とともに、上記第2の制御信号を(上記制御システムの関連付けられた(FLU)(ユニット)配置構成に対する)出力として使用し、上記第2の制御信号を上記別の制御構造に通過させる(770)ことが可能である。
【0051】
そのような制御構造の例示的な実施形態は、図17に示され、この図には、(電子)制御構造の制御ロジックが、(2つの)セレクター800、810、好ましくはマルチプレクサー(例えば、上記構成ビットである上記情報によって制御される)を備えることが示される。電子制御構造の制御ロジックは、通過経路内に記憶手段820、好ましくは(D)フリップフロップを備える。
【0052】
図9に示すように、本発明は、複数の(FLU)(ユニット)配置構成500、510を備える(FLU)システム400を含み、(FLU)、各配置構成は、複数の計算ブロック410((2Dアレイで)横並びに配置される構成可能ロジックブロック(CLB)及び/又は信号処理ユニット(SPU))と、当該配置構成の境界に設けられる複数の入力出力ブロック(IOB)420と(、複数の接続ブロック(CB)430と)を備え、上記(FLU)(ユニット)配置構成のそれぞれは、複数の(SBOX)(ブロック)回路100、105、110を更に備え、複数の(SBOX)(ブロック)回路100、105、110は、(同様に)上記配置構成の境界に設けられ、同じ配置構成の上記計算ブロック、上記入力出力ブロックに(直接的に又は上記接続ブロック(CB)を介して間接的に)接続可能であり、同じ配置構成内で(上記接続ブロック(CB)を介して)間接的に又は別の配置構成に属するときに直接的に互いに接続可能である。好ましくは、上記は、上記で論じた本発明のコントローラーの態様により補完される。
【0053】
より大きいマトリクスとして働くことを可能にするために、本質的に、IOBが、FLUの外部の通信(入力、出力)を保証するために設けられ、一方、(SBOX)回路が、FLUの内部の通信のために設けられることは注目に値する(ただし、それらは、必ずしもそれに限定されない)。
【0054】
(FLU)(ユニット)配置構成500、510が、独立に、自律的に働くことが可能であること、したがって、それ自身のビットストリームによってプログラミングされるか又は構成されることが可能であることが意図されていることもこの段階で強調するに値する。
【0055】
一般的に言えば、上記(SBOX)回路(異なる配置構成に属する)は、上記物理的に分離可能な入力又は出力(複数の場合もある)のうちの少なくとも1つのみによって、かつ任意選択で、それぞれ、上記物理的に分離可能な出力又は入力のうちの2つによって直接的に接続される。図6に示すように、唯一の必要条件は、これらの回路のうちの2つの回路の接続に沿って、1つの分離の可能性が存在することである。図7に示すように、2つの分離の可能性が予見される代替形態も可能であり、追加のセキュリティが提供される。
【0056】
図9の例示的な実施形態において、同じ配置構成の近傍の計算ブロックを、少なくとも互いに、又は、同じ配置構成の入力出力ブロックと接続する、上記計算ブロック又は入力出力ブロック間に配置された複数の接続ブロック(CB)430が更に観測される。
【0057】
代替の考案される発明は、(FLU)システム400を提供し、(FLU)システム400は、(2Dアレイで)横並びに配置される複数の計算ブロック410(構成可能ロジックブロック(CLB)及び/又は信号処理ユニット(SPU))と、複数の入力出力ブロック(IOB)420と、(複数の接続ブロック(CB)430と)を備え、システムは、複数の(SBOX)(ブロック)回路100、105、110を更に備え、複数の(SBOX)(ブロック)回路100、105、110は、上記計算ブロック、上記入力出力ブロックに(上記接続ブロック(CB)を介して)接続可能であり、(上記接続ブロック(CB)を介して)間接的に又は直接的に互いに接続可能である。
【0058】
より一般的に言えば、そのような(FLU)システムは、内部ルーティングロジックを規定する多くのブロックを備えるため、本発明によって提供される分化機能を保証するため、(SBOX)回路が、そのような内部ルーティングロジックの一部として設けられることを規定することができる。
【0059】
FLUマトリクス構造が、基本的に、ルーティングチャネルのネットワーク上でともに相互接続されるスイッチボックスを交互配置されるロジック機能(LUT、SPU、RAM...)のタイルであることを想起されたい。スイッチボックス(SBOX)は、アプリケーションビットストリームからロードされるFPGA構成情報に従ってチャネル信号をルーティングするマルチプレクサーのセットからなる。SBOXの基本構造は、図3の部分150(1つのチャネルのみを示す)に記載される。空間的分化の概念は、この標準的なSBOXを修正したものに基づく。このコンポーネントの一方の側面に、特定のロジックが、「分離」能力を提供するために付加される。
【0060】
分離ロジックは、以下を担当する。
1.(必須):所与の側面の各入力を一定値に設定すること。
2.(任意):所与の側面の各出力を一定値に設定すること。
【0061】
分離機構は、考慮されるFLU部分の構成ビットストリームの一部である特定の構成ビットによって制御される。
【0062】
図3及び図4は、考えられる分離手段の或る例を与える。
【0063】
したがって、本発明は、少なくとも3つのIO(入力出力)側面(それぞれは、少なくとも1つの入力及び1つの出力を有する)を有する以下の(SBOX)回路100、110、200、300を提供し、回路は、上記入力のそれぞれを、上記出力の2つ以上に(個々に)(選択的に)方向付けるように配置され、回路は、1つ又は複数の側面における入力及び/又は出力(複数の場合もある)に対するアクセスが物理的に分離可能であり、任意選択で、入力及び/又は出力(複数の場合もある)が予め規定された値に設定可能であることを特徴とする。さらに、本発明は、4つのIO側面を有する角でない(SBOX)回路を提供する。
【0064】
SBOX回路は、上記出力又は入力を物理的に分離する手段120を有する。
【0065】
2つの例示的な実施形態が、ここで提供される。
【0066】
第1の実施形態において、(上記出力又は入力を物理的に分離する)上記手段は、(構成ビット)記憶手段130及び分離手段140(論理ANDゲート等)(実際には、少なくとも1つのそのような、記憶手段、並びに、入力用又は出力用の分離手段及び両方用の考えられる手段)を備える。
【0067】
第2の代替の実施形態において、上記手段(上記出力又は入力を物理的に分離する)は、(構成ビット)記憶手段130、及び、入力としての上記構成ビット及びセレクター制御をともに使用するセレクター(好ましくは、マルチプレクサー)(実際には、少なくとも1つの入力用又は出力用のセレクター及び両方用の考えられるセレクター)を備える。
【0068】
SBOX回路は、例えば、マルチプレクサー160を使用する、信号ルーティングロジック150を実際に有する。
【0069】
これらの特別のSBOXが、別のFLU部分に隣接する各FLU部分の側面上に置かれ、したがって、図5に示すFLUパーティション接続部として使用されることが明らかである。したがって、隣接するFLU部分は、独立である(すなわち、分離される)か、又はSBOXを通して完全に接続することができる。後者の場合、ツーリングの観点から、隣接するFLU部分を単一FLU部分と考えることが可能である。なぜならば、2つの部分の間のルーティングリソースが、各部分の内側側面の任意の地点で見出すことができるルーティングリソース(すなわち、トランスペアレント状態の(in transparent)分離ロジック)と100%同一であるからである。
【0070】
上記で論じたように、本発明は、特定の電子制御構造700(同じ種類の制御構造に接続可能)を提供し、特定の電子制御構造700は、(FLU)(ユニット)配置構成500、510の制御用の命令又は信号(クロック、リセット、又はコンテキストスイッチ信号等)を生成する(ことが可能な)制御システム710と、第1の(外部の)制御システム(場合によっては、他の同様の(電子)制御構造の一部である)から第1の制御信号を受信する第1の制御入力手段720と、(場合によっては、更に別の同様の(電子)制御構造からの)第2の制御信号を受信する第2の制御入力手段730と、(近傍の)配置構成が物理的に接続されるか又は分離されるかを示す情報(構成ビット)を入力する構成入力手段740と、制御ロジックとを備え、制御ロジックは、上記情報に基づいて、上記制御システムによって生成される命令又は信号を(その関連付けられた(FLU)(ユニット)配置構成に対する)出力(760)として選択するか、又はそうでなければ、上記第1の制御信号を上記更に別の制御構造に(任意選択で、遅延を伴って)通過させる(750)とともに、上記第2の制御信号を(その関連付けられた(FLU)(ユニット)配置構成に対する)出力として使用し、上記第2の制御信号を上記別の制御構造に通過させる(770)ことが可能である。
【0071】
(FLU)システム400をコンピューター支援設計するコンピューター実施方法の使用によって、提供されるシステムを十分に活用することができ、コンピューター実施方法は、(i)そのような(FLU)システムのテンプレートをロードすることと、(ii)計算ブロック410(構成可能ロジックブロック(CLB)及び/又は信号処理ユニット(SPU))、入力出力ブロック(IOB)420(及び接続ブロック(CB)430)の量を決定することと、(iii)(FLU)(ユニット)配置構成500、510の一部であるそのようなブロックのそれぞれの量を決定することと、(iv)そのような(FLU)(ユニット)配置構成について(SBOX)(ブロック)回路100、105、110の量を決定することと、(v)近傍配置構成の(SBOX)ブロック間の接続ラインを規定することと、(vi)規定済みの(FLU)システムを自動的に生成することとを含む。
【0072】
本発明のシステムは、異なる方法をサポートすることができる。上記で述べたように、単一のフレキシブルロジックユニットは、独立した機能を実行することができるユニットとして規定される。本発明の目的は、そのような配置構成を(SBOX機能の使用によって)安全に結合し、それにより、ともに結合される1つ以上のフレキシブルロジックユニット配置構成によって規定される2つ以上の独立した機能を規定することができることであり、やはり、上記機能のそれぞれは独立である。以下の方法は、2つの機能に関して説明されるが、本発明はそれに限定されない。
【0073】
したがって、本発明は、上記で説明した(FLU)システムを動作させる方法を提供し、上記(FLU)システムは、(FLU)(ユニット)配置構成のうちの第1の1つ以上の(FLU)(ユニット)配置構成が第1の独立した機能を連携して規定し、一方、そのような(FLU)(ユニット)配置構成のうちの第2の1つ以上の(FLU)(ユニット)配置構成が第2の独立した機能(第1の独立した機能と異なる)を連携して規定するように構成され、方法は、上記機能を、それらの関連付けられた(結合された)配置構成間の(上記SBOX回路による)接続を物理的に分離した状態に維持しながら、それらの関連付けられた(結合された)配置構成によって独立に実行することを含む。それらの機能を規定する、これらの第1の1つ以上の(FLU)(ユニット)配置構成及び第2の1つ以上の(FLU)(ユニット)配置構成のうちの上記1つ以上が、異なるクロックで動作する及び/又は更には別々にパワーダウンしてもよいことに留意されたい。
【0074】
本発明を、有利に使用することができる典型的なシステムは、(i)それぞれが、ソフトウェアプログラマブルユニット、好ましくはマイクロプロセッサコア又はグラフィックスプロセッサコアである、複数の電子コンポーネントと、(ii)説明した分化機能を有する、プログラマブルロジックマトリクスであるハードウェアプログラマブルユニットとを備えるヘテロジニアスハードウェアシステムであり、第1の結合される配置構成は(その入力出力ブロックを介して)第1の電子コンポーネント600に接続され、第2の結合される配置構成は(その入力出力ブロックを介して)第2の電子コンポーネント640に接続される(上記接続は、直接的としてもよく、更なる(スレーブ)インターフェース回路620、630、好ましくは1つの配置構成について1つのインターフェース回路によって間接的としてもよい)。
【0075】
代替のシステムは、(i)それぞれが、任意選択で電気エンジン制御ユニットハードウェア機能に専用である(SOC)周辺ハードウェアユニットである、複数の電子コンポーネントと、(ii)説明した機能を有する、プログラマブルロジックマトリクスであるハードウェアプログラマブルユニットとを備えるヘテロジニアスハードウェアシステムであり、第1の結合される配置構成は(その入力出力ブロックを介して)第1の電子コンポーネントに接続され、第2の結合される配置構成は(その入力出力ブロックを介して)第2の電子コンポーネントに接続される(上記接続は、直接的としてもよく、1つ以上の更なる(マスター)インターフェース回路、場合によっては1つの配置構成について1つのインターフェース回路によって、任意選択で、(システムへの入力の場合)(直接)マルチプレクサー、好ましくは1つの配置構成について1つのマルチプレクサーによって間接的としてもよい)。
【0076】
別の方法は、説明した(FLU)システムを部分的に再構成することを提供し、当該(FLU)システムは、(FLU)(ユニット)配置構成のうちの第1の1つ以上の(FLU)(ユニット)配置構成が第1の独立した機能を連携して規定し、一方、そのような(FLU)(ユニット)配置構成のうちの第2の1つ以上の(FLU)(ユニット)配置構成が第2の独立した機能を連携して規定するように構成され、方法は、接続が第1の(結合された)配置構成から物理的に分離した状態に維持された第2の(結合された)配置構成によって上記第2の機能を実行しながら、第1の(結合された)配置構成を再構成することを含む。
【0077】
タスク及び/又はコンテキスト切り換えの更に別の方法が、説明した(FLU)システム内で提供され、上記(FLU)システムは、(FLU)(ユニット)配置構成のうちの第1の1つ以上の(FLU)(ユニット)配置構成が第1の独立した機能を連携して規定し、一方、そのような(FLU)(ユニット)配置構成のうちの第2の1つ以上のそのような(FLU)(ユニット)配置構成が第2の独立した機能を連携して規定するように構成され、それらの機能を規定するこれらの第1の1つ以上の(FLU)(ユニット)配置構成及び第2の1つ以上の(FLU)(ユニット)配置構成は、少なくとも2つのタスク(又は機能)を順次実行するように適合され、方法は、接続が第1の(結合された)配置構成から物理的に分離した状態に維持された第2の(結合された)配置構成によって上記第2の機能を実行しながら、第1の(結合された)配置構成についてのタスク及び/又はコンテキスト切り換えを実施することを含む。
【0078】
部分的故障に陥る(FLU)システムを、安全性を高めて動作させる更なる方法が開示され、当該(FLU)システムは、上記SBOX回路によって接続された複数の(FLU)(ユニット)配置構成が、第1の機能を連携して実行することが可能であるように構成され、方法は、上記複数の(FLU)(ユニット)配置構成が上記SBOX回路によって接続されている間に、上記第1の機能を実行することと、上記(FLU)(ユニット)配置構成のうちの1つにおいて故障を検出すると、上記実行を終了することと、残りの依然として動作する上記(FLU)(ユニット)配置構成を再構成することと、故障した上記(FLU)(ユニット)配置構成と、残りの依然として動作する上記(FLU)(ユニット)配置構成との間の接続を物理的に分離した状態に維持しながら、再構成した動作(第2の機能)を実行することを含む。
【0079】
論述した(FLU)システム内でのタスク及び/又はコンテキストの切り換えの代替的な使用法であって、上記(FLU)システムは、(FLU)(ユニット)配置構成のうちの第1の1つ以上の(FLU)(ユニット)配置構成が第1の独立エンティティを連携して規定し、一方、そのような(FLU)(ユニット)配置構成のうちの第2の1つ以上の(FLU)(ユニット)配置構成が第2の独立エンティティを連携して規定するように構成され、第2の(結合された)配置構成の接続は該第1の(結合された)配置構成から物理的に分離した状態に維持され、上記第1の独立エンティティ及び第2の独立エンティティは、独立した(したがって、場合によっては異なる)タスク及び/又はコンテキスト切り換えポリシーも有することを更に特徴とする、使用法。
【0080】
また、(FLU)システムを安全動作させる方法が記載され、当該(FLU)システムは、(FLU)(ユニット)配置構成のうちの第1の1つ以上の(FLU)(ユニット)配置構成が第1の機能を連携して規定し、一方、そのような(FLU)(ユニット)配置構成のうちの第2の1つ以上の(FLU)(ユニット)配置構成が(同じデータに対する)同じ第1の機能を連携して規定するように構成され、方法は、第1の(結合された)配置構成によって第1の機能を実施し、接続が第1の(結合された)配置構成から物理的に分離した状態に維持された第2の(結合された)配置構成によって上記第2の機能を実施しながら、実施の結果を使用することと、上記(FLU)(ユニット)配置構成のうちの上記第1の1つ以上の(FLU)(ユニット)配置構成において故障を検出すると、上記(FLU)(ユニット)配置構成のうちの上記第2の1つ以上の(FLU)(ユニット)配置構成の結果を選択することとを含む。
【0081】
FLUパーティション配置構成
シリコン上で、異なるFLUパーティションは、どんな横並びの配置構成が図19に示されてもその配置構成内に位置することができる。しかしながら、FLUのコラムベースのマイクロアーキテクチャのために、最も現実的な配置構成は、図21の左に示す、左右インライン配置構成である。パーティションの数が制限されないことに留意されたい。
【0082】
FLUツーリング構成
FLUパーティション構造が上記節で示したように規定されると、FLUマッピングツールが異なるFLU配置構成を管理することができることを確認する必要がある。
【0083】
第1のタスクは、所与のFLUパーティション構造について構成することができる全ての考えられるFLU配置構成を規定することである。
【0084】
例:4つのFLUパーティションという本発明者らの典型的な構造の場合、図19左下によって概略的に示すように、FLUツーリングの観点から考慮される4つの基本配置構成が存在する。
【0085】
各配置構成は、マトリクスリソースを記述するツーリング構成ファイルに関連付けられる(これは、eFPGAマトリクスを用いて作業する通常の方法である)。
【0086】
ツール構成ファイルが準備できると、最終ユーザーは、望み通りにFLUパーティションを満たすために、望み通りにそれらのファイルを使用することができる。
【0087】
例:
・ユーザーは、マッピングすべき2つの小さいアプリケーションを有する場合、第1の構成を2回(各アプリケーションについて1回)使用することになる。結果は、FLUパーティション0及び1が使用され、他のパーティションがアイドル状態のままであるということになる。
・ユーザーは、1つの小さいアプリケーション及び別の大きいアプリケーションを有する場合、小さいアプリケーションについて構成1を、大きいアプリケーションについて第3の構成を使用することになる。結果は、FLUパーティション0が小さいアプリケーションを実行することになるということになる。そして、3つの残りのパーティションは、大きいアプリケーションを実行するために、単一パーティションとしてマージされることになる。
【0088】
本発明によって可能にされる更なる有益な使用法
分化されたクロック及びリセット
各FLUコントローラーは、ユーザーが規定したレートでFLUクロックを生成するようにプログラミングすることができる。この機構は、各FLUパーティションについて独立に適用される。なぜならば、FLUパーティションのそれぞれが別個のFLUコントローラーを有するからである。上記節において、同じFLUグループの全てのFLUマトリクスの共通クロックを可能にするために、そのグループのFLUコントローラーがどのように自身を同期化することができるかを提示した。
【0089】
したがって、
・グループ内の全てのFLUマトリクスは、厳密に同じクロック信号を有することを保証される。
・FLUマトリクスの異なるグループは、異なるクロック周波数を有することができる。
・使用中でないFLUパーティションは、アイドルクロックを有することができる(パワー消費最適化)。
【0090】
分化されたコンテキストスイッチ
FLUマトリクスが、本発明に従って、コンテキスト切り換えが可能である場合、この機構は、各FLUパーティションについて独立に適用される。なぜならば、FLUパーティションのそれぞれが別個のFLUコントローラーを有するからである。上記節において、同じFLUグループの全てのFLUマトリクスの共通制御を可能にするために、そのグループのFLUコントローラーがどのように自身を同期化することができるかを提示した。
【0091】
したがって、
・グループ内の全てのFLUマトリクスは、同じコンテキストスイッチ制御を有する。
・FLUマトリクスの異なるグループは、異なるコンテキストスイッチシナリオを有する。
【0092】
例:
図22左に示すFLUグループ化(すなわち、3つのアプリケーション)を想像する。
【0093】
このアーキテクチャにおいて、以下のコンテキスト切り換え方策を想像することができる。
・グループ0:コンテキストスイッチなし
・グループ1:2つのビットストリーム間の高速コンテキストスイッチ(ピンポンモード)
・グループ2:3つのビットストリーム間の低速コンテキストスイッチ
【0094】
パワー消費最適化
本発明者らの分化概念において、FLUパーティションは物理的に離れているため、FLUパーティションを別個のパワードメインに埋め込むことが可能である。
【0095】
したがって、デバイス計算パワー要件に従って、FLUの任意のパーティションのパワーをスイッチオン/オフすることが可能である。
【0096】
FLUの細粒度(fine grain)パワー消費最適化を可能にするために、コンテキスト切り換え、パワー切り換え、及びクロックゲート制御を混合することも可能である。これは、CPUコアパワー状態について存在するものと全く同様である。
【0097】
例:2つのFLUマトリクスグループ、及び、比較的低い計算パワー要件で実行される2つのアプリケーションを有することを想像されたい。この場合、本発明者らのアーキテクチャは、シリコン技術のパワー特性に応じて、これらのアプリケーションを異なるように実行することを可能にする。
【0098】
図24の一番上のプロファイルは、高い静的漏洩(staticleakage)を有する技術ノードにとってより有益であるものとする。
【0099】
図24の一番下のプロファイルは、低い静的漏洩を有する技術ノードにとってより有益であるものとする。
【0100】
安全に関連する利益
クロック分化
機能的安全性の観点から、FLUグループについて別個のクロック及びリセット制御を有するという大きい利益が存在する。実際には、FLUクロック発生器が故障する場合、1つのFLUグループのみが影響を受ける。全ての他のグループは、適切に作業し続ける。
【0101】
故障時動作継続シナリオ(FAIL OPERATIONAL SCENARIO)
本発明者らのFLUマトリクスは、ランタイム時に過渡的エラー(transitoryerror)を検出する複数の機構を埋め込む。
・構成完全性(Configuration integrity)
・ユーザーフリップフロップ完全性
【0102】
また、(ウォッチドッグ又はイベントグラフチェッカーのように)FLUが適切に動作していることを確認するようにFPCUの安全性モニタリングモジュールをプログラミングすることが可能である。
【0103】
上記機構のうちの任意の機構によって検出されるエラーの場合。優先アクションは、故障しているFLUマトリクスを停止させ、その全ての出力を「安全」状態に置くことである。
【0104】
この方策は、或るアプリケーションの場合にOKであるが、他のアプリケーションに関して危険である可能性がある。
・パワートレインモーター制御の場合、それはOKである。すなわち、モーターは、もはや駆動されないことになり、自動車は、最終的にゆっくり停止することになる。
・しかしながら、電気ステアリング制御の場合、この方策は、致命的である場合がある。ステアリングの制御を失うわけにはいかない。
【0105】
後者の場合、故障しているシステムの代わりに、冗長システムを使用することができる「故障時動作継続」シナリオが必要とされる。
【0106】
以下の使用法を有するFLU分化のおかげで、これを行うことができる。
・2つのFLUグループを持つとする。
・厳密に同じビットストリームによって両方のグループをプログラミングするとする。
・両方のグループが厳密に同じ入力データを受信するように管理するとする。
〇有効な「アクティブ」グループを指定する1つの入力を除く。この情報は、FPCUのフォールトマネージャーから来るべきである。このフォールトマネージャーは、リセット時に一方のグループをアクティブ化し、エラーが第1のFLUグループに関して検出される場合に、他方のグループに自動的に切り換わるようにプログラミングされるものとする。
【0107】
ランタイム時に、両方のグループは並列に始動される。そのため、両方のグループは、ともに、サイクルごとに同じように動作する。
【0108】
したがって、フォールトマネージャーが一方のグループから他方のグループに切り換わると、システムレベルでの影響がない状態で遷移が行われる。これは図23に示される。
【符号の説明】
【0109】
100 回路
105 回路
110 回路
120 手段
130 記憶手段
140 分離手段
150 信号ルーティングロジック
160 マルチプレクサー
200 回路
300 回路
400 システム
410 計算ブロック
420 入力出力ブロック
430 接続ブロック
500 フレキシブルロジックユニット配置構成
510 配置構成
600 電子コンポーネント
620 インターフェース回路
630 インターフェース回路
640 電子コンポーネント
700 電子制御構造
710 制御システム
720 制御信号入力手段
730 制御信号入力手段
740 構成入力手段
750 矢印
760 出力
770 矢印
800 セレクター
810 セレクター
820 記憶手段
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24