JP2021509510A - リアルタイムタスクスイッチに適合したフレキシブルロジックユニット - Google Patents

リアルタイムタスクスイッチに適合したフレキシブルロジックユニット Download PDF

Info

Publication number
JP2021509510A
JP2021509510A JP2020535647A JP2020535647A JP2021509510A JP 2021509510 A JP2021509510 A JP 2021509510A JP 2020535647 A JP2020535647 A JP 2020535647A JP 2020535647 A JP2020535647 A JP 2020535647A JP 2021509510 A JP2021509510 A JP 2021509510A
Authority
JP
Japan
Prior art keywords
clock control
bit
control storage
bit clock
storage element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020535647A
Other languages
English (en)
Other versions
JP7416429B2 (ja
Inventor
ヴェジール,ロイック,ジーン,ドミニク
サール,ブルーノ,ベルナール,ジャック
ルブラン,アンセルム,ジョゼフ,フランソワ
Original Assignee
シリコン モビリティ エスアエス
シリコン モビリティ エスアエス
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シリコン モビリティ エスアエス, シリコン モビリティ エスアエス filed Critical シリコン モビリティ エスアエス
Publication of JP2021509510A publication Critical patent/JP2021509510A/ja
Application granted granted Critical
Publication of JP7416429B2 publication Critical patent/JP7416429B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17764Structural details of configuration resources for reliability
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60LPROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
    • B60L15/00Methods, circuits, or devices for controlling the traction-motor speed of electrically-propelled vehicles
    • B60L15/20Methods, circuits, or devices for controlling the traction-motor speed of electrically-propelled vehicles for control of the vehicle or its driving motor to achieve a desired performance, e.g. speed, torque, programmed variation of speed
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0175Coupling arrangements; Interface arrangements
    • H03K19/017581Coupling arrangements; Interface arrangements programmable

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Logic Circuits (AREA)
  • Microcomputers (AREA)

Abstract

本発明は、デジタル制御がFPCU構成要素を用いて取り扱われる電気機械システムのコンテキストに適用される。本発明は、自動車の分野に限定されず、これと同様の応用分野に適用される。本発明は、或る期間にわたるFLUの全ての計算リソースの使用量を最大にすることを目的として、マイクロプロセッサにおけるタスクコンテキストスイッチと同様に、FLUのeFPGAマトリックスにおいてマッピングされたアプリケーションタスクの高速で安全なタイムスライスされたコンテキストスイッチを可能にする。【選択図】図1

Description

本発明は、デジタル制御が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技術に置き換えることができる。
Figure 2021509510
第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に記載の方法の実行を引き起こす、コンピュータープログラム製品。
1 フリップフロップ
2 ラッチ,リストアフリップフロップ,フリップフロップ
3 FLUコンテキストコントローラー
4 プリロードラッチ
5 フリップフロップ入力マルチプレクサー
6 FLU構成コントローラー,ロードマルチプレクサー
7 FLUマトリックス,マルチプレクサー
10 FLUコンテキストコントローラー,データストアリストア回路,回路
12 オンチップ不揮発性メモリ
20 回路
30 ビットクロック制御記憶素子,フリップフロップ
40 入力
50 入力
55 入力
60 スイッチ素子
70 スイッチ素子
80 出力
90 制御回路
99 制御システム
110 ビットクロック制御記憶素子
150 出力
200 マトリックス
210 プログラマブルロジックユニット,プログラマブルロジック
220 データストアリストア回路
230 制御回路,制御システム
300 装置
310 データメモリ
320 構成ビットメモリ
600 出力回路,サブシステム
610 スイッチ素子
630 出力ポート
640 制御回路,制御システム
700 回路,構成ビット記憶回路
705 入力
710 ビットクロック制御記憶素子
715 出力
720 ビットクロック制御記憶素子
730 制御システム
735 出力
760 スイッチ素子
800 マトリックス,システム
900 制御回路

Claims (22)

  1. 装置(300)であって、
    (A)(i)(a)複数のプログラマブルロジックユニット(210)と、(b)複数の第1の1ビットクロック制御記憶素子(20)とを有するマトリックス(200)であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、前記第1の1ビットクロック制御記憶素子のそれぞれについて、前記第1の1ビットクロック制御記憶素子のタスクごとに前記それぞれの値をローカルにストア又はリストアするデータストアリストア回路(10)が設けられる、マトリックスと、
    (B)前記マトリックスの外部にあるデータメモリ(310)と、
    を備え、
    前記データストアリストア回路は、(i)1つのタスクに関連するデータを前記メモリから前記データストアリストア回路内にプリロードし、及び/又は(ii)前記データストアリストア回路における1つのタスクに関連するデータを前記データメモリにポストストアするために設けられ、それによって、前記プリロード及び/又は前記ポストストアを、別のタスクが実行されている間に該タスクの実行を妨げることなく行うことができる、装置。
  2. 複数の前記データストアリストア回路が直列に配置される、請求項1に記載の装置。
  3. 前記データストアリストア回路は、(i)少なくとも1つの第2の1ビットクロック制御記憶素子を備え、
    前記複数の前記第2の1ビットクロック制御記憶素子は、(シフトレジスタを規定し、シフトレジスタとして動作するように)直列に配置され、特に、1つの第2の1ビットクロック制御記憶素子の前記出力は、(前記入力(50)及び出力(150)を介してデータ通信を確立するために)前記直列配置において次の第2の1ビットクロック制御記憶素子の前記第2の(データ)入力としての機能を果たす、請求項1又は2に記載の装置。
  4. 前記データメモリは(オンチップ)不揮発性メモリである、請求項1〜3のいずれか1項に記載の装置(300)。
  5. (i)(a)複数のプログラマブルロジックユニットと、(b)複数の第1の1ビットクロック制御記憶素子とを有するシステムを備える装置における少なくとも2つのタスクのフォールトトレランスが強化された逐次実行の方法であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、前記プログラマブルロジックユニットのそれぞれについて、構成ビット記憶回路が設けられ、該少なくとも2つのタスクのフォールトトレランスが強化された逐次実行の方法は、前記構成ビット記憶回路を、最も高いフォールトトレランスを有する動作状態に可能な限りすることに基づいており、該方法は、
    (a)1つのタスクが実行されている間に、別のタスクに関連する構成ビットを前記構成ビット記憶回路にストアする、前記構成ビット回路のクロック信号を生成することであって、該ステップ(a)の実行は、タスク実行中に可能な限り遅くトリガーされることと、
    (b)1つのクロックサイクル内において、前記別のタスクを実行することができるように前記構成ビットに基づいて前記プログラマブルロジックユニットを構成する、前記構成ビット回路のクロック信号を生成することと、
    (c)前記別のタスクの実行を開始する、前記構成ビット回路のクロック信号を生成することと、
    を含む、方法。
  6. (i)(a)複数のプログラマブルロジックユニットと、(b)複数の第1の1ビットクロック制御記憶素子とを有するシステムを備える装置における少なくとも2つのタスクのフォールトトレランスが強化された逐次実行の方法であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、前記プログラマブルロジックユニットのそれぞれについて、構成ビット記憶回路が設けられ、該少なくとも2つのタスクのフォールトトレランスが強化された逐次実行の方法は、前記構成ビット記憶回路を、最も高いフォールトトレランスを有する動作状態に可能な限りすることに基づいており、該方法は、
    (a)1つのタスクが実行された後に、別のタスクに関連する構成ビットを前記構成ビット記憶回路にストアする、前記構成ビット回路のクロック信号を生成することと、
    (b)1つのクロックサイクル内において、前記別のタスクを実行することができるように前記構成ビットに基づいて前記プログラマブルロジックユニットを構成する、前記構成ビット回路のクロック信号を生成することと、
    (c)前記別のタスクの実行を開始する、前記構成ビット回路のクロック信号を生成することと、
    を含む、方法。
  7. タスクスイッチが必要とされない場合には、前記装置に設けられた全体制御システムは、非アクティブクロック信号を有するように構成された、前記構成ビット回路のクロック信号を生成することが可能である、請求項5又は6に記載の方法。
  8. 前記構成ビット記憶回路は、
    (i)第3の1ビットクロック制御記憶素子(710)と、
    前記第3の1ビットクロック制御記憶素子に接続された少なくとも1つの第4の1ビットクロック制御記憶素子(720)と、
    を備える、請求項5又は6に記載の方法。
  9. タスクスイッチの場合に安全な動作を確保するのに必要とされる出力回路(600)を更に備える、請求項1〜4のいずれか1項に記載の装置。
  10. 前記装置は、前記出力回路(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に記載の装置。
  11. 前記第3の1ビットクロック制御記憶素子(複数の場合もある)はフリップフロップである、請求項10に記載の装置。
  12. 前記第3のスイッチ素子は(2入力)マルチプレクサーである、請求項10に記載の装置。
  13. 装置(300)であって、
    (A)(i)(a)複数のプログラマブルロジックユニット(210)と、(b)複数の第1の1ビットクロック制御記憶素子(20)とを有するマトリックス(200)であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合されている、マトリックスと、
    (B)構成ビットメモリ(320)であって、それによって、前記プログラマブルロジックユニットのそれぞれについて、(i)該メモリからの構成ビットをストアする構成ビット記憶回路(700)が設けられる、構成ビットメモリと、
    を備える、装置。
  14. 複数の前記構成ビット記憶回路が直列に配置される、請求項13に記載の装置。
  15. 前記構成ビット記憶回路はそれぞれ、
    (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に記載の装置。
  16. 複数の前記第3の1ビットクロック制御記憶素子は直列に配置され、特に、1つの第3の1ビットクロック制御記憶素子の前記出力は、前記直列配置における次の第3の1ビットクロック制御記憶素子の前記第1の入力としての機能を果たす、請求項15に記載の装置。
  17. 低電力消費に適合された装置(300)であって、
    (A)(i)(a)複数のプログラマブルロジックユニット(210)と、(b)複数の第1の1ビットクロック制御記憶素子(20)とを有するマトリックス(200)であって、前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、前記第1の1ビットクロック制御記憶素子のそれぞれについて、前記第1の1ビットクロック制御記憶素子のタスクごとに前記それぞれの値をローカルにストア又はリストアするデータストアリストア回路(10)が設けられる、マトリックスと、
    (B)前記マトリックスの外部にあるデータメモリ(310)と、
    を備え、
    前記データストアリストア回路は、(i)1つのタスクに関連するデータを前記メモリから前記データストアリストア回路内にプリロードし、及び/又は(ii)前記データストアリストア回路における1つのタスクに関連するデータを前記データメモリにポストストアするために設けられ、それによって、前記プリロード及び/又は前記ポストストアを、別のタスクが実行されているときに該タスクの実行を妨げることなく、又は、前記マトリックスが(電力消費を節減するために)非アクティブであるときに行うことができる、装置。
  18. 前記データメモリは(オンチップ)不揮発性メモリである、請求項17に記載の装置(300)。
  19. 電気エンジンと、
    前記エンジンの制御を提供するエンジン制御ユニットハードウェアと、
    を備え、
    前記エンジン制御ユニットハードウェアは、請求項1〜18のいずれか1項に記載の異種のハードウェアシステムを備える、装置。
  20. 前記エンジン制御ユニットハードウェアによって実行される前記制御アルゴリズムは、前記関連する車両の動作状態(速度、バッテリーレベル、路面凹凸等)に応じて動的に適合され、それによって、該動的な適合は前記タスクスイッチを利用する、請求項19に記載の装置。
  21. タスクの安全な実行に適合した装置(300)であって、
    (i)(a)複数のプログラマブルロジックユニット(210)と、(b)複数の第1の1ビットクロック制御記憶素子(20)とを有するマトリックス(200)、
    を備え、
    前記プログラマブルロジックユニット及び前記第1の1ビットクロック制御記憶素子はアレイに配置され、該装置は、少なくとも2つのタスクの逐次実行に適合され、それによって、前記第1の1ビットクロック制御記憶素子のそれぞれについて、前記第1の1ビットクロック制御記憶素子のタスクごとに前記それぞれの値をローカルにストア又はリストアするデータストアリストア回路(10)が設けられ、
    前記2つのタスクは同じである(正確に同じ時間的実行を有する同じアルゴリズムが実行される)(及び、前記実行の前記安全性が前記タスクの前記出力を比較することによって検証される)、装置。
  22. 任意選択で電気エンジン制御ユニットハードウェア機能に専用化された複数の周辺ハードウェアユニットを備え、
    前記複数の周辺ハードウェアユニットは、前記タスクの双方に同じ入力を与える、請求項21に記載の装置。
JP2020535647A 2017-12-26 2018-12-18 リアルタイムタスクスイッチに適合したフレキシブルロジックユニット Active JP7416429B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP17210568.6 2017-12-26
EP17210568 2017-12-26
EPPCT/EP2018/056477 2018-03-15
PCT/EP2018/056477 WO2019129389A1 (en) 2017-12-26 2018-03-15 Flexible logic unit adapted for real-time task switching
PCT/EP2018/085476 WO2019129538A1 (en) 2017-12-26 2018-12-18 Flexible logic unit adapted for real-time task switching

Publications (2)

Publication Number Publication Date
JP2021509510A true JP2021509510A (ja) 2021-03-25
JP7416429B2 JP7416429B2 (ja) 2024-01-17

Family

ID=60990588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020535647A Active JP7416429B2 (ja) 2017-12-26 2018-12-18 リアルタイムタスクスイッチに適合したフレキシブルロジックユニット

Country Status (5)

Country Link
US (1) US20200334081A1 (ja)
EP (1) EP3732569B1 (ja)
JP (1) JP7416429B2 (ja)
CN (1) CN111670430B (ja)
WO (2) WO2019129389A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113892234A (zh) * 2019-05-07 2022-01-04 芯力能简易股份公司 柔性逻辑硬件的空间分离
US20220321403A1 (en) * 2021-04-02 2022-10-06 Nokia Solutions And Networks Oy Programmable network segmentation for multi-tenant fpgas in cloud infrastructures

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244238A (ja) * 2009-04-03 2010-10-28 Fujitsu Semiconductor Ltd リコンフィギュラブル回路及びリコンフィギュラブル回路システム
JP2017188881A (ja) * 2016-04-01 2017-10-12 株式会社半導体エネルギー研究所 半導体装置、電子部品、および電子機器

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69034028T2 (de) * 1989-05-04 2003-10-09 Texas Instruments Inc., Dallas Verfahren und System zur Bestimmung von Min/Max Werten
US6567839B1 (en) * 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6175247B1 (en) * 1998-04-14 2001-01-16 Lockheed Martin Corporation Context switchable field programmable gate array with public-private addressable sharing of intermediate data
US6107821A (en) * 1999-02-08 2000-08-22 Xilinx, Inc. On-chip logic analysis and method for using the same
US7454546B1 (en) * 2006-01-27 2008-11-18 Xilinx, Inc. Architecture for dynamically reprogrammable arbitration using memory
US8095782B1 (en) * 2007-04-05 2012-01-10 Nvidia Corporation Multiple simultaneous context architecture for rebalancing contexts on multithreaded processing cores upon a context change
US8954996B2 (en) * 2009-12-11 2015-02-10 Red Hat, Inc. Profiling the system providing performance statistics in real time
WO2014008234A1 (en) * 2012-07-02 2014-01-09 Microsemi Soc Corp. On-chip probe circuit for detecting faults in an fpga
US9899066B2 (en) * 2012-09-10 2018-02-20 Texas Instruments Incorporated Priority based backup in nonvolatile logic arrays
US9252778B2 (en) * 2013-09-27 2016-02-02 Scaleo Chip Robust flexible logic unit
US9048827B2 (en) 2013-09-27 2015-06-02 Scaleo Chip Flexible logic unit
US9552236B2 (en) * 2015-05-12 2017-01-24 International Business Machines Corporation Tasks—RCU detection of tickless user mode execution as a quiescent state
CN104915303B (zh) * 2015-06-23 2017-11-21 北京工业大学 基于PXIe总线的高速数字I/O系统
EP3435545B1 (en) * 2015-10-15 2023-06-07 Menta System and method for testing and configuration of an fpga
US9768757B1 (en) * 2016-06-08 2017-09-19 Altera Corporation Register circuitry with asynchronous system reset
US10540200B2 (en) * 2017-11-10 2020-01-21 Advanced Micro Devices, Inc. High performance context switching for virtualized FPGA accelerators

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244238A (ja) * 2009-04-03 2010-10-28 Fujitsu Semiconductor Ltd リコンフィギュラブル回路及びリコンフィギュラブル回路システム
JP2017188881A (ja) * 2016-04-01 2017-10-12 株式会社半導体エネルギー研究所 半導体装置、電子部品、および電子機器

Also Published As

Publication number Publication date
CN111670430A (zh) 2020-09-15
WO2019129538A1 (en) 2019-07-04
WO2019129389A1 (en) 2019-07-04
JP7416429B2 (ja) 2024-01-17
CN111670430B (zh) 2024-05-10
EP3732569B1 (en) 2021-07-28
US20200334081A1 (en) 2020-10-22
EP3732569A1 (en) 2020-11-04

Similar Documents

Publication Publication Date Title
US10706496B2 (en) Function callback mechanism between a Central Processing Unit (CPU) and an auxiliary processor
US7373432B2 (en) Programmable circuit and related computing machine and method
US7600101B2 (en) Multithreaded hardware systems and methods
KR20130108469A (ko) 프로그래머블 회로 및 내장형 프로세서 시스템을 구비한 집적 회로
US20190146829A1 (en) High performance context switching for virtualized fpga accelerators
KR20050086424A (ko) 프로그램가능한 회로 및 관련 컴퓨팅 머신 및 방법
US10374605B2 (en) Logical elements with switchable connections in a reconfigurable fabric
US9252778B2 (en) Robust flexible logic unit
US9665377B2 (en) Processing apparatus and method of synchronizing a first processing unit and a second processing unit
JP2010198131A (ja) プロセッサシステム、及びプロセッサシステムの動作モード切り替え方法
JP2021509510A (ja) リアルタイムタスクスイッチに適合したフレキシブルロジックユニット
JPWO2007114059A1 (ja) データ処理装置
JP3561506B2 (ja) 演算システム
US20070136564A1 (en) Method and apparatus to save and restore context using scan cells
JP2003198362A (ja) 演算システム
JP5336398B2 (ja) 半導体集積回路、半導体集積回路の構成変更方法
Rodriguez‐Canal et al. Task‐based preemptive scheduling on FPGAs leveraging partial reconfiguration
Lari et al. Massively parallel processor architectures for resource-aware computing
US10073773B2 (en) Instruction paging in reconfigurable fabric
EP3966936B1 (en) Spatial segregation of flexible logic hardware
JP2013009044A (ja) 制御装置、処理装置、処理システム、制御プログラム
Amouri et al. FPGA implementation of an invasive computing architecture
Arifin et al. FSM-controlled architectures for linear invasion
JP2004302856A (ja) 集積回路装置およびその装置に対するデータ設定装置

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20200818

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20231024

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20231113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231222

R150 Certificate of patent or registration of utility model

Ref document number: 7416429

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02