JP2021509510A - リアルタイムタスクスイッチに適合したフレキシブルロジックユニット - Google Patents
リアルタイムタスクスイッチに適合したフレキシブルロジックユニット Download PDFInfo
- 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
Links
- 239000011159 matrix material Substances 0.000 claims abstract description 66
- 238000003860 storage Methods 0.000 claims description 271
- 239000000470 constituent Substances 0.000 claims description 72
- 238000000034 method Methods 0.000 claims description 35
- 230000036316 preload Effects 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 17
- 230000002452 interceptive effect Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 2
- 230000002093 peripheral effect Effects 0.000 claims 2
- 230000006978 adaptation Effects 0.000 claims 1
- 230000002123 temporal effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 abstract 1
- 230000007246 mechanism Effects 0.000 description 15
- 238000012546 transfer Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 102100034112 Alkyldihydroxyacetonephosphate synthase, peroxisomal Human genes 0.000 description 1
- 101000799143 Homo sapiens Alkyldihydroxyacetonephosphate synthase, peroxisomal Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000000848 angular dependent Auger electron spectroscopy Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000012073 inactive phase Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000009940 knitting Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000012071 phase Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17748—Structural details of configuration resources
- H03K19/17764—Structural details of configuration resources for reliability
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60L—PROPULSION 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/00—Methods, circuits, or devices for controlling the traction-motor speed of electrically-propelled vehicles
- B60L15/20—Methods, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/0175—Coupling arrangements; Interface arrangements
- H03K19/017581—Coupling 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
Description
・FPGAサイズがより大きくされ、複数のタスクがFPGA内で単に並列にマッピングされる。この解決策は、現実的な製造解決策とするにはコストがかかりすぎる。
・或いは、FPGAコンテンツが、タスクスイッチが必要とされるごとにリロードされる。しかし、この方法は、自動車のECUにあるオペレーティングシステムのような高速のリアルタイムオペレーティングシステムにとっては低速すぎる。この方法は、アプリケーションロード期間中にFPGAの活動を停止する必要があるので過度に低速である。また、この方法は、アプリケーションデータのセーブ(save:保存)及びリストア(restore)が必要であることに対処していない。そのため、このメカニズムは、アプリケーション自体の一部として実施しなければならず、これは、FPGAリソースが占める面積に関して多くのコストを要し、コンテキストスイッチ遅延を増加させる。
・最初のラインは、旧技術のFPGAにおいてわれることを示している。これは相対的に低速である。そのため、通常のリアルタイムの反復タスクは、全ての処理電力を消費する。この場合に、コンテキストスイッチを適用することができない。
・2番目のラインは、この同じタスクが、現代技術のFPGA上で実行されるときに動作する方法を説明している。計算電力のほとんどが失われ、他の目的に用いることができることは明らかである。
・3番目のラインは、従来の「コンテキストスイッチ」を用いて達成することができることである。この場合に、利点は非常に限られている。スイッチ遅延は許容することができない。
・4番目のラインは、本発明が目的とするもの、すなわち、ほぼ瞬時のコンテキストスイッチである。
(a)多くの異なるタスクを実行しなければならず、したがって、マトリックスに加えて、その外部にあるメモリも必要とされ、より詳細には、コンテキストスイッチのコンテキストにおいて、上記マトリックスと上記メモリとの間で往復する適したデータ転送も必要とされる、技術的に複雑なコンテキストの解決策を提供すること。
(b)対象分野において必要とされるような高いフォールトトレランス要件の必要性を考慮すること。
(c)安全な実行を高め及び/又は低電力消費をもたらす使用法等の他の有利な使用法を提供すること。
・構成ビット回路及びその「ダブルラッチ」デイジーチェーン装置。
○これは、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つのタスクの値を(ローカルに)ストアする。この最後のステップは、構成ステップと同時に行われる。幾つかの実施の形態では、上記構成は構成メモリからロードされるが、これは常に必要であるとは限らない。幾つかの特定の実施の形態では、値は、マトリックスの外部にストアされ、その後、リストアの準備は、上記メモリの外部のメモリからのフェッチを必要とする。これも常に必要であるとは限らない。
図10
・(1)構成ビット記憶回路
・FLU(フィールドプログラマブルロジックユニット)−構成ラッチ
・FLU(フィールドプログラマブルロジックユニット)ロジックへ
・FLU(フィールドプログラマブルロジックユニット)−構成プリロードラッチ
・上部の(5)プリロードシフトレジスタチェーンにおける前の素子から
・下部の(5)プリロードシフトレジスタチェーンにおける次の素子へ
・(6)FLU(フィールドプログラマブルロジックユニット)コンテキストコントローラー
・(1)構成ビット記憶回路
・FLU(フィールドプログラマブルロジックユニット)−構成ラッチ
・FLU(フィールドプログラマブルロジックユニット)ロジックへ
・FLU(フィールドプログラマブルロジックユニット)−構成プリロードラッチ
・上部の(5)プリロードシフトレジスタチェーンにおける前の素子から
・下部の(5)プリロードシフトレジスタチェーンにおける次の素子へ
・(6)FLU(フィールドプログラマブルロジックユニット)コンテキストコントローラー
・(7)スイッチ素子−セレクター−デマルチプレクサー
・(1)FLU(フィールドプログラマブルロジックユニット)データフリップフロップ
・(2)FLU(フィールドプログラマブルロジックユニット)セーブ&リストアフリップフロップ
・(3)FLU(フィールドプログラマブルロジックユニット)コンテキストコントローラー
・(5)スイッチ素子−セレクター−デマルチプレクサー
・(1)FLU(フィールドプログラマブルロジックユニット)データフリップフロップ
・(2)FLU(フィールドプログラマブルロジックユニット)セーブ&リストアフリップフロップ
・(3)FLU(フィールドプログラマブルロジックユニット)コンテキストコントローラー
・(5)スイッチ素子−セレクター−デマルチプレクサー
・(6)スイッチ素子−セレクター−デマルチプレクサー
・上部の(7)セーブ&リストアシフトレジスタチェーンにおける前の素子から
・下部の(7)セーブ&リストアシフトレジスタチェーンにおける次の素子へ
・(10)FLU(フィールドプログラマブルロジックユニット)コンテキストコントローラー
・(12)オンチップ不揮発性メモリとの通信
・(11)アレイにおける回路のレジスタ状態編成
・(1)FLU(フィールドプログラマブルロジックユニット)出力保持フリップフロップ
・(2)スイッチ素子−セレクター−デマルチプレクサー
・(3)FLU(フィールドプログラマブルロジックユニット)コンテキストコントローラー
次に、データに関する本発明の第1の態様に関して本発明を更に詳述する。
第2の制御システム640(回路及び/又はプロセッサ及び/又はコントローラー)は、上記第3のスイッチ素子(複数の場合もある)のステアリング信号を提供するとともに上記第3の1ビットクロック制御記憶素子(複数の場合もある)にクロック信号を提供する。
次に、データに関する本発明の第1の態様に関して本発明を更に詳述する。
上記のように、本発明は、引き続きリアルタイムの使用に適したものであるとともに少なくとも2つのタスクの逐次実行に適合したフレキシブルロジックユニットの使用の解決に寄与するので、データの態様(上記タスク中に計算されるようなデータ)及び構成の態様(ロジック内のプログラマブル素子の構成)の双方が、発明された上述の回路、システム及び装置によって扱われなければならず、また、扱われる。
構成ビットの態様
図10及び図11は、コンテキストスイッチコントローラー装置を付加することによってダブルラッチ構造を与える。素子は以下のとおりである。
1)これは、eFPGAマトリックスの1つの構成ビットを表す。多数のそれらの素子が、構成データをシフトすることができるようにチェーンとして互いに接続されている。
2)2つのラッチのうちの一方が、FPGAマトリックスを実際に構成するラッチである。このラッチは、デイジーチェーンではなく、FLUコンテキストコントローラーによって決定されると、プリロードラッチ4から構成ビットを受信する。
3)構成ラッチビットは、eFPGAマトリックスによって用いられる。
4)第2のラッチはプリロードラッチである。通常のコンテキストスイッチ動作モードでは、この第2のラッチは、FPGAマトリックス内に直接何も構成しない。したがって、タスクがFLUマトリックス内で実行されている場合であっても、その値はいつでも変更することができる。最適化された「ピンポン」コンテキストスイッチ動作モード(以下を参照)では、この第2のラッチは、マルチプレクサー7の選択に基づいてFLUマトリックス構成として選択することができる。
5)これは、構成ビットストリームロードデイジーチェーンである。構成ビットは、FLU構成コントローラー6の制御の下で1つずつシフトされる。
本発明は、データ記憶用にダブルフロップ素子を提供する。
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.スイッチアウトモード:このモードは、デュアルフロップ素子の観点からシフトインモードと同一である。相違は、チェーンからデータを取り出し、このデータを揮発性メモリに転送するコントローラーにある。
FLUマトリックスにおいてタスク間のスイッチが行われるとき、それらのタスクがFPCUの残りの部分とどのように相互作用するのかに関する潜在的な問題を解決しなければならない。
・タスクスイッチクロックサイクルの間、FLUの外部にエクスポートされる中間値が潜在的に破損されることを回避するために、全ての出力ポートがフリーズされることを確保しなければならない。
・出力ポートが新たなタスクによって用いられない場合には、その出力ポートがスイッチ前に別のタスクによって以前用いられていたことを考慮しなければならない。そして、この別のタスクは、将来的にリロードされる場合がある。そのため、出力ポート値は、外部のFLUが影響を受けないように安定した状態で維持されなければならない。
・出力ポートが新たなタスクによって用いられる場合には、ポートのロジック値はFLUマトリックス内から移動される。
上記解決策は、FLUコンテキストスイッチを実行しなければならない理由及び時間に関して前提を置かない。リアルタイムオペレーティングシステムにおいて行われるものとの一貫性を保つ場合、リアルタイム制約に基づいてスイッチの決定を行うハイパーバイザーモジュールが存在するべきである。これは、組み込みソフトウェア決定とすることもできるし、FLUマップドアプリケーション自体の一部とすることもできるし、ハードコードされた状態機械とすることもできる。
1)FLUコンテキストコントローラーは、次のタスクプリロード命令を受信すると、以下の2つの並列動作を開始する。
a.次のタスクがデータコンテキストリストアを必要とする場合には、適切なデータがメモリから取り出され、ダブルフロップチェーンにシフトインされる。
b.次のタスク構成ビットストリームがフラッシュからフェッチされ、ダブルラッチ素子にシフトインされる。
2)コントローラーは、次に、有効なタスクスイッチの要求を受信するまで待機する。その後、1つのクロックサイクルにおいて、コントローラーは、FLU動作を停止し(すなわち、これまで動作していたタスクの状態をフリーズする)、同時にダブルフロップコンテンツをスイッチし、構成ラッチに構成ビットを転送する。
3)最後に、必要に応じて、これまで動作していたタスクのデータコンテキストがダブルフロップチェーンからシフトアウトされ、メモリにセーブされる。
・次のシーケンスは、タスクの活動期間が、シフトイン/アウト遅延を覆い隠すほど十分長いものであることを必要とする。タスクが短すぎる場合、このメカニズムはそれでも機能するが、或るスイッチレイテンシーの影響を受けるという犠牲を伴う。
・タスクがより異なるほど、不揮発性メモリサイズはより増加する。
・タスクがより異なるほど、データコンテキストセーブ&リストアメモリサイズはより増加する。
FLUの機能的安全性に関連する追加の利点がある。これは、ISO26262安全性規格に関するFPCU構成要素(自動車)の標的市場のために重要である。
・ラッチクロックが非アクティブに維持される。
・ラッチの入力(DF)及び出力(Q)のロジックレベルが同一である。
本発明の特定の実施形態では、FLU低電力ユースケースが提供される。この特徴は、(特にモバイルプロセッサにおいて)CPUコアに既に存在するものと比較することができる。それらのプロセッサにおいて、CPUがタスクペンディングを有しないとき、OSはCPUコアを低電力状態に置くことを決定することができる(これは、Linux(登録商標)カーネルでは「アイドル管理」と呼ばれる)。ハードウェアの能力に応じて異なるレベルの低電力状態が存在し得る。OSは、全ての利用可能なレベルの中から適用基準に応じて選択する。
○CPUクロック周波数変更
○CPUクロック停止
○キャッシュメモリ保持を伴うCPUコア電力スイッチオフ
○CPU+キャッシュコア電力オフ
○...
○FLUアルゴリズムは、「アイドル」であるとき、「低電力」状態に入ることができる。
○FLUコンテキストセーブ/リストアメカニズムは、深い低電力状態(FLU電力スイッチオフを伴う)を有することを可能にする。
○このモードの間、FLUマトリックスの電力消費は零である。
本発明は、タイムスライス比較手法と呼ばれる機能的安全性の解決策を提供する。これは、本発明者らのFLUコンテキストスイッチを用いるロックステップメカニズムの特定の実施態様である。
・背景:ロックステップ
○現行技術水準の「ロックステップ」アーキテクチャにおいて、同じロジック機能(CPU、DMA、その他のもの)がシリコン上で複製される。
○次に、双方の並列インスタンスがシステムの残りの部分から正確に同じ入力を受信する。
○そして、双方のインスタンスの出力が、任意のクロックサイクルにおいて比較される。正常状態では、この比較は決して失敗しない。
○比較が失敗した場合、これは、2つのインスタンスのうちの一方に問題があることを意味する。その場合、安全性エラーが安全性マネージャーモジュールに発せられ、フォールトリアクションシナリオに入る。
○ロックステップメカニズムの幾つかの変形形態を考えることができるが、原理は同じままである。
・コンテキストスイッチを有しないFPGAを用いて同じことを行いたい場合には、ユーザー機能を複製しなければならない。これは、2倍のFPGAリソースを要する(換言すれば、ユーザーアルゴリズムは、FPGAリソースの50%のみを用いることができる)。
・ここで、本発明者らは、ロックステップ原理の新たな実施態様を提案する。
○FLUにおいて同じアルゴリズムを2回プログラミングし、それらをコンテキストスイッチによる高速のタイムスライス形式で実行させる。
■双方のコンテキストは、同じFLU入力を用いるが、異なるFLU出力を駆動するようにプログラミングされる。
○次に、双方のコンテキスト出力を(外部の専用ロジックを用いて)首尾よく比較し、それらが同一であることを確認する。
○利点は、ユーザーアルゴリズムがFLUリソースの100%を専有することができることである。
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)
- 装置(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に記載の装置。
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)
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)
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)
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 |
-
2018
- 2018-03-15 WO PCT/EP2018/056477 patent/WO2019129389A1/en active Application Filing
- 2018-12-18 JP JP2020535647A patent/JP7416429B2/ja active Active
- 2018-12-18 EP EP18816116.0A patent/EP3732569B1/en active Active
- 2018-12-18 CN CN201880088311.4A patent/CN111670430B/zh active Active
- 2018-12-18 WO PCT/EP2018/085476 patent/WO2019129538A1/en active Search and Examination
- 2018-12-18 US US16/958,257 patent/US20200334081A1/en active Pending
Patent Citations (2)
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 |