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

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

▶ ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツングの特許一覧

特許7359798分散コンピュータシステムにおける少なくとも1つのプログラマブルゲート装置をプログラミングする方法
<>
  • 特許-分散コンピュータシステムにおける少なくとも1つのプログラマブルゲート装置をプログラミングする方法 図1
  • 特許-分散コンピュータシステムにおける少なくとも1つのプログラマブルゲート装置をプログラミングする方法 図2
  • 特許-分散コンピュータシステムにおける少なくとも1つのプログラマブルゲート装置をプログラミングする方法 図3
  • 特許-分散コンピュータシステムにおける少なくとも1つのプログラマブルゲート装置をプログラミングする方法 図4
  • 特許-分散コンピュータシステムにおける少なくとも1つのプログラマブルゲート装置をプログラミングする方法 図5
  • 特許-分散コンピュータシステムにおける少なくとも1つのプログラマブルゲート装置をプログラミングする方法 図6
  • 特許-分散コンピュータシステムにおける少なくとも1つのプログラマブルゲート装置をプログラミングする方法 図7
  • 特許-分散コンピュータシステムにおける少なくとも1つのプログラマブルゲート装置をプログラミングする方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-02
(45)【発行日】2023-10-11
(54)【発明の名称】分散コンピュータシステムにおける少なくとも1つのプログラマブルゲート装置をプログラミングする方法
(51)【国際特許分類】
   G06F 30/343 20200101AFI20231003BHJP
【FI】
G06F30/343
【請求項の数】 12
【外国語出願】
(21)【出願番号】P 2021053541
(22)【出願日】2021-03-26
(65)【公開番号】P2021157801
(43)【公開日】2021-10-07
【審査請求日】2022-04-13
(31)【優先権主張番号】10 2020 108 604.0
(32)【優先日】2020-03-27
(33)【優先権主張国・地域又は機関】DE
(31)【優先権主張番号】10 2020 116 872.1
(32)【優先日】2020-06-26
(33)【優先権主張国・地域又は機関】DE
(73)【特許権者】
【識別番号】506012213
【氏名又は名称】ディスペース ゲー・エム・ベー・ハー
【氏名又は名称原語表記】dSPACE GmbH
【住所又は居所原語表記】Rathenaustr.26,D-33102 Paderborn, Germany
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100135633
【弁理士】
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】アンドレアス アグネ
(72)【発明者】
【氏名】ドミニク ルーベライ
(72)【発明者】
【氏名】ハイコ カルテ
(72)【発明者】
【氏名】マーク シュレンガー
【審査官】堀井 啓明
(56)【参考文献】
【文献】米国特許出願公開第2019/0044519(US,A1)
【文献】特表2018-530025(JP,A)
【文献】特表2004-508617(JP,A)
【文献】米国特許出願公開第2005/0246520(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00-30/398
(57)【特許請求の範囲】
【請求項1】
分散コンピュータシステム(32)における少なくとも1つのプログラマブルゲート装置をプログラミングする方法であって、前記方法は、
前記分散コンピュータシステム(32)におけるプログラマブルゲート周辺装置をプログラミングするためのコンフィグレーションソフトウェアを準備する方法ステップと、
前記分散コンピュータシステム(32)の周辺装置に、第1のプログラマブルゲート装置(2)を統合する方法ステップと、
を含み、
前記第1のプログラマブルゲート装置(2)は、第1の読み出し専用メモリ(4)からビットストリームを読み出し、読み出したビットストリームの規定にしたがった論理回路を前記第1のプログラマブルゲート装置(2)上に構成するように構成されている方法において、前記方法は、
第1のユーザロジック(36a)を前記第1のプログラマブルゲート装置(2)上に構成するための第1のユーザビットストリーム(34a)を前記コンフィグレーションソフトウェアから受け取って前記第1の読み出し専用メモリ(4)に記憶するように構成された第1のコンフィグレーションロジック(20a)を、前記第1のプログラマブルゲート装置(2)上に構成する方法ステップと、
前記第1のユーザビットストリーム(34a)を、前記コンフィグレーションソフトウェアから前記分散コンピュータシステムの少なくとも1つのデータ線路を介して前記第1のコンフィグレーションロジック(20a)に伝送し、前記第1のコンフィグレーションロジック(20a)により、前記第1のユーザビットストリーム(34a)を前記第1の読み出し専用メモリ(4)に記憶する方法ステップと、
前記第1のユーザビットストリーム(34a)を用いて、前記第1のユーザロジック(36a)を前記第1のプログラマブルゲート装置(2)上に構成する方法ステップと、
を含むことを特徴とする方法。
【請求項2】
前記第1のコンフィグレーションロジック(20a)は、前記第1のユーザロジック(36a)の構成をトリガする、
請求項1記載の方法。
【請求項3】
前記第1のプログラマブルゲート装置(2)の専用のプログラミングインタフェース(18a)、特にJTAGインタフェースによって、前記第1のコンフィグレーションロジック(20a)を前記第1のプログラマブルゲート装置(2)上に構成するための初期ビットストリーム(12)を、前記第1の読み出し専用メモリ(4)に記憶し、
前記専用のプログラミングインタフェース(18a)とは同一でない、前記第1のプログラマブルゲート装置(2)のデータインタフェース(10a)により、前記第1のユーザビットストリーム(34a)を前記第1のコンフィグレーションロジック(20a)に伝送する、
請求項1記載の方法。
【請求項4】
前記第1のユーザロジック(36a)が前記第1のプログラマブルゲート装置(2)上に構成された後に、前記第1のコンフィグレーションロジック(20a)または前記初期ビットストリーム(12)が残留する、
請求項3記載の方法。
【請求項5】
前記方法は、
前記第1のユーザロジック(36a)により、前記分散コンピュータシステム(32)から前記第1のプログラマブルゲート装置(2)へ供給される入力データを監視し、前記入力データのなかから前記第1のプログラマブルゲート装置(2)を新たに構成するためのリセット命令を識別するように構成された第1の監視ロジック(40)を、前記第1のプログラマブルゲート装置(2)上に構成する方法ステップと、
前記リセット命令を、前記コンフィグレーションソフトウェアから前記分散コンピュータシステム(32)の少なくとも1つのデータ線路を介して前記第1の監視ロジック(40)に伝送する方法ステップと、
前記第1の監視ロジック(40)により、前記リセット命令が識別されたことに応じて、初期状態を再形成する方法ステップであって、前記初期状態では、前記第1のプログラマブルゲート装置上の前記第1のコンフィグレーションロジック(20a)が、新たなユーザロジックを前記第1のプログラマブルゲート装置(2)上に構成するための新たなユーザビットストリームを前記コンフィグレーションソフトウェアから受け取って前記第1の読み出し専用メモリ(4)に記憶するように構成されている方法ステップと、
を含む、
請求項4記載の方法。
【請求項6】
前記初期ビットストリーム(12)は、前記第1の読み出し専用メモリ(4)の第1のメモリスロット(50)に残留し、前記第1のユーザビットストリーム(34a)は、前記第1の読み出し専用メモリ(4)の第2のメモリスロット(52)に残留し、
前記第1のプログラマブルゲート装置(2)は、前記第1のメモリスロット(50)または前記第2のメモリスロット(52)からビットストリームを選択的に読み出し、読み出したビットストリームの規定にしたがった論理回路を前記第1のプログラマブルゲート装置(2)上に構成するように構成されており、
前記第1のプログラマブルゲート装置(2)は、前記第1のメモリスロット(50)内に記憶されているビットストリームを自動的に読み出し、前記第1のメモリスロット(50)内に記憶されていたビットストリームの規定にしたがった論理回路を前記第1のプログラマブルゲート装置(2)上に構成するように構成されている、
請求項4記載の方法。
【請求項7】
前記第1の監視ロジック(40)は、前記第1のコンフィグレーションロジック(20a)と同一である、
請求項5記載の方法。
【請求項8】
前記第1のプログラマブルゲート装置(2)は、前記分散コンピュータシステム(32)のスイッチオン後、前記初期ビットストリーム(12)を用いて、前記第1のプログラマブルゲート装置(2)上に前記第1のコンフィグレーションロジック(20a)を自動的に構成するように構成されている、
請求項3から7までのいずれか1項記載の方法。
【請求項9】
前記方法は、
前記分散コンピュータシステム(32)の周辺装置に、第2のプログラマブルゲート装置(22)を統合する方法ステップを含み、
前記第2のプログラマブルゲート装置(22)は、第2の読み出し専用メモリ(23)からビットストリームを読み出し、読み出したビットストリームの規定にしたがった論理回路を前記第2のプログラマブルゲート装置(22)上に構成し、
前記方法は、
第2のユーザロジック(36b)を前記第2のプログラマブルゲート装置(22)上に構成するための第2のユーザビットストリーム(34b)を受け取って前記第2の読み出し専用メモリ(23)に記憶するように構成された第2のコンフィグレーションロジック(20b)を、前記第2のプログラマブルゲート装置(22)上に構成する方法ステップと、
前記第2のユーザビットストリーム(34b)を前記コンフィグレーションソフトウェアから受け取って前記分散コンピュータシステム(32)の少なくとも1つのデータ線路を介して前記第2のコンフィグレーションロジック(20b)に伝送するように構成されたプログラミングロジック(44)を、前記第1のプログラマブルゲート装置(2)上に構成する方法ステップと、
前記第2のユーザビットストリーム(34b)を前記コンフィグレーションソフトウェアから前記プログラミングロジック(44)に伝送する方法ステップと、
前記第1のユーザロジック(36a)を前記第1のプログラマブルゲート装置(2)上に構成する前に、前記第2のユーザビットストリーム(34b)を前記プログラミングロジック(44)から前記第2のコンフィグレーションロジック(20b)へ伝送する方法ステップと、
前記第2のユーザビットストリーム(34b)を用いて、前記第2のユーザロジック(36b)を前記第2のプログラマブルゲート装置(22)上に構成する方法ステップと、
を含む、
請求項1から8までのいずれか1項記載の方法。
【請求項10】
前記方法は、
前記プログラミングロジック(44)により、前記第2のプログラマブルゲート装置(22)の少なくとも1つのステータスデータ、特にバスアドレスを読み込む方法ステップと、
前記第2のユーザロジック(36b)を前記第2のプログラマブルゲート装置(22)上に構成した後に、前記第2のプログラマブルゲート装置(22)の前記ステータスデータによって定義されているステータスを再形成する方法ステップと、
を含む、
請求項9記載の方法。
【請求項11】
前記プログラミングロジック(44)は、前記第1のコンフィグレーションロジック(20a)と同一である、
請求項9または10記載の方法。
【請求項12】
前記第1のコンフィグレーションロジック(20a)と前記第2のコンフィグレーションロジック(20b)とは、その技術的機能に関して同一である、
請求項9から11までのいずれか1項記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブルゲート装置を備えた分散コンピュータシステムのプログラミングに関する。プログラマブルゲート装置は、相互に接続可能なデータ線路のネットワークを介して任意の方式で相互に接続可能なコンフィグレーション可能ロジックセルから成るマトリクスが格納されたチップであり、これにより、ほぼ任意であってかつ事後的に新たに再プログラミング可能な論理回路のプログラミングが可能となる。プログラマブルゲート装置の重要な例として、フィールドプログラマブルゲートアレイ(FPGA)およびコンプレクスプログラマブルロジックデバイス(CPLD)が挙げられる。
【背景技術】
【0002】
特定の適用事例への高い適合可能性および多数のプロセスを並列処理する能力によって、プログラマブルゲート装置は、プロセッサに比べた速度の利点をしばしば有し、またそれゆえにリアルタイム用途で多く利用されている。例として、出願人が開発したバスIOCNET(I/O Carrier Network)が挙げられる。当該エコシステムは、多数のFPGAが実装された拡張カードを含む。IOCNETシステムは、FPGA拡張カードを含むすべての周辺コンポーネントのプログラミングのためのハブとして用いられるマスタプロセッサを含む。FPGAは、自身をプログラミングするための専用のインタフェース、例えばJTAG(Joint Test Action Group)インタフェースを含むが、FPGAのプログラミングは、IOCNET内のマスタプロセッサにより、正規のデータ線路を介して行われ、当該正規のデータ線路は、プログラミングが完了したコンピュータシステムの動作中、マスタプロセッサとFPGA拡張カードとの間のデータ交換にも使用される。
【0003】
こうした手法は、例えば、特許出願である欧州特許出願公開第2977905号明細書に開示されている。ここでは、FPGAのプログラミングのための付加的なケーブルの配設が省略され、例えばJTAG規格が設計していない大きな空間的距離にわたるプログラミングも可能である。しかし、FPGA拡張カードは、本来、こうしたタイプのプログラミングのために設計されていなければならない。ここで、例えば、IOCNETエコシステムのすべてのFPGA拡張カード上には、マスタプロセッサからFPGAのプログラミングのためのビットストリームを受け取り当該ビットストリームによってFPGAをプログラミングすることのためのみに設計された付加的なCPLDが格納されている。IOCNETシステムでの使用のために相応に準備されていないサードパーティサプライヤのFPGAの統合は、これまで不可能であった。これは、IOCNETエコシステムにおいて適切なFPGA拡張カードが設けられてない所定の顧客の希望が充足不能であることを意味する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
こうした背景から、本発明の課題は、FPGAを含みかつ中央のインスタンスによってプログラミング可能な分散コンピュータシステムを種々の要求に適合させる適合可能性を改善することである。
【課題を解決するための手段】
【0005】
この課題を解決するために、プログラマブルゲート装置上に構成可能な第1のコンフィグレーションロジックが提案される。当該第1のコンフィグレーションロジックは、第1のプログラマブルゲート装置のデータインタフェースで、第1のユーザロジックを第1のプログラマブルゲート装置上に構成するための第1のユーザビットストリームを受け取って、ビットストリームの記憶のために設けられた、第1のプログラマブルゲート装置の読み出し専用メモリに記憶するように構成されている。本発明の方法は、第1のコンフィグレーションロジックを第1のプログラマブルゲート装置上に構成するステップを含む。
【0006】
ユーザロジックとは、第1のプログラマブルゲート装置上に構成され、コンピュータシステムのユーザが所望する方式でデータを処理するように構成された任意の論理回路であると理解されたい。
【0007】
本発明の方法では、コンピュータシステムにおけるプログラマブルゲート周辺装置をプログラミングするために構成されたコンフィグレーションソフトウェアを準備するステップが行われる。このようなコンフィグレーションソフトウェアの例は、出願人にて入手可能なSoftware ConfigurationDeskである。また、方法は、コンピュータシステムの周辺装置に第1のプログラマブルゲート装置を統合するステップを含む。有利には、コンフィグレーションロジックは、統合の時点で既に第1のプログラマブルゲート装置上に構成されている。
【0008】
第1のプログラマブルゲート装置は、第1のプログラマブルゲート装置上の論理回路を定義する少なくとも1つのビットストリームを記憶するための第1の読み出し専用メモリを含むべきである。第1の読み出し専用メモリが第1のプログラマブルゲート装置内に組み込まれているかまたはその外部に配置されているかにかかわらず、第1のプログラマブルゲート装置は、第1の読み出し専用メモリからビットストリームを読み出し、読み出したビットストリームの規定にしたがった論理回路を第1のプログラマブルゲート装置上に構成するように構成されなければならない。
【0009】
方法は、第1のユーザビットストリームを、コンフィグレーションソフトウェアから、コンピュータシステムの少なくとも1つのデータ線路を介して、第1のプログラマブルゲート装置上に構成された第1のコンフィグレーションロジックに伝送し、当該第1のコンフィグレーションロジックにより、第1のユーザビットストリームを第1の読み出し専用メモリに記憶するステップを含む。方法はさらに、第1のユーザビットストリームを用いて、第1のユーザロジックを第1のプログラマブルゲート装置上に構成するステップを含む。
【0010】
第1のコンフィグレーションロジックは、基本的に、必要なロジックセルのリソースを提供する各プログラマブルゲート装置上に構成可能である。第1のコンフィグレーションロジックを初期的に構成するプログラマブルゲート装置は、プログラマブルゲート装置のデータインタフェースに接続されたデータ線路を介して、第1のプログラマブルゲート装置の専用のプログラミングインタフェースを使用することなく、プログラミング可能である。これにより、本発明は、サードパーティサプライヤのプログラマブルゲート装置を、IOCNETシステムに、またはこれに技術的に対応するように構成された、データインタフェースを介してプログラマブルゲート周辺装置のプログラミングを行う規格に、統合することができる。別の利点として、本発明がハードウェアリソースを節約できることも挙げられ、これは、本発明にしたがってコンフィグレーションロジックが構成されているプログラマブルゲート装置を備えた拡張カード上には、プログラマブルゲート装置をプログラミングする別のインスタンス、例えば上述したCPLDを設ける必要がないためである。この場合、もちろん、コンピュータシステムの起動のたびにコンフィグレーションロジックが構成されることが保証されなければならない。技術的な実現手段を以下の説明に示す。
【0011】
プログラマブルゲート装置上にコンフィグレーションロジックを構成することは、特許刊行物である米国特許出願公開第2007/0182445号明細書から、ただし、デイジーチェーンとして後置接続されたプログラマブルゲート装置のプログラミングについてのみ、既に公知である。
【0012】
有利には、第1のコンフィグレーションロジックは、第1のユーザロジックを第1のプログラマブルゲート装置上に構成するステップをトリガするインスタンスである。つまり、第1のコンフィグレーションロジックが第1のユーザビットストリームを第1の読み出し専用メモリに記憶した後、第1のコンフィグレーションロジックは、第1のプログラマブルゲート装置をトリガして第1のユーザビットストリームを用いて第1のプログラマブルゲート装置上に第1のユーザロジックを構成させる信号を形成する。ただし、基本的に、第1のユーザロジックを構成するための当該信号は、第1のコンフィグレーションロジックとは別のインスタンスから出力させることもできる。
【0013】
第1のコンフィグレーションロジックを第1のプログラマブルゲート装置上に構成するために、初期ビットストリームは、特にコンピュータシステムの外部で、つまり第1のプログラマブルゲート装置をコンピュータシステムの周辺装置に統合する前に、第1のプログラマブルゲート装置の専用のプログラミングインタフェース、例えばJTAGインタフェースを介して、第1の読み出し専用メモリに記憶することができる。当該専用のプログラミングインタフェースは、第1のユーザビットストリームの伝送のために設けられたデータインタフェースとは同一でない。
【0014】
第1のユーザロジックが第1のプログラマブルゲート装置上に構成された後に、第1のコンフィグレーションロジックまたは第1のコンフィグレーションロジックを第1のプログラマブルゲート装置上に構成するための初期ビットストリームのいずれかが残留する場合、特段の利点が得られる。当該構成では、第1のコンフィグレーションロジックが多重に適用可能であるので、第1のコンフィグレーションロジックを1回のみ有する第1のプログラマブルゲート装置を繰り返しコンピュータシステムの周辺装置に統合し、周辺装置への統合の後に反復してプログラミングすることができる。
【0015】
可能な構成では、初期ビットストリームは、第1のユーザロジックが構成された後、第1の読み出し専用メモリに残留する。第1のユーザビットストリームと並行して初期ビットストリームを記憶するために、読み出し専用メモリには、論理的に分離された2つのメモリスロットを設けることができ、ここで、初期ビットストリームは第1の読み出し専用メモリの第1のメモリスロットに残留し、第1のユーザビットストリームは第1の読み出し専用メモリの第2のメモリスロットに残留する。このために、第1のプログラマブルゲート装置は、第1の読み出し専用メモリの第1のメモリスロットまたは第2のメモリスロットからビットストリームを選択的に読み出し、読み出したそれぞれのビットストリームの規定にしたがった論理回路を第1のプログラマブルゲート装置上に構成するように構成されなければならない。
【0016】
当該構成では、第1のプログラマブルゲート装置は、コンピュータシステムのスイッチオン後、特に給電電圧が第1のプログラマブルゲート装置に印加された後、第1のメモリスロット内に記憶されているビットストリームを自動的に読み出し、第1のメモリスロット内に記憶されていたビットストリームの規定にしたがった論理回路を第1のプログラマブルゲート装置上に構成するように構成されている。当該構成では、第1のコンフィグレーションロジックは、第1のコンフィグレーションロジックまたはコンピュータシステムの別のインスタンスのどちらが第1のユーザロジックの構成をトリガするかにかかわらず、第1のユーザビットストリームが第2のメモリスロットに記憶され、またもちろん、第1のユーザロジックを構成するための第1のユーザビットストリームが第2のメモリスロットからローディングされるように構成される。
【0017】
代替的な構成では、第1のユーザロジックにより、第1のプログラマブルゲート装置に監視ロジックが構成される。監視ロジックは、コンピュータシステムから第1のプログラマブルゲート装置へ供給される入力データを監視し、当該入力データのなかから第1のプログラマブルゲート装置を新たに構成するためのリセット命令を識別するように構成されている。コンフィグレーションソフトウェアがコンピュータシステムの少なくとも1つのデータ線路を介してリセット命令を監視ロジックに伝送すると、監視ロジックは第1のプログラマブルゲート装置を初期状態へ移行させる。当該初期状態では、第1のコンフィグレーションロジックが、新たなユーザロジックを第1のプログラマブルゲート装置上に構成するための新たなユーザビットストリームをコンフィグレーションソフトウェアから受け取って第1の読み出し専用メモリに記憶するように、第1のプログラマブルゲート装置上に構成されている。
【0018】
好ましくは、監視ロジックは第1のユーザロジックに組み込まれるので、第1のユーザロジックを第1のプログラマブルゲート装置上に構成することにより、監視ロジックも第1のプログラマブルゲート装置上に構成され、これにより、第1のユーザロジックが第1のプログラマブルゲート装置上に構成された後、監視ロジックは残留する。このために、監視ロジックは、完成したモジュールとして、プログラマブルゲート装置用のプログラミング環境に、例えばプログラミング環境であるThe MathWorksのSimulink用のブロックの形態で格納可能であり、これにより、ユーザは、第1の監視ロジックをユーザロジックに簡単に統合することができる。
【0019】
監視ロジックは、第1のメモリスロットに格納された初期ビットストリームに基づいて、第1のコンフィグレーションロジックの新たな構成をトリガするように構成可能である。代替的に、第1の監視ロジックは、第1の監視ロジックの機能が第1のコンフィグレーションロジックに組み込まれ、第1のプログラマブルゲート装置上に第1のユーザロジックを構成した後に第1のコンフィグレーションロジックがその内部に組み込まれた第1の監視ロジックと共に残留するという意味において、第1のコンフィグレーションロジックと同一であってもよい。この場合、初期ビットストリームとユーザロジックとを別個に記憶するための2つの別個のメモリスロットの配設を省略することができる。
【0020】
有利には、第1のプログラマブルゲート装置は、コンピュータシステムのスイッチオン後、初期ビットストリームを用いて、第1のプログラマブルゲート装置上に第1のコンフィグレーションロジックを自動的に構成するように構成される。
【0021】
特に有利には、方法は、第2のプログラマブルゲート装置をコンピュータシステムの周辺装置に統合するステップを含み、第2のプログラマブルゲート装置は、第2のプログラマブルゲート装置上の論理回路を定義する少なくとも1つのビットストリームを記憶するための第2の読み出し専用メモリを含み、かつ第2の読み出し専用メモリからビットストリームを読み出し、読み出したビットストリームの規定にしたがった論理回路を第2のプログラマブルゲート装置上に構成するように構成されている。
【0022】
第2のプログラマブルゲート装置上には、第2のコンフィグレーションロジックが構成される。第2のコンフィグレーションロジックは、第2のユーザロジックを第2のプログラマブルゲート装置上に構成するための第2のユーザビットストリームを受け取って読み出し専用メモリに記憶するように構成されている。
【0023】
第1のプログラマブルゲート装置上には、プログラミングロジックが構成される。プログラミングロジックは、第2のユーザビットストリームをコンフィグレーションソフトウェアから受け取ってコンピュータシステムの少なくとも1つのデータ線路を介して第2のコンフィグレーションロジックに伝送するように構成されている。コンフィグレーションソフトウェアは、第2のユーザビットストリームをプログラミングロジックへ伝送し、プログラミングロジックは、第1のユーザロジックが第1のプログラマブルゲート装置上に構成される前に、第2のユーザビットストリームを第2のコンフィグレーションロジックへ伝送する。当該第2のコンフィグレーションロジックは、第2のユーザロジックを第2のプログラマブルゲート装置上に構成するための第2のユーザビットストリームを、第2の読み出し専用メモリに格納する。
【0024】
よって、本発明の一構成では、プログラミングロジックにより、少なくとも1つのプログラマブルゲート装置が、少なくとも1つのユーザビットストリームを、後置接続された別のプログラマブルゲート装置へ転送するように構成されており、ここではもちろん、後置接続されたすべてのプログラマブルゲート装置も同様に、さらに後置接続されている別の少なくとも1つのプログラマブルゲート装置を構成するように構成可能である。したがって、プログラミングロジックにより、複数のプログラマブルゲート装置から成るデイジーチェーンを構成してコンピュータシステムに統合し、本発明によりプログラミングすることができる。
【0025】
デイジーチェーンとは、直列部の第1の回路以外では加入者がバスに直接にアクセスできず、データが加入者からそれぞれ後続の加入者へ転送される、バス加入者の直列配置状態であると理解されたい。例えば、技術書であるFriedrich Wittgruber, “Digitale Schnittstellen und Bussysteme: Einfuehrung fuer das technische Studium”, Verlag Vieweg, 2.Auflage (2002)の81頁の定義を参照されたい。
【0026】
プログラミングロジックは、第2のユーザビットストリームが伝送される前に、第2のプログラマブルゲート装置からステータスデータを読み出し、第2のプログラマブルゲート装置上への第2のユーザロジックの構成が終了した後に、第2のプログラマブルゲート装置のステータスデータによって定義されているステータスを再形成するように構成されていてよい。ステータスデータとは、特には、第2のプログラマブルゲート装置のバスアドレスであってよい。
【0027】
プログラミングロジックは、もちろん、プログラミングロジックの機能が第1のコンフィグレーションロジックに組み込まれるという意味において、第1のコンフィグレーションロジックと同一であってもよい。特に有利には、第1のコンフィグレーションロジックと第2のコンフィグレーションロジックとはその技術的機能に関して同一であるので、ユーザには、初期ビットストリームを形成する唯一のモジュールが供給され、これに基づいて、各プログラマブルゲート装置上に、デイジーチェーンとして、少なくとも第1のコンフィグレーションロジックの機能、特に第1の監視ロジックの機能および/またはプログラミングロジックの機能を有する論理回路を構成することができる。
【0028】
本発明を以下に図に即して詳細に説明する。図は、概略的であって、単なる例示であるFPGAとして構成された複数のプログラマブルゲート装置の本発明によるプログラミングについての、好ましいが例示的な構成を示すものである。
【図面の簡単な説明】
【0029】
図1】FPGA上に初期ビットストリームを構成するステップを示す図である。
図2】分散コンピュータシステムにおける、初期ビットストリームによって構成されたFPGAから成るデイジーチェーンを示す図である。
図3】FPGAのプログラミングが開始された後のコンピュータシステムを示す図である。
図4】プログラミングの進行した段階におけるコンピュータシステムを示す図である。
図5】コンピュータシステムのプログラミングが終了した後のコンピュータシステムを示す図である。
図6】コンフィグレーションロジックの論理構造を示す図である。
図7】コンピュータシステムのプログラミング後に、FPGA上にコンフィグレーションロジックを維持するための第1の手法を示す図である。
図8】コンピュータシステムのプログラミング後に、FPGA上にコンフィグレーションロジックを維持するための第2の手法を示す図である。
【発明を実施するための形態】
【0030】
図1には、第1のFPGA2が示されており、この第1のFPGA2は、コンフィグレーション可能であって相互に接続可能なロジックセルから成る第1のマトリクス6と、フラッシュメモリとして構成された第1の読み出し専用メモリ4と、を有し、当該第1の読み出し専用メモリ4上には、論理回路を第1のマトリクス6上に構成するためのビットストリームが格納可能であることが示されている。第1のFPGA2は、本来、信号に応じて第1の読み出し専用メモリ4からビットストリームを読み出し、読み出したビットストリームの規定にしたがった論理回路を第1のマトリクス6上に構成するように構成されている。当該信号は、第1のFPGA2の外部に配置されたインスタンス、例えば分散コンピュータシステムのマスタプロセッサが形成したものであってもよいし、第1のマトリクス6上に構成された論理回路が形成したものであってもよい。第1のFPGA2は、さらに、給電電圧が当該第1のFPGA2に印加された後、第1の読み出し専用メモリ4からビットストリームを自動的に読み出し、読み出したビットストリームの規定にしたがった論理回路を第1のマトリクス6上に構成するように構成されている。
【0031】
第1のFPGA2は、JTAG規格に準拠して構成された、第1の読み出し専用メモリ4にビットストリームを記憶するためのプログラミングインタフェース18aと、さらなる複数のデータインタフェースと、を含み、当該さらなる複数のデータインタフェースのうち、第1のマトリクス6上に構成された論理回路と第1のFPGA2の周辺装置との間のデータ交換のための第1のデータインタフェース8aと第2のデータインタフェース10aとが代表として示されている。
【0032】
コンピュータ14は、第1のFPGA2の本発明によるプログラミングを行う第1のステップとして、初期ビットストリーム12を第1の読み出し専用メモリ4に記憶するために、JTAGケーブル16を介してプログラミングインタフェース18に接続されている。初期ビットストリームは、第1のコンフィグレーションロジック20aをマトリクス6上に構成するように構成されている。
【0033】
第1のFPGA2は、初期ビットストリーム12を第1の読み出し専用メモリ4に記憶することにより、分散コンピュータシステム32への統合のために構成されている。図2には、接続されて起動されたがまだプログラミングは完了していない分散コンピュータシステム32が示されており、ここでは、第1のFPGA2と、同様に構成された周辺コンポーネントとしての第2のFPGA22と、が統合されている。コンピュータシステム32は、マスタプロセッサ24、FPGA拡張カード26、ならびに、マスタプロセッサ24とコンピュータシステム32の周辺コンポーネントとの間のデータ交換およびコンピュータシステム32の周辺コンポーネント間のデータ交換のためのバス30を含んでいる。
【0034】
コンピュータシステム32は、IOCNET規格に準拠して構成されている。したがって、マスタプロセッサ24は、コンピュータシステム32の周辺コンポーネントの初期プログラミングを実行するために設けられている。FPGA拡張カード26上には、マスタプロセッサ24によってプログラミング可能なFPGAが組み込まれている。
【0035】
バス30は、マスタプロセッサ24とFPGA拡張カード26との間で交換されるすべてのデータ、すなわち処理動作中に交換される有効データだけでなく、FPGA拡張カード26のプログラミングのためにマスタプロセッサ24からFPGA拡張カード26へ伝送されるビットストリームも含めたデータの伝送に用いられる。つまり、FPGA拡張カードのプログラミングは、有効データの伝送にも用いられる同じバス30を介して行われる。FPGA拡張カード26上のFPGAは専用のプログラミングインタフェースを含んでいるが、当該プログラミングインタフェースは、存在する場合にも、FPGAのプログラミングには関与しない。FPGA拡張カード26は、IOCNETエコシステムの一部であり、このため、本来このタイプのプログラミングのために構成されたものである。FPGA拡張カード26には、上述したFPGAの他、FPGAのプログラミングのためにマスタプロセッサ24からビットストリームを受け取ってFPGAをプログラミングするように構成された別のチップ、例えばCPLDも組み込まれている。
【0036】
操作コンピュータ28は、コンピュータシステム32のインタフェースを介してマスタプロセッサ24に接続されている。操作コンピュータ28は、コンピュータシステム32すなわちコンピュータシステム32のマスタプロセッサおよびすべての周辺コンポーネントのマスタプロセッサ24によるプログラミングのためのコンフィグレーションソフトウェアがインストールされた市販のパーソナルコンピュータである。コンフィグレーションソフトウェアは、コンピュータシステムのプログラミング可能なすべての周辺コンポーネントの見通しをユーザに提供し、ユーザが提示した、コンピュータシステム32の周辺コンポーネントのプログラミングのための規定をマスタプロセッサ24に伝送するように構成されている。
【0037】
同様に、図1の第1のFPGA2も、コンピュータシステム32の周辺装置に統合されている。第1のFPGA2は、サードパーティサプライヤから購入されたものであり、FPGA拡張カード26とは異なってバス30に接続可能でなく、本来は上述したようなマスタプロセッサ24によるプログラミングのためには構成されていない。その代わりに、第1のFPGA2の第2のデータインタフェース10aが、第1のデータケーブル接続部29を介して、FPGA拡張カード26のデータインタフェースに接続されている。コンピュータシステム32は既に起動されており、このため第1のFPGA2に給電電圧が印加されているので、第1のFPGA2は、第1のマトリクス6上に、初期ビットストリーム12の規定にしたがった第1のコンフィグレーションロジック20aを自動的に構成している。
【0038】
第2のFPGA22は、第2の読み出し専用メモリ23と、コンフィグレーション可能であって相互に接続可能なロジックセルから成る第2のマトリクス25と、を含む。第2のFPGA22は、少なくとも上述した第1のFPGA2の特性に関して第1のFPGA2と同一に構成されており、同様に専用のプログラミングインタフェース18b、第1のデータインタフェース8bおよび第2のデータインタフェース10bを含んでいる。第2の読み出し専用メモリ23には、第1のFPGA2の第1の読み出し専用メモリ4にも格納されている同じ初期ビットストリーム12が格納されており、第2のFPGA22は、コンピュータシステム32の起動時に給電電圧が印加された後、その機能に関して第1のコンフィグレーションロジック20aと同一である第2のコンフィグレーションロジック20bを、第2のマトリクス25上に構成している。第2のFPGA22もサードパーティサプライヤから購入されたものであり、バス30に直接に統合可能でなく、また本来はマスタプロセッサ24によるプログラミングのために構成されていない。第2のデータケーブル接続部31を介して、第2のFPGA22の第2のデータインタフェース10bは、第1のFPGA2の第1のデータインタフェース8aに接続されており、これにより、FPGA拡張カード26、第1のFPGA2および第2のFPGA22は、コンピュータシステム32内にデイジーチェーンを形成しており、デイジーチェーンの第1の回路は、FPGA拡張カード26であって、FPGA拡張カード26は、デイジーチェーンの後続のすべての回路をバス30に接続する。
【0039】
既に述べたように、第1のコンフィグレーションロジック20aおよび第2のコンフィグレーションロジック20bは、その機能に関して同一に構成されている。第1に、当該2つのロジックは、各第2のデータインタフェース10a,10bを介してユーザビットストリームを受け取って第1の読み出し専用メモリ4または第2の読み出し専用メモリ23に記憶し、ユーザビットストリームの記憶が終了した後、適切な信号を形成し、当該信号によってユーザビットストリームの規定にしたがったユーザロジックの構成を行うように構成されている。第2に、当該2つのロジックは、デイジーチェーン内の後続のFPGAの構成のために設定されたユーザビットストリームを各第2のデータインタフェース10a,10bを介して受け取って、各第1のデータインタフェース8a,8bを介し、存在するかぎりのデイジーチェーン内の後続のFPGAに転送するように構成されている。
【0040】
外部サプライヤの2つ以上のFPGAをデイジーチェーンに統合できるよう、すべてのコンフィグレーションロジックは、もちろん、ユーザビットストリームがデイジーチェーン内の後続のFPGAに対して定められたものであるか、または固有のFPGAに対して定められたものであるかを識別しなければならない。当該識別は、種々の方式で行うことができる。
【0041】
すべてのFPGA上に、例えばレジスタ設定によって、コンフィグレーションロジックにより読み出し可能な一義的な識別子、例えばバスアドレスを格納することができ、マスタプロセッサ24またはコンフィグレーションソフトウェアは、該当する各識別子をヘッドデータとしてユーザビットストリームに付加するように構成される。すべてのコンフィグレーションロジックは、ユーザビットストリームに付加された識別子と固有のFPGAの識別子とを比較し、一致した場合にユーザビットストリームを読み出し専用メモリに記憶し、一致しなかった場合にユーザビットストリームを転送するように構成される。
【0042】
マスタプロセッサ24はまた、すべてのユーザビットストリームにルーティング情報を付与し、ユーザビットストリームがバス30を通る経路において通過するルータが、当該ルーティング情報から、ユーザビットストリームを転送するためのルータポートを読み出すことができるように構成されていてもよい。当該構成では、初期ビットストリーム12内に、コンフィグレーションロジック20a,20bのための対応するルータ機能が実装されていなければならない。すべてのコンフィグレーションロジックは、対応するルーティング情報が見出された場合にデイジーチェーン内の後続のFPGAにユーザビットストリームを転送し、ユーザビットストリームの転送のためのルーティング情報が見出されなかった場合にはユーザビットストリームを固有の読み出し専用メモリ4,23に記憶するように構成可能である。
【0043】
FPGA拡張カード26上には、第3のコンフィグレーションロジック20cが構成されている。第3のコンフィグレーションロジック20cは、第1のコンフィグレーションロジック20aおよび第2のコンフィグレーションロジック20bと同一であってよい。ただし、第3のコンフィグレーションロジック20cは、バス30からユーザビットストリームを受け取って第1のデータケーブル接続部29を介して転送し、コンピュータシステム32のプログラミング完了後に有効データをバス30から第1のデータケーブル接続部29へ転送することまたは逆方向に転送することにその機能が限定された、単純なコンフィグレーションロジック20cとして構成されていてもよく、このことはもちろん、双方向につき、第1のデータケーブル接続部29に適したプロトコルへのユーザビットストリームの翻訳も含みうる。つまり、FPGA拡張カード26は、第3のコンフィグレーションロジック20cの構成により、第1のFPGA2および第2のFPGAをバス30へ接続するゲートウェイ機能を担当する。
【0044】
第3のコンフィグレーションロジック20cは、IOCNETエコシステムの一部である拡張カードのログオン時点で設定されているように、バス30を介して、マスタプロセッサ24から規則的にFPGA拡張カード26へとプログラミングされる。初期ビットストリーム12の格納は、図1に関連して上述したように、FPGA拡張カード26では不要である。
【0045】
第1のコンフィグレーションロジック20aを第1のFPGA2上に構成し、第2のコンフィグレーションロジック20bを第2のFPGA22上に構成することにより、第1のFPGA2および第2のFPGA22がマスタプロセッサ24によるプログラミングのために構成される。操作コンピュータ上のコンフィグレーションソフトウェアでは、第1のFPGA2および第2のFPGA22が、正規のバス加入者、例えばFPGA拡張カード26のようなユーザに対し、バス30のプログラミング可能な加入者として表示可能である。代替的に、第1のFPGA2および第2のFPGA22は、コンフィグレーションソフトウェアにおいて、ユーザに対し、FPGA拡張カード26の組み込みリソースとしても表示可能である。
【0046】
図3には、第1のFPGA2および第2のFPGA22をプログラミングする第1のステップが示されている。マスタプロセッサ24は、まず、デイジーチェーン内の最後の回路、すなわち第2のFPGA22をプログラミングする。このために、マスタプロセッサ24は、第2のFPGA22に対して設定された第2のユーザビットストリーム34bを、バス30を介してFPGA拡張カード26に伝送し、当該FPGA拡張カード26が第2のユーザビットストリーム34bを第1のコンフィグレーションロジック20aに転送する。第1のコンフィグレーションロジック20aは、第2のユーザビットストリーム34bが第1のFPGA2に対して設定されたものであるか否かを検査し、そうでないことを識別すると、これに応じて、第2のユーザビットストリーム34bを第2のコンフィグレーションロジック20bへ転送する。第2のコンフィグレーションロジックは、第2のユーザビットストリーム34bが第2のFPGA22に対して設定されたものであるか否かを検査し、そうであることを識別すると、これに応じて、第2のユーザビットストリーム34bを第2の読み出し専用メモリ23に記憶する。
【0047】
第2の読み出し専用メモリ23への第2のユーザビットストリーム34bの記憶が終了した後、第2のコンフィグレーションロジック20bは、第2のFPGA22をトリガして第2のユーザビットストリーム34bの規定にしたがった第2のユーザロジック36bを第2のマトリクス25上に構成させる信号を形成する。ここでは、第2のコンフィグレーションロジック20bが上書きされる。
【0048】
図4には、プログラミングが進行した段階にあるコンピュータシステム32が示されている。第2のマトリクス25上での第2のユーザロジック36bの構成、ひいては第2のFPGA22のプログラミングは、終了している。これに応じて、マスタプロセッサ24は、第1のユーザビットストリーム34aを第3のコンフィグレーションロジック20cに送信し、当該第3のコンフィグレーションロジック20cが第1のユーザビットストリーム34aを第1のコンフィグレーションロジック20aに転送する。第1のコンフィグレーションロジックは、第1のユーザビットストリーム34が第1のFPGA2に対して設定されたものであるか否かを検査し、そうであることを識別すると、これに応じて、第1のユーザビットストリーム34aを第1の読み出し専用メモリ4に記憶する。第1の読み出し専用メモリ4への第1のユーザビットストリーム34aの記憶が終了した後、第1のコンフィグレーションロジック20aは、第1のFPGA2をトリガして第1のユーザビットストリーム34aの規定にしたがった第1のユーザロジック36aを第1のマトリクス6上に構成させる信号を形成する。ここでは、第1のコンフィグレーションロジック20aが上書きされる。
【0049】
図5には、プログラミングが完了したコンピュータシステム32が示されている。第1のユーザロジック36aが第1のFPGA2上に構成され、ひいてはデイジーチェーンのすべての回路がプログラミングされた後、マスタプロセッサがさらに、規則的に、第3のユーザロジック36cをFPGA拡張カード26上に構成する。
【0050】
図中の3回路を連結したデイジーチェーンが例示に過ぎないことに注意されたい。基本的には、上述したのと同様に、任意の数のプログラマブルゲート装置をコンピュータシステム32に統合およびプログラミングすることができる。この場合、デイジーチェーンの最後の回路がつねに最初にプログラミングされ、その後、列順にしたがって、まだプログラミングされていないそれぞれ最後のプログラマブルゲート装置がプログラミングされていく。こうした手段により、コンピュータシステム32のプログラミング中、デイジーチェーン内に配置されたすべてのプログラマブルゲート装置が順に前方へとユーザビットストリームの転送のために構成されていくことが保証される。
【0051】
図6には、例として、第1のコンフィグレーションロジック20aの論理構造が示されており、ここでは、第2のコンフィグレーションロジック20bが第1のコンフィグレーションロジック20aと同一に構成されており、すなわち同じ機能を有する。
【0052】
第1のコンフィグレーションロジック20aは、まず、第1のコンフィグレーションロジック20aの論理インタフェースを介して第1のFPGA2の第1のデータインタフェース10aに接続された監視ロジック40を含み、これにより、第1のコンフィグレーションロジック20aが構成されて、第1のデータインタフェース10aからデータが読み込まれ、当該データが第1のデータケーブル接続部29を介してFPGA拡張カード26に伝送される。第1の監視ロジック40は、第1のデータインタフェース10aをユーザインタフェースロジック42またはプログラミングロジック44またはリセットロジック46のいずれかに接続するマルチプレクサとして構成されている。第1の監視ロジック40は、第1のデータインタフェース10aを介して入力されるすべてのデータにつき、上述したように、これに応じて、固有のFPGAすなわち第1のFPGA2に対して設定されたものであるか、またはデイジーチェーン内の他のプログラマブルゲート装置に対して設定されたものであるかを検査するように構成されている。
【0053】
監視ロジック40は、デイジーチェーンの別の回路に対して設けられたすべてのデータ、すなわちユーザビットストリームおよび有効データの双方を、プログラミングロジック44に転送する。プログラミングロジック44は、第1のコンフィグレーションロジック20aの論理インタフェースを介して第2のデータインタフェース10bに接続されており、監視ロジック40から得られたデータを第2のデータケーブル接続部31を介してデイジーチェーン内の後続の回路すなわち第2のFPGA22へ転送するように構成されている。当該過程は逆方向にも機能する。すなわち、プログラミングロジック44は、第2のFPGA22から第2のデータインタフェース10bを介して伝送されてきた有効データを読み込み、監視ロジック40へ転送するようにも構成されている。監視ロジック40は、プログラミングロジック44から得られた有効データを検査する。当該有効データが第1のFPGA2に対して設定されたものである場合、監視ロジック40は当該有効データをユーザインタフェースロジック42に転送する。そうでない場合、監視ロジック40は、有効データを第1のデータインタフェース10aに転送し、ここから、有効データは第1のデータケーブル接続部29を介してFPGA拡張カード26に転送される。
【0054】
第1の監視ロジック40がプログラミングロジック44からまたは第1のデータインタフェース10aから受け取った、第1のFPGA2に対して定められた有効データは、監視ロジック40により、ユーザインタフェースロジック42へ伝送される。ユーザインタフェースロジック42は、監視ロジック40から伝送されてきた有効データを第1のコンフィグレーションロジック20aのユーザインタフェース48へ供給し、当該ユーザインタフェース48で有効データが第1のユーザロジック36aによって読み出し可能となるように構成されている。逆方向では、ユーザインタフェースロジック42は、第1のユーザロジック36からユーザインタフェースロジック48に供給された有効データを読み出して監視ロジック40へ伝送するように構成されている。
【0055】
マスタプロセッサ24は、第1のユーザロジック36aが第1のマトリクス上に構成された後、新たなユーザロジックによる新たなプログラミングのために第1のFPGA2が構成されるよう、ユーザの入力に応答してリセット命令を監視ロジック40に伝送するように構成されている。監視ロジック40は、リセット命令を識別し、これに応じて各リセット命令につき、当該リセット命令が第1のFPGA2に対して設定されたものであるかまたは別のFPGAに対して設定されたものであるかを検査するように構成されている。第1のFPGA2に対して設定されていないリセット命令は、第2のFPGA22への転送のため、監視ロジックにより、プログラミングロジック44へ伝送される。第1のFPGA2に対して設定されたリセット命令が識別されると、監視ロジック40は、続いて第1のデータインタフェース10aに入力されたデータをリセットロジック46へ転送するようにトリガされる。これにより、第1のFPGA2は、新たなユーザビットストリームの受け取りのために、第1のFPGA2を新たにプログラミングするように構成される。
【0056】
リセットロジック46は、監視ロジック40から得られたユーザビットストリームを第1の読み出し専用メモリ4に記憶し、当該記憶が有効に終了した後、記憶したユーザビットストリームのチェックサムを監視ロジック40へ伝送する。監視ロジック40は、マスタプロセッサ24にチェックサムを伝送する。マスタプロセッサ24はチェックサムの正否を検査し、チェックサムが正しい場合、第1のFPGA2に対して設定された新たなプログラミングの命令を監視ロジック40に伝送する。監視ロジック40は、新たなプログラミングの命令をリセットロジック46へ伝送する。リセットロジック46は、新たなプログラミングの命令を受け取ったことに応じて、命令シーケンスを第1のFPGA2のICAP(Internal Configuration Access Port)に送信する。当該命令シーケンスの全体によって第1のFPGA2がトリガされてリセットが開始され、ユーザビットストリームが第1の読み出し専用メモリ4から読み出されて、当該ユーザビットストリームの規定にしたがったユーザロジックが第1のマトリクス6上に構成される。
【0057】
コンピュータシステム32のプログラミングをより効率的に行うために、リセットロジック46はさらに、チェックサムを第1の読み出し専用メモリ4に記憶する。新たなユーザビットストリームの受け取りが遅れた場合、リセットロジック46は、新たなユーザビットストリームのチェックサムと第1の読み出し専用メモリ4内に記憶されているチェックサムとを比較し、一致した場合には、第1のFPGA2の新たなプログラミングの開始を省略する。
【0058】
リセットロジック46はさらに、リセットの開始前に、少なくとも1つのステータスデータ、特に第1のFPGA2のバスアドレスを、デイジーチェーン内の前方のコンフィグレーションロジックへの転送のために監視ロジック40に伝送するように構成されている。相応に、プログラミングロジックは、少なくとも1つのステータスデータを第2のコンフィグレーションロジック20bから受け取って記憶し、第2のFPGA22の新たなプログラミング後、当該ステータスデータによって定義される第2のFPGA22のステータスを再形成するように構成されている。
【0059】
第1のコンフィグレーションロジック20aの上述した多くの機能は、もちろん、第1のユーザロジック36aが第1のFPGA2上に構成された後に第1のコンフィグレーションロジック20aが構成されたままとどまり、ただし、第1のユーザロジック36aの構成によって第1のコンフィグレーションロジック20aが上書きされる、ということを前提としている。このために、とりわけ、第2のFPGA22をデイジーチェーンに統合する手段と、図5のコンピュータシステム32のプログラミングの終了後に第1のFPGA2を新たにプログラミングする手段と、が挙げられる。図7および図8には、第1のコンフィグレーションロジック20aが第1のFPGA2上に残留することを保証する、2つの異なる手段が示されている。
【0060】
図7に示されているように、1つの手段は、第1のコンフィグレーションロジック20aを第1のユーザロジック36aに組み込むことにある。つまり、第1のユーザロジック36aは、第1のコンフィグレーションロジック20aが第1のユーザロジック36aの機能範囲の組み込み要素となるように構成されており、これにより、第1のコンフィグレーションロジック20aは、第1のユーザロジック36aが第1のマトリクス6上に構成される際に上書きされるものの、第1のユーザロジック36aの構成の途中で直ちに新たに構成される。第1のユーザロジック36aへの第1のコンフィグレーションロジック20aの組み込みは、第1のユーザロジック36aをプログラミングしたユーザの責に委ねられる。有利には、第1のコンフィグレーションロジック20aは、ユーザに対し、完成状態で簡単に第1のユーザロジック36aに組み込み可能なモジュールとして供給される。
【0061】
図8には、第2の手段が示されている。第1のFPGA2の第1の読み出し専用メモリ4内には、第1のメモリスロット50と、当該第1のメモリスロットから論理的に分離された第2のメモリスロット52と、が構成されている。初期ビットストリーム12は、図1の第1のFPGAが準備される際に第1のメモリスロット50に記憶され、第1のFPGA2は、給電電圧が第1のFPGA2に印加された後、第1のメモリスロット50からビットストリームを自動的に読み出し、読み出したビットストリームの規定にしたがった論理回路を第1のマトリクス6上に構成するように構成されており、これにより、コンピュータシステム32の起動後、第1のコンフィグレーションロジック20aが第1のマトリクス6上に構成される。
【0062】
第1のコンフィグレーションロジック20aは、本発明の当該構成では、コンフィグレーションソフトウェアから受け取られた第1のユーザビットストリーム34aを第2のメモリスロット52に記憶して命令シーケンスを形成するように構成されており、当該命令シーケンスの全体によって、第1のFPGA2がトリガされてリセットが開始され、第2のメモリスロット52から第1のユーザビットストリーム34aが読み出され、当該第1のユーザビットストリーム34aの規定にしたがった第1のユーザロジック36aが第1のマトリクス6上に構成される。
【0063】
つまり、第1のメモリスロット50は初期ビットストリーム12の維持のみのために留保されているので、第1のコンフィグレーションロジック20aを構成する過程がコンピュータシステム32の起動により任意の頻度で反復可能となる。こうした本発明の構成は、第1のコンフィグレーションロジック20aを第1のユーザロジック36aに組み込まなくても利用できる点で有利である。これにより、ユーザは、第1に、第1のマトリクス6上のより多くのリソースを第1のユーザロジック36aの形成に利用でき、第2に、コンフィグレーションロジックが組み込まれておらずその構成がユーザにとってもはや変更不能である、完成した第1のユーザロジック36aによって、作業を行うことができる。デイジーチェーン内にさらなるプログラマブルゲート装置を統合するには、有効データおよびユーザビットストリームを別のプログラマブルゲート装置に転送できかつこれらを別のプログラマブルゲート装置から受け取れるよう、第1のマトリクス6上に少なくともプログラミングロジック44の機能を構成しなければならない。そうでない場合、当該構成では、サードパーティサプライヤの唯一のプログラマブルゲート装置しかデイジーチェーンに統合できない。
【0064】
図7および図8に関連して説明した手法は、第2のFPGA22にも、デイジーチェーン内に統合された別の任意のプログラマブルゲート装置にも、同様に適用可能であることを理解されたい。
図1
図2
図3
図4
図5
図6
図7
図8