(57)【要約】  本発明は、デジタル制御がFPCU構成要素を用いて取り扱われる電気機械システムのコンテキストに適用される。本発明は、自動車の分野に限定されず、これと同様の応用分野に適用される。本発明は、或る期間にわたるFLUの全ての計算リソースの使用量を最大にすることを目的として、マイクロプロセッサにおけるタスクコンテキストスイッチと同様に、FLUのeFPGAマトリックスにおいてマッピングされたアプリケーションタスクの高速で安全なタイムスライスされたコンテキストスイッチを可能にする。【選択図】図１
2021509510.tif 000002
【特許請求の範囲】
【請求項１】
装置（300）であって、
（A）（i）（a）複数のプログラマブルロジックユニット（210）と、（b）複数の第1の1ビットクロック制御記憶素子（20）とを有するマトリックス（200）であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、前記第1の1ビットクロック制御記憶素子のそれぞれについて、前記第1の1ビットクロック制御記憶素子のタスクごとに前記それぞれの値をローカルにストア又はリストアするデータストアリストア回路（10）が設けられる、マトリックスと、
（B）前記マトリックスの外部にあるデータメモリ（310）と、
を備え、
前記データストアリストア回路は、（i）1つのタスクに関連するデータを前記メモリから前記データストアリストア回路内にプリロードし、及び／又は（ii）前記データストアリストア回路における1つのタスクに関連するデータを前記データメモリにポストストアするために設けられ、それによって、前記プリロード及び／又は前記ポストストアを、別のタスクが実行されている間に該タスクの実行を妨げることなく行うことができる、装置。
【請求項２】
複数の前記データストアリストア回路が直列に配置される、請求項1に記載の装置。
【請求項３】
前記データストアリストア回路は、（i）少なくとも1つの第2の1ビットクロック制御記憶素子を備え、
前記複数の前記第2の1ビットクロック制御記憶素子は、（シフトレジスタを規定し、シフトレジスタとして動作するように）直列に配置され、特に、1つの第2の1ビットクロック制御記憶素子の前記出力は、（前記入力（50）及び出力（150）を介してデータ通信を確立するために）前記直列配置において次の第2の1ビットクロック制御記憶素子の前記第2の（データ）入力としての機能を果たす、請求項1又は2に記載の装置。
【請求項４】
前記データメモリは（オンチップ）不揮発性メモリである、請求項1〜3のいずれか1項に記載の装置（300）。
【請求項５】
（i）（a）複数のプログラマブルロジックユニットと、（b）複数の第1の1ビットクロック制御記憶素子とを有するシステムを備える装置における少なくとも2つのタスクのフォールトトレランスが強化された逐次実行の方法であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、前記プログラマブルロジックユニットのそれぞれについて、構成ビット記憶回路が設けられ、該少なくとも2つのタスクのフォールトトレランスが強化された逐次実行の方法は、前記構成ビット記憶回路を、最も高いフォールトトレランスを有する動作状態に可能な限りすることに基づいており、該方法は、
（a）1つのタスクが実行されている間に、別のタスクに関連する構成ビットを前記構成ビット記憶回路にストアする、前記構成ビット回路のクロック信号を生成することであって、該ステップ（a）の実行は、タスク実行中に可能な限り遅くトリガーされることと、
（b）1つのクロックサイクル内において、前記別のタスクを実行することができるように前記構成ビットに基づいて前記プログラマブルロジックユニットを構成する、前記構成ビット回路のクロック信号を生成することと、
（c）前記別のタスクの実行を開始する、前記構成ビット回路のクロック信号を生成することと、
を含む、方法。
【請求項６】
（i）（a）複数のプログラマブルロジックユニットと、（b）複数の第1の1ビットクロック制御記憶素子とを有するシステムを備える装置における少なくとも2つのタスクのフォールトトレランスが強化された逐次実行の方法であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、前記プログラマブルロジックユニットのそれぞれについて、構成ビット記憶回路が設けられ、該少なくとも2つのタスクのフォールトトレランスが強化された逐次実行の方法は、前記構成ビット記憶回路を、最も高いフォールトトレランスを有する動作状態に可能な限りすることに基づいており、該方法は、
（a）1つのタスクが実行された後に、別のタスクに関連する構成ビットを前記構成ビット記憶回路にストアする、前記構成ビット回路のクロック信号を生成することと、
（b）1つのクロックサイクル内において、前記別のタスクを実行することができるように前記構成ビットに基づいて前記プログラマブルロジックユニットを構成する、前記構成ビット回路のクロック信号を生成することと、
（c）前記別のタスクの実行を開始する、前記構成ビット回路のクロック信号を生成することと、
を含む、方法。
【請求項７】
タスクスイッチが必要とされない場合には、前記装置に設けられた全体制御システムは、非アクティブクロック信号を有するように構成された、前記構成ビット回路のクロック信号を生成することが可能である、請求項5又は6に記載の方法。
【請求項８】
前記構成ビット記憶回路は、
（i）第3の1ビットクロック制御記憶素子（710）と、
前記第3の1ビットクロック制御記憶素子に接続された少なくとも1つの第4の1ビットクロック制御記憶素子（720）と、
を備える、請求項5又は6に記載の方法。
【請求項９】
タスクスイッチの場合に安全な動作を確保するのに必要とされる出力回路（600）を更に備える、請求項1〜4のいずれか1項に記載の装置。
【請求項１０】
前記装置は、前記出力回路（600）を備える1つ以上の出力ポート（630）を有し、前記システムは、
（i）第3の1ビットクロック制御記憶素子（620）と、
（ii）（a）前記第1の1ビットクロック制御記憶素子のうちの1つの出力（80）又は（b）前記第3の1ビット記憶素子の前記出力のいずれかを前記出力ポートに選択的に提供する第3のスイッチ素子（610）と、
を更に備え（前記出力ポートのそれぞれについて、サブシステム（600）を備え）、
第2の制御システム（640）（回路及び／又はプロセッサ及び／又はコントローラー）は、前記第3のスイッチ素子（複数の場合もある）のステアリング信号を提供するとともに前記第3の1ビットクロック制御記憶素子（複数の場合もある）にクロック信号を提供する、請求項9に記載の装置。
【請求項１１】
前記第3の1ビットクロック制御記憶素子（複数の場合もある）はフリップフロップである、請求項10に記載の装置。
【請求項１２】
前記第3のスイッチ素子は（2入力）マルチプレクサーである、請求項10に記載の装置。
【請求項１３】
装置（300）であって、
（A）（i）（a）複数のプログラマブルロジックユニット（210）と、（b）複数の第1の1ビットクロック制御記憶素子（20）とを有するマトリックス（200）であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合されている、マトリックスと、
（B）構成ビットメモリ（320）であって、それによって、前記プログラマブルロジックユニットのそれぞれについて、（i）該メモリからの構成ビットをストアする構成ビット記憶回路（700）が設けられる、構成ビットメモリと、
を備える、装置。
【請求項１４】
複数の前記構成ビット記憶回路が直列に配置される、請求項13に記載の装置。
【請求項１５】
前記構成ビット記憶回路はそれぞれ、
（i）第3の1ビットクロック制御記憶素子（710）と、
（ii）前記第3の1ビットクロック制御記憶素子の第1の入力と、
（iii）前記第3の1ビットクロック制御記憶素子に接続され、（i）構成ビットを前記メモリから前記第3の1ビットクロック制御記憶素子にストアするか、又は、（ii）構成ビットを前記第3の1ビットクロック制御記憶素子から第4の1ビットクロック制御記憶素子（複数の場合もある）（又は該第4の1ビットクロック制御記憶素子のうちの1つ）にロードするために設けられた少なくとも1つの第4の1ビットクロック制御記憶素子（720）と、
を備える、請求項13又は14に記載の装置。
【請求項１６】
複数の前記第3の1ビットクロック制御記憶素子は直列に配置され、特に、1つの第3の1ビットクロック制御記憶素子の前記出力は、前記直列配置における次の第3の1ビットクロック制御記憶素子の前記第1の入力としての機能を果たす、請求項15に記載の装置。
【請求項１７】
低電力消費に適合された装置（300）であって、
（A）（i）（a）複数のプログラマブルロジックユニット（210）と、（b）複数の第1の1ビットクロック制御記憶素子（20）とを有するマトリックス（200）であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、前記第1の1ビットクロック制御記憶素子のそれぞれについて、前記第1の1ビットクロック制御記憶素子のタスクごとに前記それぞれの値をローカルにストア又はリストアするデータストアリストア回路（10）が設けられる、マトリックスと、
（B）前記マトリックスの外部にあるデータメモリ（310）と、
を備え、
前記データストアリストア回路は、（i）1つのタスクに関連するデータを前記メモリから前記データストアリストア回路内にプリロードし、及び／又は（ii）前記データストアリストア回路における1つのタスクに関連するデータを前記データメモリにポストストアするために設けられ、それによって、前記プリロード及び／又は前記ポストストアを、別のタスクが実行されているときに該タスクの実行を妨げることなく、又は、前記マトリックスが（電力消費を節減するために）非アクティブであるときに行うことができる、装置。
【請求項１８】
前記データメモリは（オンチップ）不揮発性メモリである、請求項17に記載の装置（300）。
【請求項１９】
電気エンジンと、
前記エンジンの制御を提供するエンジン制御ユニットハードウェアと、
を備え、
前記エンジン制御ユニットハードウェアは、請求項1〜18のいずれか1項に記載の異種のハードウェアシステムを備える、装置。
【請求項２０】
前記エンジン制御ユニットハードウェアによって実行される前記制御アルゴリズムは、前記関連する車両の動作状態（速度、バッテリーレベル、路面凹凸等）に応じて動的に適合され、それによって、該動的な適合は前記タスクスイッチを利用する、請求項19に記載の装置。
【請求項２１】
タスクの安全な実行に適合した装置（300）であって、
（i）（a）複数のプログラマブルロジックユニット（210）と、（b）複数の第1の1ビットクロック制御記憶素子（20）とを有するマトリックス（200）、
を備え、
前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、前記第1の1ビットクロック制御記憶素子のそれぞれについて、前記第1の1ビットクロック制御記憶素子のタスクごとに前記それぞれの値をローカルにストア又はリストアするデータストアリストア回路（10）が設けられ、
前記2つのタスクは同じである（正確に同じ時間的実行を有する同じアルゴリズムが実行される）（及び、前記実行の前記安全性が前記タスクの前記出力を比較することによって検証される）、装置。
【請求項２２】
任意選択で電気エンジン制御ユニットハードウェア機能に専用化された複数の周辺ハードウェアユニットを備え、
前記複数の周辺ハードウェアユニットは、前記タスクの双方に同じ入力を与える、請求項21に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル制御がFPCU構成要素を用いて取り扱われる電気機械システムのコンテキストに適用される。本発明は、自動車の分野に限定されず、これと同様の応用分野に適用される。
【背景技術】
【０００２】
今日、車両における電子制御ユニット（ECU：electroniccontrolunits）の数はますます多くなっている。この状況は、この非常に多数の独立したECUのコスト及び信頼性のために自動車メーカーにとって問題となっていた。
【０００３】
そのため、この分野のおける動向は、電子モジュールの数を可能な限り削減することを試みることである。
【０００４】
しかしながら、制御されるパワートレイン素子（element：要素）の数は、アクチュエーターの全面的な電化及びADAS機能の統合のために絶えず増加している。
【０００５】
したがって、唯一の可能な方法は、単一のECUの内部に複数の異なる機能を収集することができることである。
【０００６】
純粋なソフトウェアコントローラーを考えた場合に、解決策は、CPUコアの数を増加させること、CPU動作周波数を増加させること、並びに現行技術水準のマルチプロセッシングメカニズム及びマルチタスキングメカニズムを適用することから得られる。
【０００７】
しかし、FPGAベースのコントローラー、特にFPCUデバイスを考えた場合に、問題はより複雑である。この分野における技術的現状は、以下のとおりである。
・FPGAサイズがより大きくされ、複数のタスクがFPGA内で単に並列にマッピングされる。この解決策は、現実的な製造解決策とするにはコストがかかりすぎる。
・或いは、FPGAコンテンツが、タスクスイッチが必要とされるごとにリロードされる。しかし、この方法は、自動車のECUにあるオペレーティングシステムのような高速のリアルタイムオペレーティングシステムにとっては低速すぎる。この方法は、アプリケーションロード期間中にFPGAの活動を停止する必要があるので過度に低速である。また、この方法は、アプリケーションデータのセーブ（save：保存）及びリストア（restore）が必要であることに対処していない。そのため、このメカニズムは、アプリケーション自体の一部として実施しなければならず、これは、FPGAリソースが占める面積に関して多くのコストを要し、コンテキストスイッチ遅延を増加させる。
【０００８】
図16は、以下の異なる解決策を説明している。
・最初のラインは、旧技術のFPGAにおいてわれることを示している。これは相対的に低速である。そのため、通常のリアルタイムの反復タスクは、全ての処理電力を消費する。この場合に、コンテキストスイッチを適用することができない。
・2番目のラインは、この同じタスクが、現代技術のFPGA上で実行されるときに動作する方法を説明している。計算電力のほとんどが失われ、他の目的に用いることができることは明らかである。
・3番目のラインは、従来の「コンテキストスイッチ」を用いて達成することができることである。この場合に、利点は非常に限られている。スイッチ遅延は許容することができない。
・4番目のラインは、本発明が目的とするもの、すなわち、ほぼ瞬時のコンテキストスイッチである。
【０００９】
本明細書は、フレキシブルロジックユニットに関係した米国特許出願公開第2015/0091613号を引用することによってその全内容を本明細書の一部としている。
【００１０】
従来技術が以下のことを行っていないことは注目に値する。
（a）多くの異なるタスクを実行しなければならず、したがって、マトリックスに加えて、その外部にあるメモリも必要とされ、より詳細には、コンテキストスイッチのコンテキストにおいて、上記マトリックスと上記メモリとの間で往復する適したデータ転送も必要とされる、技術的に複雑なコンテキストの解決策を提供すること。
（b）対象分野において必要とされるような高いフォールトトレランス要件の必要性を考慮すること。
（c）安全な実行を高め及び／又は低電力消費をもたらす使用法等の他の有利な使用法を提供すること。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、上記に示した問題及び従来技術の欠点を克服するものである。
【課題を解決するための手段】
【００１２】
一般的に言えば、本発明は、取り扱うことができるタスクの量が実質上無制限であり、現実には、マトリックスの外部に設けられたメモリのサイズによって決まる装置を対象とし、（i）1つのタスクに関連するデータを上記メモリから上記データストアリストア回路内にプリロードし、及び／又は（ii）上記データストア（store：記憶）リストア回路における1つのタスクに関連するデータを上記データメモリにポストストアする（post-storing）データストアリストア回路（及び回路内の接続）を設け、それによって、上記プリロード及び／又は上記ポストストアを、別のタスクが実行されている間にこのタスク実行を妨げることなく行うことができる。
【００１３】
さらに、本発明は、構成ビット記憶回路を、最も高いフォールトトレランスを有する動作状態に可能な限りすることに基づいた、装置上の少なくとも2つのタスクの、フォールトトレランスが強化された逐次実行の方法を提供する。
【００１４】
さらに、本発明は、特に、上記データメモリが（オンチップ）不揮発性メモリでなければならないことを指示することによって、マトリックスが一時的にアクティブ（active temporality）であるように設定されるときの要件を考慮することによって低電力消費に関する詳細を論述する。
【００１５】
本発明は、タスクが同じであり、比較され、本質的に、データストアリストア回路の記憶がローカルであるという特徴が強調される、安全な実行を提供する解決策も提供する。
【００１６】
最後に、タスクスイッチの場合に安全な動作を確保するのに必要とされる出力回路も開示される。
【００１７】
第1に、本発明は、或る期間にわたるFLUの全ての計算リソースの使用量を最大にすることを目的として、マイクロプロセッサにおけるタスクコンテキストスイッチと同様に、FLUのeFPGAマトリックスにおいてマッピングされたアプリケーションタスクの高速で安全なタイムスライスされたコンテキストスイッチを可能にする。
【００１８】
第2に、本発明は、米国特許出願公開第2015/0091613号に記載されているようなフレキシブルロジックにおける使用に適合した実施の形態を提供する。
【００１９】
第3に、このコンテキストスイッチインフラストラクチャ装置は、強力な機能的安全性チェックメカニズムをFLUに含むように低コストに適応させることができる。
【００２０】
一般的に言えば、本発明は、以下の3つの個別の回路（それらの回路自体、様々な実施の形態を有する）及び様々な装置又はそれらの組み合わせを伴う。
・構成ビット回路及びその「ダブルラッチ」デイジーチェーン装置。
○これは、eFPGAマトリックスを、FLUマップドタスク（FLU mapped task）を実行するのに必要なロジック機能に構成する構成ビットのセットを管理する。
・データ回路及びその「ダブルフロップ」デイジーチェーン装置。
○これは、FLUマップドタスクコンテキストデータのセーブ及びリストアを管理する。
・タスクアウェアFLU出力回路又はポート
○これは、タスクスイッチの概念に関して、アプリケーション結果がFLUの外部に転送される方法を管理する。
【００２１】
より包括的に言えば、本発明は、以下のものを提供する。
・（i）（a）複数のプログラマブルロジックユニット（構成可能なルックアップテーブル、マルチプレクサー装置、SPU（信号処理ユニット）、数学演算器等）と、（b）複数の第1の1ビットクロック制御記憶素子とを有するシステムを備える装置であって、上記プログラマブルロジックユニット及び上記第1の1ビットクロック制御記憶素子は、（プログラマブルロジックとしてともに動作するように）アレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、上記第1の1ビットクロック制御記憶素子のそれぞれについて、上記第1の1ビットクロック制御記憶素子のタスクごとにそれぞれの値をローカルにストア又はリストアするデータストアリストア回路が設けられる、装置。
・好ましくは上記装置と組み合わされる装置であって、構成ビットメモリを備え、それによって、上記プログラマブルロジックユニットのそれぞれについて、構成ビット記憶回路が設けられ、該構成ビット記憶回路及び該構成ビット記憶回路を制御する全体制御システムが更に設けられ、該全体制御システムは、命令を受信する入力手段と、該受信された命令に従って動作する回路機構とを備え、上記構成ビット回路のクロック信号を更に生成することが可能である、装置。
・本発明は、上述したような装置の任意のものの全体制御システムによって実行されると、特定のスイッチ方法の実行を引き起こすコンピューター可読コードを含むコンピュータープログラム製品（マイクロプログラミングされたロジック等）を更に提供する。代替形態では、上記全体制御システムは、特定のスイッチ方法の実行を代わりに引き起こす特定の設計された状態機械を備える。また、組み合わせも可能である。
・本発明は、上述した装置における少なくとも2つのタスクの逐次実行の特定の方法を更に提供し、この方法は、コントローラーを用いて、（a）1つのタスクが実行されている間に、別のタスクに関連する構成を（上記構成ビット記憶回路に）ローカルにストアし、（b）その後に、好ましくは1つのクロックサイクル内において、上記別のタスクを実行することができるように上記構成に基づいて上記プログラマブルロジックユニットを構成し、（c）次に、上記別のタスクの実行を直接開始する。その上、この方法は、上記1つのタスクが実行されている間、上記第1の1ビットクロック制御記憶素子において上記別のタスクに関連するそれぞれの値をリストアする準備をし、（b）その後に、好ましくは1つのクロックサイクル内において、上記別のタスクのそれらの値を上記第1の1ビットクロック制御記憶素子にストアするとともに、上記1つのタスクの値を（ローカルに）ストアする。この最後のステップは、構成ステップと同時に行われる。幾つかの実施の形態では、上記構成は構成メモリからロードされるが、これは常に必要であるとは限らない。幾つかの特定の実施の形態では、値は、マトリックスの外部にストアされ、その後、リストアの準備は、上記メモリの外部のメモリからのフェッチを必要とする。これも常に必要であるとは限らない。
【図面の簡単な説明】
【００２２】
【図１】更なる説明を通して論述される装置、システム、回路及び記憶素子の関係を概略的に記載した図である。
【図２】データ記憶態様回路の実施形態を上部及び下部に概略的に示す図である。
【図３】データ記憶態様回路の別の実施形態を概略的に示す図である。
【図４】特定の出力回路を概略的に示す図である。
【図５】上記データ回路及び関連するコントローラーをアレイに編成したものを概略的に記載した図である。
【図６】構成記憶態様回路の実施形態を上部及び下部に概略的に示す図である。
【図７】データ記憶態様回路の別の実施形態を概略的に示す図である。
【図８】上記構成回路及び関連するコントローラーをアレイに編成したものを概略的に記載した図である。
【図９】データ回路及び構成回路の双方、関連するコントローラー並びに関与する記憶素子をアレイに編成したものを概略的に記載した図である。
【図１０】図6の上部の実施形態による回路を記載した図である。
【図１１】図6の下部の実施形態による回路を記載した図である。
【図１２】別の代替の回路を記載した図である。
【図１３】図2の下部の実施形態による回路を記載した図である。
【図１４】本発明による装置を記載した図である。
【図１５】図4の実施形態による回路を記載した図である。
【図１６】本発明が対象とするタスクの逐次実行を示す図である。
【図１７】本発明によって必要とされるコントローラーのフローチャートを記載した図である。
【図１８】本発明によって必要とされるコントローラーの特定のフローチャートを記載した図である。
【図１９】本発明によって必要とされるタスクの逐次実行の更なる詳細を与える図である。
【図２０】本発明によって必要とされるタスクの逐次実行の特定の更なる詳細を与える図である。
【図２１】フォールトトレランスに関する特に考慮すべき事項を示す図である。
【図２２】この考慮すべき事項に対処する逐次タスク実行の特定の更なる詳細を与える図である。
【図２３】この考慮すべき事項にも対処する本発明によって必要とされるコントローラーの特定のフローチャートを記載した図である。
【図２４】図23の方法によって実現される逐次実行を示す図である。
【００２３】
図の補遺
図10
・（1）構成ビット記憶回路
・FLU（フィールドプログラマブルロジックユニット）−構成ラッチ
・FLU（フィールドプログラマブルロジックユニット）ロジックへ
・FLU（フィールドプログラマブルロジックユニット）−構成プリロードラッチ
・上部の（5）プリロードシフトレジスタチェーンにおける前の素子から
・下部の（5）プリロードシフトレジスタチェーンにおける次の素子へ
・（6）FLU（フィールドプログラマブルロジックユニット）コンテキストコントローラー
【００２４】
図11
・（1）構成ビット記憶回路
・FLU（フィールドプログラマブルロジックユニット）−構成ラッチ
・FLU（フィールドプログラマブルロジックユニット）ロジックへ
・FLU（フィールドプログラマブルロジックユニット）−構成プリロードラッチ
・上部の（5）プリロードシフトレジスタチェーンにおける前の素子から
・下部の（5）プリロードシフトレジスタチェーンにおける次の素子へ
・（6）FLU（フィールドプログラマブルロジックユニット）コンテキストコントローラー
・（7）スイッチ素子−セレクター−デマルチプレクサー
【００２５】
図12
・（1）FLU（フィールドプログラマブルロジックユニット）データフリップフロップ
・（2）FLU（フィールドプログラマブルロジックユニット）セーブ＆リストアフリップフロップ
・（3）FLU（フィールドプログラマブルロジックユニット）コンテキストコントローラー
・（5）スイッチ素子−セレクター−デマルチプレクサー
【００２６】
図13
・（1）FLU（フィールドプログラマブルロジックユニット）データフリップフロップ
・（2）FLU（フィールドプログラマブルロジックユニット）セーブ＆リストアフリップフロップ
・（3）FLU（フィールドプログラマブルロジックユニット）コンテキストコントローラー
・（5）スイッチ素子−セレクター−デマルチプレクサー
・（6）スイッチ素子−セレクター−デマルチプレクサー
・上部の（7）セーブ＆リストアシフトレジスタチェーンにおける前の素子から
・下部の（7）セーブ＆リストアシフトレジスタチェーンにおける次の素子へ
【００２７】
図14
・（10）FLU（フィールドプログラマブルロジックユニット）コンテキストコントローラー
・（12）オンチップ不揮発性メモリとの通信
・（11）アレイにおける回路のレジスタ状態編成
【００２８】
図15
・（1）FLU（フィールドプログラマブルロジックユニット）出力保持フリップフロップ
・（2）スイッチ素子−セレクター−デマルチプレクサー
・（3）FLU（フィールドプログラマブルロジックユニット）コンテキストコントローラー
【発明を実施するための形態】
【００２９】
本発明は、電気回路と、それらの回路の1つ以上を備え、特定の方法で配置された電子システムと、そのような電子システム及びそれらの電子システムに接続された適したメモリ素子を備える装置とに関する。より詳細には、本発明は、構成可能ロジックを有するフレキシブルロジックユニットのコンテキストにおいてなされる。
【００３０】
上記回路、システム及び装置は、（電気）エンジン制御ハードウェアとしての使用に適しており、したがって、リアルタイム制御の特徴を提供するように適合されている。より詳細には、本発明は、そのようなリアルタイム制御特徴を危うくすることなくそのようなフレキシブルロジックユニットによって複数のタスクの実行を可能にするコンテキストにおいてなされる。
【００３１】
電気パワートレインと、この電気パワートレインを制御する電気パワートレイン管理ハードウェアとを備える自動車に適した代替の上記プラットフォームが提供される。この管理ハードウェアは、少なくとも1つのソフトウェアプログラマブルユニットと、少なくとも1つのハードウェアプログラマブルユニットとを備える異種ハードウェアシステムを備え、論述する装置のうちの任意のものを構成する。
【００３２】
上記は、そのようなリアルタイム制御特徴を同様に危うくすることなく、実行されるタスクのスイッチを提供する必要があることを示している。解決すべき問題は2つの部分を有する。第1に、フレキシブルロジックユニットによるタスクの実行は、その構成によって規定され、そのため、（高速の）（再）構成が必要とされる。第2に、タスクが実行されている間、データ又は値は、フレキシブルロジックユニットによって計算され、このフレキシブルロジックユニット内の様々な箇所にストアされる。そのため、上記データ又は値の（高速の）ストア（タスク再開まで）及び／又は上記データ又は値の（高速の）ロード（タスク再開時）も必要とされる。
【００３３】
本発明が設計される通常のアーキテクチャ及び素子は、探求するだけの価値がある。本質的に、フレキシブルロジックユニットは、プログラマブルロジックユニットと、マトリックス又はアレイに配置された1ビットクロック制御記憶素子とから構成され、これらは、プログラマブルロジックユニットとしてともに動作する。このプログラマブルロジックユニットは構成可能である。上記1ビットクロック制御記憶素子は、上記プログラマブルロジックユニットによって生成される上述したデータ又は値を保持する。上記プログラマブルロジックユニットの構成ビットを保持するように適合された更に追加の1ビットクロック制御記憶素子は、上記マトリックスの一部である。したがって、構成情報（ビット）及び上記データ又は値は、マトリックスにローカルにストアされるが、マトリックスの外部のメモリからのものであるか、又は、マトリックスの外部のメモリを起源とする可能性がある。実際、構成情報の場合、構成メモリは、そのようなデータをロード又はストアするための装置の一部であり、データ又は値メモリも、そのようなデータをロード又はストアするための装置の一部である。したがって、そのようなメモリに対する操作はローカルではない。マトリックスの各点においてそのようなメモリに直接アクセスするために多くの回路面積を使用することを防止するために、構成及びデータを、マトリックスを通ってフローさせるアーキテクチャが存在するが、そのようなロード又はストアは多くのクロックサイクルを要するという犠牲を伴う。
【００３４】
これまでの内容を要約すれば、本発明は、リアルタイム制御によって必要とされるローカルな記憶の必要性に対処することによって、そのようなリアルタイム制御の特徴を危うくすることなく、タスクスイッチのコンテキスト（上述した値又はデータ、スイッチによって規定されるコンテキストを含む）においてフレキシブルロジックユニットを用いる解決策を提供するものであると言うことができる。さらに、本発明は、そこから発生するマルチサイクルの結果の欠点を克服することによって、その通過マトリックスフローの（回路面積）利点を引き続き用いながら、グローバル（マトリックスの外部）なロード又はフェッチ又はストアの態様を扱う。
【００３５】
本質的に、本発明は、（i）（a）複数のプログラマブルロジックユニット（構成可能なルックアップテーブル及びマルチプレクサー装置等）と、（b）複数の第1の1ビットクロック制御記憶素子とを有するシステムを備える装置であって、上記プログラマブルロジックユニット及び上記第1の1ビットクロック制御記憶素子は（プログラマブルロジックとしてともに動作するように）アレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、上記第1の1ビットクロック制御記憶素子のそれぞれについて、上記第1の1ビットクロック制御記憶素子のタスクごとにそれぞれの値をローカルにストア又はリストアするデータストアリストア回路が設けられる、装置を規定する。
【００３６】
その上、（基本的に）上記プログラマブルロジックユニットのそれぞれについて、（i）（メモリからの）構成ビットをストアするか、又は（ii）（プログラマブルユニットに与えられる）構成ビットをロードする構成ビット記憶回路を更に備える装置が提供される。
【００３７】
この段階において、関与する1ビットクロック制御記憶素子が通常はフリップフロップであるということは指摘するだけの価値がある。関与するスイッチ素子又はセレクターは、通常、マルチプレクサー又はデマルチプレクサーである。本発明は、特に、限られたクロックサイクル数、好ましくは1クロックサイクルで動作をローカルに行うことができるという点で、それらの素子の特定のレイアウト又は配置によって実現される。その上、これらの回路は、直列接続して一方から他方に情報をシフトすることができるような特定の入力及び出力を用いて設計され、それによって、それらの回路の更に別のタイプの特定のレイアウト又は配置が提供される。上記に示したように、そのような直列手法は、マトリックスの外部にあるメモリとの間でデータ又は構成情報を往来させる際に多くのクロックサイクルをもたらすことに留意されたい。これは、原理上、ちょうど説明したローカルな記憶機能に起因して原理の問題を提起しないが、回路面積を犠牲にして、メモリ並びに複数の上記構成ビット記憶回路及び／又はデータストアリストア回路を上記記憶動作の並列化を可能にするように配置することによってマトリックスの寸法によって専用化された物理限界よりも低いものに限界を設定することが好まれる場合がある。
【００３８】
図1に示すように、本発明は、それ自体がデータストアリストア回路10等の回路を構成するシステム又はマトリックス200と、データをロード又はデータをストアすることができるデータメモリ310とを備えるとともに、構成ビットをロードすることができる構成ビットメモリ320も備える装置300のレベルで説明することができる。より詳細な内容が更に与えられる。
【００３９】
データストアリストア回路10の様々な実施形態が、図2の上部、下部及び図3に与えられる一方、図5は、それらの回路をマトリックス200に組み込んだものと、プログラマブルロジック210をデータストアリストア回路10と接続するそのようなマトリックスのレイアウトとを示している。特に2つの回路10間の接続に留意されたい。
【００４０】
構成ビット記憶回路700の様々な実施形態が、図6の上部、下部及び図7に示されている一方、図8は、それらの回路をシステム又はマトリックス800に組み込んだものと、同じプログラマブルロジック210をこの構成ビット記憶回路700と接続する（ただし、ここでは、構成を上記ロジックに与える目的で接続する）そのようなマトリックスのレイアウトとを示している。特に2つの回路700間の接続に留意されたい。次に、図9は、データストアリストア回路10及び構成ビット記憶回路700の双方を有する全体システムを（ここでは、マトリックス概念を示すことなく）示しているが、制御回路900がこれらの双方の回路を制御することを示している。この制御回路900は、以下で更に詳述する制御回路90、640、230及び730の機能を含む。
【００４１】
完全を期すために、全ての図示した実施形態について、フリップフロップ30のクロックが常に動作している場合に用いられるフィードバックループを（図3に示すように）フリップフロップの周囲に設けることができるという意味で、変形形態が存在する。このループバックによって、いかなるクロック活動であってもフロップデータを維持することが可能になる。
【００４２】
代替の実施形態において、クロックが必要なときにだけアクティブであると考えた場合には、このループバックは存在せず、また必要でもない。双方のストラテジーは、機能的に等価である。
【００４３】
一方、好ましい実施形態では、実施の際に、クロックの制御を可能な限り少なくする選択が与えられる。
【００４４】
データに関する本発明の第1の態様の説明
次に、データに関する本発明の第1の態様に関して本発明を更に詳述する。
【００４５】
図2の上部に示すように、本発明は、（i）第1の1ビットクロック制御記憶素子20と、（ii）少なくとも1つの第2の1ビットクロック制御記憶素子30と、（iii）第1の（ロジック）入力40と、（iv）任意選択の（図2の下部）第2の（値）入力50と、（v）（a）上記第1の（ロジック）入力又は（b）上記第2の1ビット記憶素子（複数の場合もある）（のうちの1つ）の出力のいずれかを上記第1の1ビット記憶素子に選択的に入力する第1のスイッチ素子60と、（vi）（a）上記第2の（値）入力55又は（b）上記第1の1ビット記憶素子の出力80のいずれかを上記第2の1ビット記憶素子に選択的に入力する任意選択の（図2の下部）（第2の1ビットクロック制御記憶素子ごとの）第2のスイッチ素子70と、（vii）上記スイッチ素子のステアリング信号を提供するとともにクロック信号を上記1ビットクロック制御記憶素子に提供する第1の制御システム90（回路及び／又はプロセッサ及び／又はコントローラー）とを備える回路10を提供する。
【００４６】
本発明の一実施形態では、上記1ビットクロック制御記憶素子のうちの1つ以上はフリップフロップである。
【００４７】
本発明の一実施形態では、上記スイッチ素子のうちの1つ以上は（2入力）マルチプレクサーである（又は、複数の第2の1ビットクロック制御記憶素子30、110の場合には（図3参照）、第1のスイッチ素子60は、そのような記憶素子の数に1を加えたものと同数の入力を有する）。
【００４８】
図5に示すように、本発明は、上述したような複数の上記回路20と、マルチプレクサー及び（構成）記憶装置を用いて配置された複数のプログラマブルロジックユニット210（ルックアップテーブル及び他のロジック機能（SPU等））とを備えるシステム又はマトリックス200を提供する。複数の上記第1の1ビットクロック制御記憶素子及び上記プログラマブルロジックユニットは、（プログラマブルロジックとしてともに動作するように）アレイに配置され、特に、上記プログラマブルユニットのうちの幾つかの出力は、上記第1の1ビットクロック制御記憶素子のうちの幾つかの上記第1の（ロジック）入力としての機能を果たし、上記第1の1ビットクロック制御記憶素子のうちの幾つかの出力は、上記プログラマブルユニットのうちの幾つかのロジック入力としての機能を果たす。
【００４９】
一実施形態では、複数の上記第2の1ビットクロック制御記憶素子は、（シフトレジスタを規定し、シフトレジスタとして動作するように）直列に配置され、特に、1つの第2の1ビットクロック制御記憶素子の出力は、（上記入力50及び出力150を介してデータ通信を確立するために）直列配置において次の第2の1ビットクロック制御記憶素子の上記第2の（データ）入力としての機能を果たす。
【００５０】
システムの更なる実施形態では、複数の上記シフトレジスタ装置は並列に配置される。
【００５１】
図4は、タスクスイッチの場合に安全な動作を確保するのに必要とされる特定の出力回路600を示している。
【００５２】
したがって、好ましくは、システムは、そのような出力回路600を備える1つ以上の出力ポート630を有し、このシステムは、（i）第3の1ビットクロック制御記憶素子620；（ii）（a）上記第1の1ビットクロック制御記憶素子のうちの1つの出力80又は（b）上記第3の1ビット記憶素子の出力のいずれかを上記出力ポートに選択的に提供する第3のスイッチ素子610を更に備え（上記出力ポートのそれぞれについて、サブシステム600を備え）、
第2の制御システム640（回路及び／又はプロセッサ及び／又はコントローラー）は、上記第3のスイッチ素子（複数の場合もある）のステアリング信号を提供するとともに上記第3の1ビットクロック制御記憶素子（複数の場合もある）にクロック信号を提供する。
【００５３】
本発明の一実施形態では、上記第3の1ビットクロック制御記憶素子（複数の場合もある）はフリップフロップである。
【００５４】
本発明の一実施形態では、上記第3のスイッチ素子は（2入力）マルチプレクサーである。
【００５５】
したがって、システムは、上記スイッチ素子のステアリング信号を提供するとともにクロック信号を上記1ビットクロック制御記憶素子に提供する全体制御システムから構成される（上記全体制御システムは、上記第1の制御システム及び／又は上記第2の制御システム、又は、これらの制御システムから構成される上記全体制御システムのいずれかを規定するか、又は、上記全体制御システムは分割され、それによって、これらの分割されたものが上記第1の制御システム及び／又は上記第2の制御システムを規定する）。
【００５６】
図1及び図5に示すように、本発明は、（i）（a）複数のプログラマブルロジックユニット210（構成可能なルックアップテーブル及びマルチプレクサー装置）及び（b）複数の第1の1ビットクロック制御記憶素子20を有するマトリックス200であって、上記プログラマブルロジックユニット及び上記第1の1ビットクロック制御記憶素子は（プログラマブルロジックとしてともに動作するように）アレイに配置され、それによって、上記第1の1ビットクロック制御記憶素子のそれぞれについて、データストアリストア回路220（ただし20を含まない）が提供される、マトリックスと、（ii）上記システム、特に上記データストアリストア回路を制御する制御システム230と、（iii）データメモリ310とを備える装置300を提供し、上記制御システム（回路及び／又はプロセッサ及び／又はコントローラー）は、命令を受信する入力手段と、これらの受信された命令に従って動作し、上記システムが、（i）上記第1の1ビットクロック制御記憶素子のデータをストアする信号；（ii）上記メモリから上記データストアリストア回路にデータを（プリ）ロードする信号；（iii）データを上記第1の1ビットクロック制御記憶素子内にロードする信号；又は（iv）現在上記データストアリストア回路にあるデータを上記メモリにストアする信号、を生成することが可能な回路機構とを備える。
【００５７】
一実施形態では、上記データストアリストア回路は、（i）上記第1の1ビットクロック制御記憶素子のデータをストアするように構成されるか、又は、（ii）1クロックサイクルでデータを上記第1の1ビットクロック制御記憶素子内にロードするように構成される。
【００５８】
本発明の一実施形態では、データストアリストア回路は、（i）少なくとも1つの第2の1ビットクロック制御記憶素子と、（iii）第1の（ロジック）入力（上記第1の記憶素子を介してロジックユニットに接続される）と、（iv）任意選択の第2の（値）入力と、（v）（a）上記第1の（ロジック）入力又は（b）上記第2の1ビット記憶素子（複数の場合もある）（のうちの1つ）の出力のいずれかを上記第1の1ビット記憶素子に選択的に入力する第1のスイッチ素子と、（vi）（a）上記第2の（値）入力又は（b）上記第1の1ビット記憶素子の出力のいずれかを上記第2の1ビット記憶素子に選択的に入力する任意選択の（第2の1ビットクロック制御記憶素子ごとの）第2のスイッチ素子とを備え、（b）上記制御システムは、上記スイッチ素子のステアリング信号を提供するとともにクロック信号を上記1ビットクロック制御記憶素子に提供するように適合されている。
【００５９】
本発明の一実施形態では、上記1ビットクロック制御記憶素子のうちの上記1つ以上はフリップフロップである。
【００６０】
本発明の一実施形態では、上記スイッチ素子のうちの上記1つ以上は（2入力）マルチプレクサーであるか、又は、複数の第2の1ビットクロック制御記憶素子の場合には、第1のスイッチ素子は、そのような記憶素子の数に1を加えたものと同数の入力を有する。
【００６１】
好ましい実施形態では、この装置において、複数の上記データストアリストア回路は（シフトレジスタを規定し、シフトレジスタとして動作するように）直列に配置される。
【００６２】
好ましい実施形態では、この装置において、複数の上記第2の1ビットクロック制御記憶素子は（シフトレジスタを規定し、シフトレジスタとして動作するように）直列に配置され、特に、1つの第2の1ビットクロック制御記憶素子の出力は、この直列配置において次の第2の1ビットクロック制御記憶素子の上記第2の（データ）入力としての機能を果たす。
【００６３】
更に好ましい実施形態では、この装置において、メモリ並びに複数の上記データストアリストア回路及び／又はシフトレジスタは、上記プリロード動作及び上記メモリストア動作の並列化を可能にするように配置される。
【００６４】
上記では、本発明は、第1の記憶素子（当初のマトリックスの一部）を含む回路レベルの説明として（図2）、又は、別の選択肢として、上記第1の記憶素子がデータストアリストア回路を伴うシステムレベル若しくは装置レベル（図5）において説明されたが、組み合わされた回路も考慮することができる。
【００６５】
したがって、本発明は、（i）第1の1ビットクロック制御記憶素子と、（ii）第1の（ロジック）入力と、（iii）（a）少なくとも1つの第2の1ビットクロック制御記憶素子と、（b）（1）上記第1の（ロジック）入力又は（2）上記第2の1ビット記憶素子（複数の場合もある）（のうちの1つ）の出力のいずれかを上記第1の1ビット記憶素子に選択的に入力する第1のスイッチ素子と、（c）上記スイッチ素子のステアリング信号を提供するとともにクロック信号を上記1ビットクロック制御記憶素子に提供する第1の制御システム（回路及び／又はプロセッサ及び／又はコントローラー）とを備えるデータストアリストア回路とを備える回路も提供する。
【００６６】
データストアリストア回路は、データを外部においてフェッチ又はストアするように適合され、このデータストアリストア回路は、（d）第2の（値）入力と、（e）（1）上記第2の（値）入力又は（2）上記第1の1ビット記憶素子の出力のいずれかを上記第2の1ビット記憶素子に選択的に入力する（第2の1ビットクロック制御記憶素子ごとの）第2のスイッチ素子とを更に備える。
【００６７】
上記1ビットクロック制御記憶素子のうちの1つ以上は、通常、フリップフロップである。
【００６８】
上記スイッチ素子のうちの1つ以上は（2入力）マルチプレクサーである（又は、複数の第2の1ビットクロック制御記憶素子の場合には、第1のスイッチ素子は、そのような記憶素子の数に1を加えたものと同数の入力を有する）。
【００６９】
上記データストアリストア回路のデュアル機能が、考慮する必要があるサイクルに関して個別に配慮した、上記第1の記憶素子との間のデータ転送及び上記メモリとの間のデータ転送であることは強調する価値がある。
【００７０】
したがって、本発明は、（i）（a）複数のプログラマブルロジックユニット（構成可能なルックアップテーブル及びマルチプレクサー装置等）と、（b）複数の第1の1ビットクロック制御記憶素子とを有するシステムを備える装置であって、上記プログラマブルロジックユニット及び上記第1の1ビットクロック制御記憶素子は（プログラマブルロジックとしてともに動作するように）アレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、上記第1の1ビットクロック制御記憶素子のそれぞれについて、上記第1の1ビットクロック制御記憶素子のタスクごとにそれぞれの値をローカルにストア又はリストアするデータストアリストア回路が設けられる、装置を提供する。
【００７１】
装置は、上記タスクの実行の安全なスイッチに従って上記データストアリストア回路の命令又は信号を生成する全体制御システムを備える。
【００７２】
好ましい実施形態では、装置は、上記データストアリストア回路が、上記ストア又は上記リストアが1クロックサイクルで実行されるように構成される。
【００７３】
好ましい実施形態では、装置は、上記システムの外部にあるメモリを更に備え、上記データストアリストア回路は、（i）1つのタスクに関連するデータ／値を上記メモリから上記データストアリストア回路内にプリロードし、及び／又は（ii）上記データストアリストア回路における1つのタスクに関連するデータ／値を上記メモリにポストストアするために設けられ、それによって、上記プリロード及び／又は上記ポストストアを、別のタスクが実行されている間に該タスクの実行を妨げることなく行うことができる。
【００７４】
構成部分に関する本発明の第2の態様の説明
次に、データに関する本発明の第1の態様に関して本発明を更に詳述する。
【００７５】
本発明は、（i）第1の1ビットクロック制御記憶素子710（その出力は出力715としての機能を果たす）と、（ii）上記第1の1ビットクロック制御記憶素子の第1の入力705と、（iii）上記第1の1ビットクロック制御記憶素子に（直接（図6）又は間接的に（図7））接続された少なくとも1つの第2の1ビットクロック制御記憶素子720（その出力は、直接（図6の上部）又は間接的に（図6の下部）出力735としての機能を果たすことができる）と、（iv）クロック信号を上記1ビットクロック制御記憶素子に提供する制御システム730（回路及び／又はプロセッサ及び／又はコントローラー）とを備える回路（第1の出力735及び第2の出力715を有する）を提供する。
【００７６】
本発明の一実施形態では、上記1ビットクロック制御記憶素子のうちの1つ以上は、プログラマブルロジックの構成ビットをストアするのに適したラッチであるか、又は、このラッチを備える。
【００７７】
本発明の一実施形態（図7）では、回路は、（v）更なる第2の1ビットクロック制御記憶素子750と、（vi）上記1ビットクロック制御記憶素子710、720又は750の出力を出力735として選択的に入力するスイッチ素子760とを更に備える。
【００７８】
本発明の一実施形態では、上記スイッチ素子は、（2入力）デマルチプレクサーである（又は複数の第2の1ビットクロック制御記憶素子の場合には、スイッチ素子は、そのような記憶素子の数と同数の出力を有する）。
【００７９】
本発明の第2の態様は、（図8に示すように）システムレベルにおいて、したがって、上記で論述したような複数の上記回路700と、複数のプログラマブルロジックユニット210とを備えるシステム800を提供する。複数の上記回路及び上記プログラマブルロジックユニットは、（プログラマブルロジックとしてともに動作するように）アレイに配置され、特に、上記第2の1ビット記憶素子（又は任意選択で上記第1の1ビット記憶素子）の出力は、上記プログラマブルユニットの構成ビットとしての機能を果たす。一点鎖線はマトリックスの態様を示していることに留意されたい。
【００８０】
本発明の好ましい実施形態では、複数の上記第1の1ビットクロック制御記憶素子は（情報を素子間でシフトすることを可能にするように）直列に配置され、特に、1つの第1の1ビットクロック制御記憶素子の出力は、この直列配置における次の第1の1ビットクロック制御記憶素子の上記第1の入力としての機能を果たす。
【００８１】
更に好ましい実施形態では、複数の上記直列接続された回路は並列に配置される。
【００８２】
上記システムは、クロック信号を上記1ビットクロック制御記憶素子に提供する（及び、適切な場合には、上記スイッチ素子のステアリング信号を提供する）全体制御システムを備える（この全体制御システムは、上記制御システム、又は、上記制御システムから構成される上記全体制御システムのいずれかを規定するか、又は、上記全体制御システムは分割され、それによって、これらの分割されたものが上記制御システムを規定する）。
【００８３】
最後に、本発明は、したがって、（i）（a）（プログラマブルロジックとしてともに動作するように）アレイに配置され、それによって、上記プログラマブルロジックユニットのそれぞれについて、構成ビット記憶回路が提供される、複数のプログラマブルロジックユニット（構成可能なルックアップテーブル及びマルチプレクサー装置）を有するシステムと、（ii）上記システム、特に上記構成ビット記憶回路を制御する制御システムと、（iii）メモリとを備える装置を提供し、上記制御システム（回路及び／又はプロセッサ及び／又はコントローラー）は、命令を受信する入力手段と、これらの受信された命令に従って動作し、上記システムが、（i）上記メモリから上記第1の1ビットクロック制御記憶素子に構成ビットをストアするクロック信号、又は（ii）上記第1の1ビットクロック制御記憶素子から第2の1ビットクロック制御記憶素子（複数の場合もある）（又は上記第2の1ビットクロック制御記憶素子のうちの1つ）に構成ビットをロードするクロック信号、を生成することが可能な回路機構とを備える。
【００８４】
一実施形態では、上記構成ビット記憶回路は、上記第1の1ビットクロック制御記憶素子から第2の1ビットクロック制御記憶素子（複数の場合もある）（又は上記第2の1ビットクロック制御記憶素子のうちの1つ）に1クロックサイクルで構成ビットをロードするように構成されている。
【００８５】
本発明の一実施形態では、（a）構成ビット記憶回路は、（i）第1の1ビットクロック制御記憶素子と、（ii）上記第1の1ビットクロック制御記憶素子の第1の入力と、（iii）上記第1の1ビットクロック制御記憶素子に（直接又は間接的に）接続された少なくとも1つの第2の1ビットクロック制御記憶素子と、（iv）クロック信号を上記1ビットクロック制御記憶素子に提供する制御システム（回路及び／又はプロセッサ及び／又はコントローラー）とを備える。
【００８６】
一実施形態では、上記1ビットクロック制御記憶素子のうちの1つ以上は、フリップフロップである。
【００８７】
一実施形態では、複数の上記構成ビット記憶回路は（構成を回路間で転送するために）直列に配置される。本発明の一実施形態では、米国特許出願公開第2015/0091613号（米国特許出願第14/153,760号）に記載されているような技法が用いられる。
【００８８】
一実施形態では、上記複数の上記第1の1ビットクロック制御記憶素子は直列に配置され、特に、1つの第1の1ビットクロック制御記憶素子の出力は、直列配置における次の第1の1ビットクロック制御記憶素子の上記第1の入力としての機能を果たす。
【００８９】
一実施形態では、装置は、メモリ及び複数の上記構成ビット記憶回路が、上記記憶動作の並列化を可能にするように構成されるように構成される。
【００９０】
本発明の態様の組み合わせの説明
上記のように、本発明は、引き続きリアルタイムの使用に適したものであるとともに少なくとも2つのタスクの逐次実行に適合したフレキシブルロジックユニットの使用の解決に寄与するので、データの態様（上記タスク中に計算されるようなデータ）及び構成の態様（ロジック内のプログラマブル素子の構成）の双方が、発明された上述の回路、システム及び装置によって扱われなければならず、また、扱われる。
【００９１】
この段階において、ロジックユニットを他に複製する必要なく、記憶素子及び少数の追加の（スイッチ回路）及び制御のみを追加しなければならないので、回路の複製数は制限されたままであることは強調するだけの価値がある。
【００９２】
1クロックサイクルまでの低い態様は、要約すると、ローカルには記憶素子の回路レベルの接続になるが、マトリックスの外部のメモリへのデータ及び構成レベルの双方におけるスマート通信の維持は、そのために必要とされる直列接続を確保するのに十分な入力／出力を必要とすることも注目に値する。
【００９３】
例えば、データ及び構成の2つ以上の記憶箇所を提供するが、必要な回路がより少なく、例えば、メモリとの間でデータの往復したロード又はストアが行われない様々な代替の実施形態がカバーされていることも強調しておく。明らかに、それらを組み合わせることもでき、組み合わせたものは、装置に採用される方法に影響を与える可能性がある。
【００９４】
混乱を避けるために、装置が、全ての（参照符号を割り当て直した）素子とともに以下で再度説明される。
【００９５】
本発明は、（i）（a）複数のプログラマブルロジックユニット（構成可能なルックアップテーブル及びマルチプレクサー装置）と、（b）複数の第1の1ビットクロック制御記憶素子とを有するシステムを備える装置であって、上記プログラマブルロジックユニット及び上記第1の1ビットクロック制御記憶素子は（プログラマブルロジックとしてともに動作するように）アレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、上記第1の1ビットクロック制御記憶素子のそれぞれについて、上記第1の1ビットクロック制御記憶素子のタスクごとにそれぞれの値をローカルにストア又はリストアするデータストアリストア回路が設けられる、装置を提供し、したがって、上記タスクの実行の安全なスイッチに従って上記データストアリストア回路の命令又は信号を生成する全体制御システム（回路及び／又はプロセッサ及び／又はコントローラー）が設けられる。
【００９６】
好ましい実施形態では、前述の概念のうちの任意のものの装置は、上記システムの外部にあるデータメモリを更に備え、上記データストアリストア回路は、（i）1つのタスクに関連するデータ／値を上記メモリから上記データストアリストア回路内にプリロードし、及び／又は（ii）上記データストアリストア回路における1つのタスクに関連するデータ／値を上記データメモリにポストストアするために設けられ、それによって、上記プリロード及び／又は上記ポストストアを、別のタスクが実行されている間に該タスクの実行を妨げることなく行うことができる。
【００９７】
装置は、構成ビットメモリを更に備え、それによって、上記プログラマブルロジックユニットのそれぞれについて、構成ビット記憶回路が設けられ、該構成ビット記憶回路はそれぞれ、（i）第4の1ビットクロック制御記憶素子と、（ii）上記第4の1ビットクロック制御記憶素子の第1の入力と、（iii）上記第4の1ビットクロック制御記憶素子に（直接又は間接的に）接続された少なくとも1つの第5の1ビットクロック制御記憶素子とを備え、上記全体制御システムは、上記構成ビット記憶回路を制御するために更に提供され、上記全体制御システムは、命令を受信する入力手段と、該受信された命令に従って動作する回路機構とを備え、（i）上記メモリから上記第4の1ビットクロック制御記憶素子に構成ビットをストアする、上記構成ビット回路のクロック信号、又は（ii）上記第4の1ビットクロック制御記憶素子から第5の1ビットクロック制御記憶素子（複数の場合もある）（又は上記第5の1ビットクロック制御記憶素子のうちの1つ）に構成ビットをロードする、上記構成ビット回路のクロック信号、を更に生成することが可能である。
【００９８】
代替的に、上記フレキシブルロジックユニットは、少なくとも2つのタスクの逐次実行に適合された構成レベルで設けられ、列及び行に配置された複数のタイルを有するマトリックスであって、各タイルは、少なくとも1つの第1の記憶素子と、1つの第1の記憶素子に（直接又は間接的に）接続された少なくとも1つの第2の記憶素子とをその内部に有し、各タイルは、それぞれの第2の記憶素子にストアされた構成データに応じて構成可能な構成可能ロジックを有する、マトリックスと、少なくとも記憶素子の構成ワードを受け取る制御インターフェースであって、構成ワードから上記構成データを生成するように構成された、インターフェースとを備える。好ましくは、上記第1の記憶素子及び／又は上記第2の記憶素子はラッチバンクである。
【００９９】
本発明の一実施形態では、フレキシブルロジックユニットは、構成可能ロジックが、上記第2の記憶素子内の構成データによって構成される複数の上記第2の記憶素子（ラッチバンク）に結合された少なくとも1つのフィールドプログラマブルゲートアレイを備えるものである。
【０１００】
好ましい実施形態では、フレキシブルロジックユニットは、第1の記憶素子（ラッチバンク）のそれぞれが、その列内の直前の第1の記憶素子（ラッチバンク）から構成データを受け取る配置を有するように配置される。
【０１０１】
フレキシブルロジックユニットは、データレベルで更に適合され、構成可能ロジック及び第3の1ビットクロック制御記憶素子が、（プログラマブルロジックとしてともに動作するように）アレイに配置され、各第3の1ビットクロック制御記憶素子について、この第3の1ビットクロック制御記憶素子のタスクごとにそれぞれの値をローカルにストア又はリストアする少なくとも1つの第4の1ビットクロック制御記憶素子が設けられる。好ましくは、上記第4の1ビットクロック制御記憶素子又は第5の1ビットクロック制御記憶素子のうちの1つ以上はフリップフロップである。
【０１０２】
好ましい実施形態では、複数の上記第4の1ビットクロック制御記憶素子は直列に配置され、特に、1つの第4の1ビットクロック制御記憶素子の出力は、この直列配置における次の第4の1ビットクロック制御記憶素子の上記第1の入力としての機能を果たす。
【０１０３】
本発明の更なる実施形態
構成ビットの態様
図10及び図11は、コンテキストスイッチコントローラー装置を付加することによってダブルラッチ構造を与える。素子は以下のとおりである。
1）これは、eFPGAマトリックスの1つの構成ビットを表す。多数のそれらの素子が、構成データをシフトすることができるようにチェーンとして互いに接続されている。
2）2つのラッチのうちの一方が、FPGAマトリックスを実際に構成するラッチである。このラッチは、デイジーチェーンではなく、FLUコンテキストコントローラーによって決定されると、プリロードラッチ4から構成ビットを受信する。
3）構成ラッチビットは、eFPGAマトリックスによって用いられる。
4）第2のラッチはプリロードラッチである。通常のコンテキストスイッチ動作モードでは、この第2のラッチは、FPGAマトリックス内に直接何も構成しない。したがって、タスクがFLUマトリックス内で実行されている場合であっても、その値はいつでも変更することができる。最適化された「ピンポン」コンテキストスイッチ動作モード（以下を参照）では、この第2のラッチは、マルチプレクサー7の選択に基づいてFLUマトリックス構成として選択することができる。
5）これは、構成ビットストリームロードデイジーチェーンである。構成ビットは、FLU構成コントローラー6の制御の下で1つずつシフトされる。
【０１０４】
上記で紹介したように、好ましくは、全てのダブルラッチ素子は、FLUコンテキストコントローラーが構成データをその内部にシリアルに入力することができるように互いにチェーン接続される。
【０１０５】
加えて、FLUマトリックスのトポロジーに応じて、構成チェーンを複数のチャンクに分割して、ロード時間を最小にするためにビットストリームのロードの並列化を可能にすることができる。
【０１０６】
図14に示すように、ビットストリームデータは、通常、FLUコンテキストコントローラー10によってオンチップ不揮発性メモリ12からフェッチされ、構成チェーン内に適切に供給される。
【０１０７】
データの態様
本発明は、データ記憶用にダブルフロップ素子を提供する。
【０１０８】
組み込みeFPGAは、通常、FLUマップドタスクアルゴリズムデータ記憶に専用化された多くのフリップフロップ素子を特徴として備える。eFPGAにおけるコンテキストタイムスライスコンテキストスイッチにおいて、それらの素子の値は、コンテキストスイッチの前に外部記憶装置にセーブされ、タスクがFLUマトリックスにおいてリロード及びレジュームされるときにリストアされることは重要である。
【０１０９】
ダブルフロップのメカニズムは、図13に示すように実施される。
1）これは、「動作（operating）」フリップフロップである。FLUマトリックスが所与のタスクを現在実行しているとき、このフリップフロップは、このタスクによってそれ自体のアルゴリズムの目的に用いられる。この「動作」状態は、フリップフロップ入力マルチプレクサー5が「0」ラインを選択したとき、及び、FLUコンテキストコントローラー3が安定したクロックをこのフリップフロップに与えるときに選択される。
2）これは、セーブ＆リストアフリップフロップである。このフリップフロップは、FLUマップド動作タスクによって用いることができない。したがって、その値は、アプリケーションに機能的影響を与えることなく、動作中にいつでも変更することができる。
このフリップフロップは、FLUマトリックス7の他のダブルフロップ構造との間で同一のフロップとシフトレジスタとして接続される。このフリップフロップは、FLUコンテキストコントローラー3の命令に応じて3つのモードで動作する。
a．シフトインモード：この場合には、ロードマルチプレクサー6がライン「1」を選択し、フリップフロップ1が「動作」モードにある。その後、コントローラーが、チェーン内のダブルフロップ素子の数と同数のフリップフロップ2のクロックパルスを生成する。これと並行して、コントローラーは、FLUの外部の揮発性メモリ（SRAM、DRAM等）からコンテキストデータをフェッチする。その後、コントローラーは、シフトインシーケンスの終了時に、全てのコンテキストデータがセーブ＆リストアフリップフロップ2にプリロードされるように、このデータをデイジーチェーンに同期して供給する。
b．スイッチモード：このモードでは、ロードマルチプレクサー（6）がライン「0」を選択し、動作マルチプレクサー（5）がライン「1」を選択する。その後、コントローラーが単一のクロックサイクルを生成する。このクロックパルスは、フロップ（1）からフロップ（2）に及びその逆方向にデータを同時に転送する。
c．スイッチアウトモード：このモードは、デュアルフロップ素子の観点からシフトインモードと同一である。相違は、チェーンからデータを取り出し、このデータを揮発性メモリに転送するコントローラーにある。
【０１１０】
シフトインモード及びをシフトアウトモードは、コンテキストコントローラーによって同時に実行することができることに留意されたい。セーブされたデータをシフトアウトしながらリストアデータをシフトインすることが完全に可能である。
【０１１１】
図14は、FLUマトリックスにおいてダブルフロップ素子をチェーンに編成する方法を示している。FLUマトリックスのトポロジーに応じて、チェーンは、シフトインアウト動作の遅延を最小にするように複数のチャンクに分割される。
【０１１２】
出力ポートの態様
FLUマトリックスにおいてタスク間のスイッチが行われるとき、それらのタスクがFPCUの残りの部分とどのように相互作用するのかに関する潜在的な問題を解決しなければならない。
【０１１３】
入力ポートは問題を引き起こさない。
【０１１４】
一方、出力ポートについては、以下の異なる状況を考慮しなければならない。
・タスクスイッチクロックサイクルの間、FLUの外部にエクスポートされる中間値が潜在的に破損されることを回避するために、全ての出力ポートがフリーズされることを確保しなければならない。
・出力ポートが新たなタスクによって用いられない場合には、その出力ポートがスイッチ前に別のタスクによって以前用いられていたことを考慮しなければならない。そして、この別のタスクは、将来的にリロードされる場合がある。そのため、出力ポート値は、外部のFLUが影響を受けないように安定した状態で維持されなければならない。
・出力ポートが新たなタスクによって用いられる場合には、ポートのロジック値はFLUマトリックス内から移動される。
【０１１５】
図15は、それらのシナリオの技術的な解決策を説明している。
【０１１６】
本発明によるコンテキストスイッチ方法
上記解決策は、FLUコンテキストスイッチを実行しなければならない理由及び時間に関して前提を置かない。リアルタイムオペレーティングシステムにおいて行われるものとの一貫性を保つ場合、リアルタイム制約に基づいてスイッチの決定を行うハイパーバイザーモジュールが存在するべきである。これは、組み込みソフトウェア決定とすることもできるし、FLUマップドアプリケーション自体の一部とすることもできるし、ハードコードされた状態機械とすることもできる。
【０１１７】
図17は、コンテキストスイッチ要求を受信するとすぐにFLUコンテキストコントローラーによって取り扱われるべき高レベルアルゴリズムを記載している。このシーケンスは、以下の3つの主なフェーズに分割することができる。
1）FLUコンテキストコントローラーは、次のタスクプリロード命令を受信すると、以下の2つの並列動作を開始する。
a．次のタスクがデータコンテキストリストアを必要とする場合には、適切なデータがメモリから取り出され、ダブルフロップチェーンにシフトインされる。
b．次のタスク構成ビットストリームがフラッシュからフェッチされ、ダブルラッチ素子にシフトインされる。
2）コントローラーは、次に、有効なタスクスイッチの要求を受信するまで待機する。その後、1つのクロックサイクルにおいて、コントローラーは、FLU動作を停止し（すなわち、これまで動作していたタスクの状態をフリーズする）、同時にダブルフロップコンテンツをスイッチし、構成ラッチに構成ビットを転送する。
3）最後に、必要に応じて、これまで動作していたタスクのデータコンテキストがダブルフロップチェーンからシフトアウトされ、メモリにセーブされる。
【０１１８】
ピンポンモードの場合には、このアルゴリズムを図18に示すように簡略化することができることに留意されたい（このアルゴリズムは、プリロードラッチ及び構成ラッチが、ピンポンモードにおいてスイッチされる2つのアプリケーションのうちの一方でそれぞれこれまで満たされていたものと仮定する）。
【０１１９】
一般的な場合には、FLUマトリックスは、複数のタスク間をスイッチすることができる。このメカニズムに理論的な限界はない。現実には、幾つかの限界が以下の理由から現れる。
・次のシーケンスは、タスクの活動期間が、シフトイン／アウト遅延を覆い隠すほど十分長いものであることを必要とする。タスクが短すぎる場合、このメカニズムはそれでも機能するが、或るスイッチレイテンシーの影響を受けるという犠牲を伴う。
・タスクがより異なるほど、不揮発性メモリサイズはより増加する。
・タスクがより異なるほど、データコンテキストセーブ＆リストアメモリサイズはより増加する。
【０１２０】
図19は、3つのタスクがFLUにおいて反復して動作している状況を説明している。
【０１２１】
図20は、2つのタスクのみがFLUにおいて連続的に交番される場合を記載しており、この場合にコンテキスト構成及びデータのシフトイン／アウトの必要がないので、前のシーケンスを最適化することができる。
【０１２２】
FLU構成フォールトトレランスに関する追加の実施形態
FLUの機能的安全性に関連する追加の利点がある。これは、ISO26262安全性規格に関するFPCU構成要素（自動車）の標的市場のために重要である。
【０１２３】
この利点は、以下の技術アセスメントから得られる。
【０１２４】
「ラッチ」ロジック素子の特性を考えた場合に、この素子は、以下の特定の動作状態に置かれたときに最も高いフォールトトレランスに達すると結論することができる。
・ラッチクロックが非アクティブに維持される。
・ラッチの入力（DF）及び出力（Q）のロジックレベルが同一である。
【０１２５】
以下の表は、55 nmのCMOS技術におけるラッチ素子のフォールトトレランスを示す安全フォールト割合（safefault fraction）を与える。安全フォールト割合が高いほど、フォールトトレランスはより良好である。それらの結論は、同様の結果を有する他のCMOS技術に置き換えることができる。
【０１２６】
【表１】
2021509510.tif 000003
【０１２７】
第1の状態は、FLUマトリックスが或る特定のタスクについて構成されるとき、構成ラッチの値はフリーズされるので、本発明に関して暗黙的である。したがって、それらのクロックは、FLUコンテキストコントローラーによって非アクティブに維持される。
【０１２８】
第2の状態は、ダブルラッチ構造のために容易に保証することができる。実際、コンテキストスイッチの実行後、素子内の2つのラッチは、同じロジックレベルを有する。したがって、ラッチ2は、安全な状態に維持される。
【０１２９】
一方、上記に定義した汎用アルゴリズムを維持する場合、安全状態は、FLUタスクの実行の全期間の間、保証することができない。したがって、機能的安全性レベルは予想よりも低い。図21はこの例を与える。
【０１３０】
この問題の第1のレベルの抑制は、制御アルゴリズムの再定義を必要としない。それは、ロード要求及び実行要求がタスク実行中に可能な限り遅くトリガーされることの問題である。このストラテジーは、処理効率に影響を与えることなく安全期間を最大にする。それは、タスク実行期間がタスクロード遅延よりもはるかに長い場合には、良好なトレードオフである可能性がある。図22はこのストラテジーを示している。
【０１３１】
第2のレベルの抑制は、図23のようなFLUコンテキスト制御アルゴリズムを用いることにある。
【０１３２】
図24は、このストラテジーの利点を示している。このストラテジーは、全てのタスクが安全な状態で100%実行されることを保証する。このストラテジーは、非アクティブフェーズのために性能の点でコストを有する。
【０１３３】
FLU低電力ユースケース
本発明の特定の実施形態では、FLU低電力ユースケースが提供される。この特徴は、（特にモバイルプロセッサにおいて）CPUコアに既に存在するものと比較することができる。それらのプロセッサにおいて、CPUがタスクペンディングを有しないとき、OSはCPUコアを低電力状態に置くことを決定することができる（これは、Linux（登録商標）カーネルでは「アイドル管理」と呼ばれる）。ハードウェアの能力に応じて異なるレベルの低電力状態が存在し得る。OSは、全ての利用可能なレベルの中から適用基準に応じて選択する。
○CPUクロック周波数変更
○CPUクロック停止
○キャッシュメモリ保持を伴うCPUコア電力スイッチオフ
○CPU+キャッシュコア電力オフ
○．．．
【０１３４】
本発明は、本発明がこれを可能にするコンテキストセーブ／リストアメカニズム及び回路を提供するという点で、本発明者らのFLUと同じ種類の「アイドル管理」を提供する。
○FLUアルゴリズムは、「アイドル」であるとき、「低電力」状態に入ることができる。
○FLUコンテキストセーブ／リストアメカニズムは、深い低電力状態（FLU電力スイッチオフを伴う）を有することを可能にする。
○このモードの間、FLUマトリックスの電力消費は零である。
【０１３５】
タイムスライス比較（time-sliced and compare）
本発明は、タイムスライス比較手法と呼ばれる機能的安全性の解決策を提供する。これは、本発明者らのFLUコンテキストスイッチを用いるロックステップメカニズムの特定の実施態様である。
・背景：ロックステップ
○現行技術水準の「ロックステップ」アーキテクチャにおいて、同じロジック機能（CPU、DMA、その他のもの）がシリコン上で複製される。
○次に、双方の並列インスタンスがシステムの残りの部分から正確に同じ入力を受信する。
○そして、双方のインスタンスの出力が、任意のクロックサイクルにおいて比較される。正常状態では、この比較は決して失敗しない。
○比較が失敗した場合、これは、2つのインスタンスのうちの一方に問題があることを意味する。その場合、安全性エラーが安全性マネージャーモジュールに発せられ、フォールトリアクションシナリオに入る。
○ロックステップメカニズムの幾つかの変形形態を考えることができるが、原理は同じままである。
・コンテキストスイッチを有しないFPGAを用いて同じことを行いたい場合には、ユーザー機能を複製しなければならない。これは、2倍のFPGAリソースを要する（換言すれば、ユーザーアルゴリズムは、FPGAリソースの50%のみを用いることができる）。
・ここで、本発明者らは、ロックステップ原理の新たな実施態様を提案する。
○FLUにおいて同じアルゴリズムを2回プログラミングし、それらをコンテキストスイッチによる高速のタイムスライス形式で実行させる。
■双方のコンテキストは、同じFLU入力を用いるが、異なるFLU出力を駆動するようにプログラミングされる。
○次に、双方のコンテキスト出力を（外部の専用ロジックを用いて）首尾よく比較し、それらが同一であることを確認する。
○利点は、ユーザーアルゴリズムがFLUリソースの100％を専有することができることである。
【０１３６】
本発明は、以下のように形式化することができる。
【０１３７】
1．装置（300）であって、（i）（a）複数のプログラマブルロジックユニット（210）と、（b）複数の第1の1ビットクロック制御記憶素子（20）とを有するマトリックス（200）であって、上記プログラマブルロジックユニット及び上記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、上記第1の1ビットクロック制御記憶素子のそれぞれについて、上記第1の1ビットクロック制御記憶素子のタスクごとにそれぞれの値をローカルにストア又はリストアするデータストアリストア回路（10）が設けられる、マトリックスを備える、装置。
【０１３８】
2．上記タスクの実行の安全なスイッチに従って上記データストアリストア回路の命令又は信号を生成する全体制御システム（230）を更に備える、クレーム1に記載の装置。
【０１３９】
3．上記データストアリストア回路は、上記ストア又は上記リストアが1クロックサイクルで実行されるように構成される、クレーム1又は2に記載の装置
【０１４０】
4．上記装置は、上記システムの外部にあるデータメモリ（310）を更に備え、上記データストアリストア回路は、（i）1つのタスクに関連するデータを上記メモリから上記データストアリストア回路内にプリロードし、及び／又は（ii）上記データストアリストア回路における1つのタスクに関連するデータを上記データメモリにポストストアするために設けられ、それによって、上記プリロード及び／又は上記ポストストアを、別のタスクが実行されている間に該タスクの実行を妨げることなく行うことができる、クレーム1〜3のいずれか1項に記載の装置。
【０１４１】
5．上記装置は、構成ビットメモリ（320）を更に備え、それによって、上記プログラマブルロジックユニットのそれぞれについて、構成ビット記憶回路（700）が設けられ、該構成ビット記憶回路はそれぞれ、（i）第3の1ビットクロック制御記憶素子（710）と、（ii）上記第3の1ビットクロック制御記憶素子の第1の入力と、（iii）上記第4の1ビットクロック制御記憶素子に接続された少なくとも1つの第4の1ビットクロック制御記憶素子（720）とを備え、上記全体制御システムは、上記構成ビット記憶回路を制御するために更に提供され、上記全体制御システムは、命令を受信する入力手段と、該受信された命令に従って動作する回路機構とを備え、（i）上記メモリから上記第3の1ビットクロック制御記憶素子に構成ビットをストアする、上記構成ビット回路のクロック信号、又は（ii）上記第3の1ビットクロック制御記憶素子から第4の1ビットクロック制御記憶素子（複数の場合もある）（又は上記第4の1ビットクロック制御記憶素子のうちの1つ）に構成ビットをロードする、上記構成ビット回路のクロック信号、を更に生成することが可能である、クレーム1〜4のいずれか1項に記載の装置。
【０１４２】
6．上記第3の1ビットクロック制御記憶素子又は上記第4の1ビットクロック制御記憶素子のうちの1つ以上はフリップフロップである、クレーム5に記載の装置。
【０１４３】
7．上記構成ビット記憶回路は、構成ビットを上記第3の1ビットクロック制御記憶素子から第4の1ビットクロック制御記憶素子（複数の場合もある）（又は上記第4の1ビットクロック制御記憶素子のうちの1つ）に1クロックサイクルでロードするように構成される、クレーム6に記載の装置。
【０１４４】
8．複数の上記構成ビット記憶回路が直列に配置される、クレーム5〜7のいずれか1項に記載の装置。
【０１４５】
9．複数の上記第3の1ビットクロック制御記憶素子は直列に配置され、特に、1つの第3の1ビットクロック制御記憶素子の出力は、直列配置における次の第3の1ビットクロック制御記憶素子の上記第1の入力としての機能を果たす、クレーム5に記載の装置。
【０１４６】
10．メモリ及び複数の上記構成ビット記憶回路及び／又はシフトレジスタは、上記記憶動作の並列化を可能にするように構成される、クレーム5〜9のいずれか1項に記載の装置。
【０１４７】
11．自動車に適したプラットフォームであって、電気パワートレインと、該電気パワートレインの制御を提供する電気パワートレイン管理ハードウェアとを備え、上記管理ハードウェアは、クレーム1〜10のいずれか1項に記載の装置を含む、少なくとも1つのソフトウェアプログラマブルユニット及び少なくとも1つのハードウェアプログラマブルユニットを備える異種のハードウェアシステムを含む、プラットフォーム。
【０１４８】
12．（i）（a）複数のプログラマブルロジックユニットと、（b）複数の第1の1ビットクロック制御記憶素子とを有するシステムを備える装置における少なくとも2つのタスクの逐次実行の方法であって、上記プログラマブルロジックユニット及び上記第1の1ビットクロック制御記憶素子はアレイに配置され、該方法は、（i）上記タスクの実行の安全なスイッチに従って上記データストアリストア回路の命令又は信号を生成することと、（ii）上記第1の1ビットクロック制御記憶素子のタスクごとにそれぞれの値をローカルにストア又はリストアするために、第1の1ビットクロック制御記憶素子ごとに設けられたデータストアリストア回路に命令又は信号を提供することとを含む、方法。
【０１４９】
13．上記方法は、構成ビットメモリを備える装置に適合され、上記プログラマブルロジックユニットのそれぞれについて構成ビット記憶回路が設けられ、該構成ビット記憶回路はそれぞれ、（i）第3の1ビットクロック制御記憶素子と、（ii）上記第4の1ビットクロック制御記憶素子に接続された少なくとも1つの第4の1ビットクロック制御記憶素子とを備え、上記方法は、（iii）（i）上記メモリから上記第3の1ビットクロック制御記憶素子に構成ビットをストアする、上記構成ビット回路のクロック信号、又は（ii）上記第3の1ビットクロック制御記憶素子から第4の1ビットクロック制御記憶素子（複数の場合もある）（又は上記第4の1ビットクロック制御記憶素子のうちの1つ）に構成ビットをロードする、上記構成ビット回路のクロック信号、を生成することを更に含む、クレーム12に記載の方法。
【０１５０】
14．（i）（a）複数のプログラマブルロジックユニットと、（b）複数の第1の1ビットクロック制御記憶素子とを有するシステムを備える装置における少なくとも2つのタスクの逐次実行の方法であって、上記プログラマブルロジックユニット及び上記第1の1ビットクロック制御記憶素子はアレイに配置され、上記プログラマブルロジックユニットのそれぞれについて構成ビット記憶回路が設けられ、該方法は、（a）1つのタスクが実行されている間に、別のタスクに関連する構成ビットを上記構成ビット記憶回路にストアする、上記構成ビット回路のクロック信号を生成することと、（b）1つのクロックサイクル内において、上記別のタスクを実行することができるように上記構成ビットに基づいて上記プログラマブルロジックユニットを構成する、上記構成ビット回路のクロック信号を生成することと、（c）上記別のタスクの実行を開始する、上記構成ビット回路のクロック信号を生成することとを含む、方法。
【０１５１】
15．第1の1ビットクロック制御記憶素子ごとに設けられた上記データストアリストア回路の命令又は信号であって、（a）上記1つのタスクが実行されている間に、上記第1の1ビットクロック制御記憶素子における上記別のタスクに関連するそれぞれの値をローカルにリストアすることを準備する命令又は信号と、（b）1つのクロックサイクル内において、上記第1の1ビットクロック制御記憶素子に上記別のタスクのそれらの値をストアするとともに、上記1つのタスクの値をストアする命令又は信号とを生成することを更に含む、クレーム14に記載の方法。
【０１５２】
16．コンピューター可読コードを含むコンピュータープログラム製品であって、該コードは、クレーム2に記載の装置の全体制御システム（230）によって実行されると、クレーム12又は13又は14又は15に記載の方法の実行を引き起こす、コンピュータープログラム製品。
【符号の説明】
【０１５３】
１  フリップフロップ
２  ラッチ，リストアフリップフロップ，フリップフロップ
３  FLUコンテキストコントローラー
４  プリロードラッチ
５  フリップフロップ入力マルチプレクサー
６  FLU構成コントローラー，ロードマルチプレクサー
７  FLUマトリックス，マルチプレクサー
１０  FLUコンテキストコントローラー，データストアリストア回路，回路
１２  オンチップ不揮発性メモリ
２０  回路
３０  ビットクロック制御記憶素子，フリップフロップ
４０  入力
５０  入力
５５  入力
６０  スイッチ素子
７０  スイッチ素子
８０  出力
９０  制御回路
９９  制御システム
１１０  ビットクロック制御記憶素子
１５０  出力
２００  マトリックス
２１０  プログラマブルロジックユニット，プログラマブルロジック
２２０  データストアリストア回路
２３０  制御回路，制御システム
３００  装置
３１０  データメモリ
３２０  構成ビットメモリ
６００  出力回路，サブシステム
６１０  スイッチ素子
６３０  出力ポート
６４０  制御回路，制御システム
７００  回路，構成ビット記憶回路
７０５  入力
７１０  ビットクロック制御記憶素子
７１５  出力
７２０  ビットクロック制御記憶素子
７３０  制御システム
７３５  出力
７６０  スイッチ素子
８００  マトリックス，システム
９００  制御回路
【図１】
2021509510.tif 000004
【図２】
2021509510.tif 000005
【図３】
2021509510.tif 000006
【図４】
2021509510.tif 000007
【図５】
2021509510.tif 000008
【図６】
2021509510.tif 000009
【図７】
2021509510.tif 000010
【図８】
2021509510.tif 000011
【図９】
2021509510.tif 000012
【図１０】
2021509510.tif 000013
【図１１】
2021509510.tif 000014
【図１２】
2021509510.tif 000015
【図１３】
2021509510.tif 000016
【図１４】
2021509510.tif 000017
【図１５】
2021509510.tif 000018
【図１６】
2021509510.tif 000019
【図１７】
2021509510.tif 000020
【図１８】
2021509510.tif 000021
【図１９】
2021509510.tif 000022
【図２０】
2021509510.tif 000023
【図２１】
2021509510.tif 000024
【図２２】
2021509510.tif 000025
【図２３】
2021509510.tif 000026
【図２４】
2021509510.tif 000027
【手続補正書】
【提出日】令和2年3月25日(2020.3.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
装置（300）であって、
（A）（i）（a）複数のプログラマブルロジックユニット（210）と、（b）複数の第1の1ビットクロック制御記憶素子（20）とを有するマトリックス（200）であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、前記第1の1ビットクロック制御記憶素子のそれぞれについて、前記第1の1ビットクロック制御記憶素子のタスクごとに前記タスク中に計算するように前記それぞれの値をローカルにストア又はリストアするデータストアリストア回路（10）が設けられる、マトリックスと、
（B）前記マトリックスの外部にあるデータメモリ（310）と、
を備え、
前記データストアリストア回路は、（i）1つのタスクに関連する値を前記データメモリから前記データストアリストア回路内にプリロードし、及び（ii）前記データストアリストア回路における1つのタスクに関連する値を前記データメモリにポストストアするために設けられ、それによって、前記プリロード及び／又は前記ポストストアを、別のタスクが実行されている間に該タスクの実行を妨げることなく行うことができる、装置。
【請求項２】
複数の前記データストアリストア回路が直列に配置されるように設計され、一方から他方に情報をシフトすることができるように直列に配置される、請求項1に記載の装置。
【請求項３】
前記データストアリストア回路は、（i）少なくとも1つの第2の1ビットクロック制御記憶素子を備え、
前記複数の前記第2の1ビットクロック制御記憶素子は、シフトレジスタを規定し、シフトレジスタとして動作するように直列に配置され、それによって1つの第2の1ビットクロック制御記憶素子の前記出力は、前記入力（50）及び出力（150）を介してデータ通信を確立するために前記直列配置において次の第2の1ビットクロック制御記憶素子の入力としての機能を果たす、請求項1又は2に記載の装置。
【請求項４】
前記データメモリは不揮発性メモリである、請求項1〜3のいずれか1項に記載の装置（300）。
【請求項５】
（i）（a）複数のプログラマブルロジックユニットと、（b）複数の第1の1ビットクロック制御記憶素子とを有する装置における少なくとも2つのタスクのフォールトトレランスが強化された逐次実行の方法であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、前記プログラマブルロジックユニットのそれぞれについて、構成ビット記憶回路が設けられ、該少なくとも2つのタスクのフォールトトレランスが強化された逐次実行の方法は、前記構成ビット記憶回路を、最も高いフォールトトレランスを有する動作状態に可能な限りすることに基づいており、該方法は、
（a）1つのタスクが実行されている間に、別のタスクに関連する構成ビットを前記構成ビット記憶回路にストアする、前記構成ビット回路のクロック信号を生成することであって、該ステップ（a）の実行は、タスク実行中に可能な限り遅くトリガーされることと、
（b）1つのクロックサイクル内において、前記別のタスクを実行することができるように前記構成ビットに基づいて前記プログラマブルロジックユニットを構成する、前記構成ビット回路のクロック信号を生成することと、
（c）前記別のタスクの実行を開始する、前記構成ビット回路のクロック信号を生成することと、
を含む、方法。
【請求項６】
（i）（a）複数のプログラマブルロジックユニットと、（b）複数の第1の1ビットクロック制御記憶素子とを有する装置における少なくとも2つのタスクのフォールトトレランスが強化された逐次実行の方法であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、前記プログラマブルロジックユニットのそれぞれについて、構成ビット記憶回路が設けられ、該少なくとも2つのタスクのフォールトトレランスが強化された逐次実行の方法は、前記構成ビット記憶回路を、最も高いフォールトトレランスを有する動作状態に可能な限りすることに基づいており、該方法は、
（a）1つのタスクが実行された後に、別のタスクに関連する構成ビットを前記構成ビット記憶回路にストアする、前記構成ビット記録回路のクロック信号を生成することと、
（b）1つのクロックサイクル内において、前記別のタスクを実行することができるように前記構成ビットに基づいて前記プログラマブルロジックユニットを構成する、前記構成ビット回路のクロック信号を生成することと、
（c）前記別のタスクの実行を開始する、前記構成ビット回路のクロック信号を生成することと、
を含む、方法。
【請求項７】
タスクスイッチが必要とされない場合には、前記装置に設けられた全体制御システムは、非アクティブクロックを有するように構成された、前記構成ビット回路のクロック信号を生成することが可能である、請求項5又は6に記載の方法。
【請求項８】
前記構成ビット記憶回路は、
（i）第3の1ビットクロック制御記憶素子（710）と、
前記第3の1ビットクロック制御記憶素子に接続された少なくとも1つの第4の1ビットクロック制御記憶素子（720）と、
を備える、請求項5又は6に記載の方法。
【請求項９】
タスクスイッチの場合に安全な動作を確保するのに必要とされる出力回路（600）を更に備える、請求項1〜4のいずれか1項に記載の装置。
【請求項１０】
前記装置は、前記出力回路（600）を備える1つ以上の出力ポート（630）を有し、
前記装置は、
（i）第3の1ビットクロック制御記憶素子（620）と、
（ii）（a）前記第1の1ビットクロック制御記憶素子のうちの1つの出力（80）又は（b）前記第3の1ビット記憶素子の前記出力のいずれかを前記出力ポートに選択的に提供する第3のスイッチ素子（610）と、を更に備え、
前記装置は、前記出力ポートのそれぞれについてシステム（600）を備え、
第2の制御システム（640）は、前記第3のスイッチ素子（複数の場合もある）のステアリング信号を提供するとともに前記第3の1ビットクロック制御記憶素子（複数の場合もある）にクロック信号を提供する、請求項9に記載の装置。
【請求項１１】
前記第3の1ビットクロック制御記憶素子（複数の場合もある）はフリップフロップである、請求項10に記載の装置。
【請求項１２】
前記第3のスイッチ素子はマルチプレクサーである、請求項10に記載の装置。
【請求項１３】
装置（300）であって、
（A）（i）（a）複数のプログラマブルロジックユニット（210）と、（b）複数の第1の1ビットクロック制御記憶素子（20）とを有するマトリックス（200）であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合されている、マトリックスと、
（B）構成ビットメモリ（320）であって、それによって、前記プログラマブルロジックユニット（複数の場合もある）のそれぞれについて、（i）該メモリからの構成ビットをストアする構成ビット記憶回路（700）が設けられる、構成ビットメモリと、
を備える、装置。
【請求項１４】
複数の前記構成ビット記憶回路が直列に配置される、請求項13に記載の装置。
【請求項１５】
前記構成ビット記憶回路はそれぞれ、
（i）第3の1ビットクロック制御記憶素子（710）と、
（ii）前記第3の1ビットクロック制御記憶素子の第1の入力と、
（iii）前記第3の1ビットクロック制御記憶素子に接続され、（i）構成ビットを前記メモリから前記第3の1ビットクロック制御記憶素子にストアするか、又は、（ii）構成ビットを前記第3の1ビットクロック制御記憶素子から第4の1ビットクロック制御記憶素子（複数の場合もある）又は該第4の1ビットクロック制御記憶素子のうちの1つにロードするために設けられた少なくとも1つの第4の1ビットクロック制御記憶素子（720）と、
を備える、請求項13又は14に記載の装置。
【請求項１６】
複数の前記第3の1ビットクロック制御記憶素子は直列に配置され、特に、1つの第3の1ビットクロック制御記憶素子の前記出力は、前記直列配置における次の第3の1ビットクロック制御記憶素子の前記第1の入力としての機能を果たす、請求項15に記載の装置。
【請求項１７】
低電力消費に適合された装置（300）であって、
（A）（i）（a）複数のプログラマブルロジックユニット（210）と、（b）複数の第1の1ビットクロック制御記憶素子（20）とを有するマトリックス（200）であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、前記第1の1ビットクロック制御記憶素子のそれぞれについて、前記第1の1ビットクロック制御記憶素子のタスクごとに前記それぞれの値をローカルにストア又はリストアするデータストアリストア回路（10）が設けられる、マトリックスと、
（B）前記マトリックスの外部にあるデータメモリ（310）と、
を備え、
前記データストアリストア回路は、（i）1つのタスクに関連するデータを前記メモリから前記データストアリストア回路内にプリロードし、及び／又は（ii）前記データストアリストア回路における1つのタスクに関連するデータを前記データメモリにポストストアするために設けられ、それによって、前記プリロード及び／又は前記ポストストアを、別のタスクが実行されているときに該タスクの実行を妨げることなく、又は、前記マトリックスが電力消費を節減するために非アクティブであるときに行うことができる、装置。
【請求項１８】
前記データメモリは（オンチップ）不揮発性メモリである、請求項17に記載の装置（300）。
【請求項１９】
電気エンジンと、
前記エンジンの制御を提供するエンジン制御ユニットハードウェアと、
を備え、
前記エンジン制御ユニットハードウェアは、請求項1〜18のいずれか1項に記載のハードウェア装置を備え、
前記エンジン制御ユニットハードウェアによって実行される前記制御アルゴリズムは、前記関連する車両の動作状態に応じて動的に適合され、それによって、該動的な適合は前記タスクスイッチを利用する。
【請求項２０】
タスクの安全な実行に適合した装置（300）であって、
（i）（a）複数のプログラマブルロジックユニット（210）と、（b）複数の第1の1ビットクロック制御記憶素子（20）とを有するマトリックス（200）、
を備え、
前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、前記第1の1ビットクロック制御記憶素子のそれぞれについて、前記第1の1ビットクロック制御記憶素子のタスクごとに前記それぞれの値をローカルにストア又はリストアするデータストアリストア回路（10）が設けられ、
前記2つのタスクは同じである（正確に同じ時間的実行を有する同じアルゴリズムが実行される）及び、前記実行の前記安全性が前記タスクの前記出力を比較することによって検証される、装置。
【請求項２１】
任意選択で電気エンジン制御ユニットハードウェア機能に専用化された複数の周辺ハードウェアユニットを備え、
前記複数の周辺ハードウェアユニットは、前記タスクの双方に同じ入力を与える、請求項２０に記載の装置。
【国際調査報告】
2021509510.tif 000028
2021509510.tif 000029
2021509510.tif 000030
2021509510.tif 000031
2021509510.tif 000032
2021509510.tif 000033