(57)【特許請求の範囲】
【請求項１】
それぞれ複数の同期化マーカー（５０）及び複数のデータブロック（５１）を含む複数の第１入力データストリーム（５５〜５７）を受け、
前記複数のデータブロック（５１）を、互いに同期する複数の出力データストリーム（６１〜６６）に分散させて出力する、ハードウェアによって実行されるデータ転送方法であって、
前記同期化マーカー（５０）は、前記複数のデータブロック（５１）のうち、どのデータブロックを同じタイムセグメント内に出力すべきかを示し、
少なくとも一つのタイムセグメントにおいては、前記複数のデータブロックの少なくとも一つを、前記複数の出力データストリーム（６１〜６６）の２以上を介して出力する、データ転送方法。
【請求項２】
前記第１入力データストリーム（３０Ａ〜３０Ｄ）は、それぞれに割当てられたメモリ（３１Ａ〜３１Ｄ）に記憶される、請求項１に記載の方法。
【請求項３】
前記複数の第１入力データストリーム（３０Ａ〜３０Ｄ）は、前記メモリから漸進的に読出され、前記同期化マーカー（５０）に割当てられた前記データブロック（５１）が前記出力データストリームに分散される、請求項２に記載の方法。
【請求項４】
前記漸進的な読出し及び分散は、前記第１入力データストリーム（３０Ａ〜３０Ｄ）に前記同期化マーカー（５０）が現れるたびに繰り返される、請求項３に記載の方法。
【請求項５】
さらに、非同期データを前記出力データストリーム（６１〜６６）の少なくとも一つのタイムセグメントに充填する、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記非同期データは、同期化マーカー（５０）を含まない第２入力データストリーム（５８）から供給される、請求項５に記載の方法。
【請求項７】
前記複数のデータブロックの少なくとも一つは、前記第１入力データストリーム及び／又は出力データストリームの相互及び／又は外部事象との同期化のためのコマンドを含む、請求項６に記載の方法。
【請求項８】
前記複数のデータブロック（５１）のそれぞれは、分配されるべき複数の出力データストリーム（６１〜６６）の少なくとも一つを示す情報を含む、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
転送装置（１３）であって、
複数の出力部（２５〜２７）を含み、前記転送装置は、複数の入力データストリーム（３０Ａ〜３０Ｄ）を受信するように構成され、前記入力データストリーム（３０Ａ〜３０Ｄ）の少なくとも幾つかは、複数の同期化マーカー（５０）及び複数のデータブロック（５１）を含み、前記転送装置（１３）は、さらに、前記複数のデータブロック（５１）を、前記出力部（２５〜２７）を介して、互いに同期する複数の出力データストリーム（６１〜６６）に分散させて出力するように構成され、前記同期化マーカー（５０）は、前記複数のデータブロック（５１）のうち、どのデータブロックを同じタイムセグメント内に出力すべきかを示し、少なくとも一つのタイムセグメントにおいては、前記複数のデータブロックの少なくとも一つを、前記複数の出力データストリーム（６１〜６６）の２以上を介して出力する、
転送装置。
【請求項１０】
さらに、複数のメモリ（３１Ａ〜３１Ｄ）を含み、前記複数のメモリ（３１Ａ〜３１Ｄ）のそれぞれは、前記入力データストリーム（３０Ａ〜３０Ｄ）の１つのデータストリームの前記データブロックを記憶するように構成されている、請求項９に記載の転送装置（１３）。
【請求項１１】
さらに、前記メモリ（３１Ａ〜３１Ｄ）から、前記同期化マーカー（５０）に割当てられたデータブロックを漸進的に読出すように設定された少なくとも１つの第１シーケンサ装置（３３）を含み、前記転送装置（１３）は、さらに前記出力部（２５〜２７）にそれぞれ割り当てられた第１出力バッファ（３９Ａ〜３９Ｄ）を含み、前記メモリ（３１Ａ〜３１Ｄ）から読出されたデータブロックを第１出力バッファ（３９Ａ〜３９Ｄ）に書き込むように構成されている、請求項１０に記載の転送装置（１３）。
【請求項１２】
さらに、前記メモリ（３１Ａ〜３１Ｄ）から、非同期データを読出し、前記非同期データを第２出力バッファ（３１０Ａ〜３１０Ｄ）に書き込むように設定された少なくとも１つの第２シーケンサ装置（３５）を含み、前記第２出力バッファ（３１０Ａ〜３１０Ｄ）のそれぞれは前記出力部（２５〜２７）の１つに割当てられ、前記転送装置はさらに前記出力部（２５〜２７）にそれぞれ割り当てられた組合せ装置（３１１Ａ〜３１１Ｄ）を含み、前記組合せ装置（３１１Ａ〜３１１Ｄ）の各々は、対応する前記第１出力バッファからのデータブロックを、対応する前記第２出力バッファからの非同期データと組合せて、前記出力データストリームを形成するように設定されている、請求項１１に記載の転送装置（１３）。
【請求項１３】
前記転送装置は少なくとも一部がハードウェアとして実装される、請求項９〜１２のいずれか一項に記載の転送装置（１３）。
【請求項１４】
前記ハードウェアは特定用途向け集積回路及び／又はフィールド・プログラマブル・ゲートアレイを含む、請求項１３に記載の転送装置（１３）。
【請求項１５】
請求項９〜１４のいずれか一項に記載の転送装置（１３）を含む顕微鏡システム。
【発明の詳細な説明】
【背景技術】
【０００１】
多くのシステムにおいて、データストリームはシステムの異なるコンポーネントにより生成され、前記データストリームの各々は異なる受信機コンポーネントについてのデータを含めてもよい。かかるデータストリームは、例えば、タイム・クリティカルな制御データ及び／又は制御コマンドを含めてもよく、異なる受信機への転送を部分同期で実施せねばならない。かかるシステムの一例が、制御データ又は制御コマンドを含むデータストリームをその異なる顕微鏡システムのハードウェアコンポーネントにより生成して、異なる受信機コンポーネントに転送せねばならない最新の顕微鏡システムである。レーザ走査顕微鏡システムを一例とすることもできるが、このシステムでは、制御コマンドが、例えば、スキャナミラーの動きを制御するためにスキャナミラーに送信されると共に、各画像記録装置にも送信され、スキャナミラーの動きと画像記録を相互に同期で行うことを意図している。さらに、かかる制御コマンドは異なるソースを送信元とすることもできる。このシステムは単なる例示用であるが、しかし、対応必要事項は他のシステムにも適用してよい。かかる顕微鏡システム及びデータストリームの例が記載されているのが、ＤＥ１０２００９０４０８３９Ａ１号公報又はＤＥ１０２００８００９６３４Ａ１号公報である。
【０００２】
従って、一般的に言えば、幾つかの用途では、ｎ（ｎ≧１）個のデータソースからのデータをｍ（ｍ≧１）個のデータシンクに分散させねばらない。従来の純粋なソフトウェアの実行は、再ソート及び同期化の難易度が高いことから、データスループットに関しては、必要な計算時間（例えば、ＣＰＵ能力利用度）により制限されることになる。従来のソリューションでは、その結果として、大きなデータバッファを利用可能に保つことが必要になり、データバッファが大きい結果として、事象に対する高速反応は事実上不可能である。特に、一例を挙げると、データバッファの結果として、特に外部事象の検出及び処理がかかるソフトウェアにおいて可能になるまでの最短待ち時間が比較的長くなる。データの転送がソフトウェアの中心位置にバンドルされている従来のソリューションでは、個々のデータソースの相互同期化及び優先順位付け中に問題がさらに生じることがある。もしかかる従来のソフトウェアソリューションがデータのバンドリング及び転送中に全てのソースにタイムリーに対応できない場合、出力データストリームを出力するためのデータ出力がその相互同期を失うことがあり、極端な場合は、特定用途の場合にデータが使用不能になり、最終的には使用するハードウェアに不具合が生じることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従って、本出願の目的は、複数の入力データストリームを複数の出力データストリームに分散させて、上記の諸問題又はその一部を解消又は少なくとも緩和する方法及び装置を提供することにある。
【課題を解決するための手段】
【０００４】
この目的は、請求項１に記載の方法と、請求項１５に記載の転送装置とにより達成される。従属クレームは、さらに、例示的な実施形態と、かかる転送装置を含む顕微鏡システムも定義する。
【０００５】
第１態様によれば、複数の入力データストリームを提供すると共に、入力データストリームの少なくとも幾つかは、入力データストリームのどのデータを共通のタイムセグメント内で出力すべきかを示す同期化マーカーを含むことと、同期化マーカーに基づき、入力データストリームと同期で出力すべきデータを複数の出力データストリームに分散させることを含むデータの転送方法が提供される。
【０００６】
この場合、入力データストリーム中での同期化マーカーの使用により、出力データストリームの少なくとも部分的並列処理及び／又はシンプルな同期化が可能となる。
【０００７】
この場合、特定のタイムセグメント内に伝送すべきデータが、同一のタイムセグメント内に、前記データを割当てるべき全ての出力データストリームに提供されるような方法で、分散を実施してもよい。
【０００８】
この場合、入力データストリームの提供は、各割当てメモリ内への入力データストリームの記憶を含めてもよい。
【０００９】
この方法は、特に、同期化マーカーへの割当てデータがいずれの場合も各入力データストリームから読出されることを伴う、複数の入力データストリームの漸進的読出しと、出力データストリームへのかかる読出しデータの分散とを含めてもよい。
【００１０】
例えば、出力データストリームへの全存在データの分散が完了するまでは、漸進的読出し及び分散は、いずれの場合も、入力データストリームのそれぞれ次の同期化マーカー毎に繰り返してもよい。
【００１１】
この場合、漸進的読出しは異なるグループの入力データストリームについて並列で実施してもよい。
この方法は、加えて、出力データストリームのタイムセグメントへの同期伝送すべきでないデータの充填を含めてもよい。
この場合、充填は、全ての出力データストリームについて、並列で実施してもよい。
【００１２】
この場合、複数の出力データストリーム中に提供すべき入力データストリームのデータが、出力データストリーム中の相互対応タイムセグメント内に提供されるような方法で、充填を実施してもよい。
【００１３】
例えば、上記説明の処理のようなデータ処理は、複数の出力データストリームについて、少なくとも一部が並列で実施でき得る。すなわち、例えば、上記説明の処理を実施する専用の処理装置を出力データストリーム毎に備えてもよい。複数の出力データストリーム用の共通の処理装置によって、データ処理のその他の処理を実施してもよい。
【００１４】
この場合、データは顕微鏡システムのデータであってもよい。
データは、例えば、顕微鏡システムのようなシステムのコンポーネントを制御するためのコマンドを含めてもよい。コマンドは、入力データストリーム及び／又は出力データストリームの相互及び／又は外部事象との同期化のためのコマンドを含めてもよい。
入力データストリームのデータは、いずれの場合も、どの出力データストリームに割当てるべきかに関する情報を有してもよい。
【００１５】
第２態様によれば、複数の出力を含む転送装置が提供され、転送装置は、複数の入力データストリームを受信するように構成され、入力データストリームの少なくとも幾つかは、共通のタイムセグメント内に入力データストリームのどのデータを出力すべきかを示す入力データストリームのデータを含む同期化マーカーを含み、転送装置は、さらに、出力部（２５−２７）における入力データストリーム及び同期化マーカーに基づき、複数の出力データストリームを提供するように構成されている。
【００１６】
転送装置は、さらに、複数のメモリを備えてもよく、複数のメモリの各メモリは入力データストリームの１つのデータストリームのデータを記憶するように構成されている。他の実施形態では、複数の入力データストリームを共通メモリに記憶させてもよく、入力データストリームの幾つか又は全てを複数のメモリに分割させてもよい。それに加えて、複数のメモリを異なるエリアとして１つのメモリ内に実装させてもよい。
【００１７】
転送装置は、さらに、同期化マーカーへの割当てデータをメモリから漸進的に読出すように構成でき得るシーケンサ装置を含めてもよく、転送装置は、さらに、出力端子毎に出力バッファを含めてもよく、シーケンサ装置は、データを割当てるべき出力端子を有する出力バッファに読出しデータを書き込むように構成される。
【００１８】
転送装置は、加えて、同期伝送すべきではないデータをメモリから読出し、前記データをさらなる出力バッファに書き込むように構成してもよいさらなるシーケンサ装置を含めてもよく、各１つのさらなる出力バッファが出力の１つに割当てられており、転送装置は、さらに、各出力用に組合せ装置を含み、組合せ装置の各々は、出力バッファからのデータと、各出力に割当てられたさらなる出力バッファからのデータとを組合せて、出力データストリームを形成できるように構成されている。
【００１９】
２つ以上のシーケンサ装置及び／又はいずれの場合もメモリの一部に割当てられる２つ以上のさらなるシーケンサ装置を備えることも可能である。
転送装置は少なくとも一部をハードウェアとして実装させてもよい。
この場合、ハードウェアは、例えば、特定用途向け集積回路（ＡＳＩＣ）又はフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）を含めてもよい。
【００２０】
さらなる加速をかかるハードウェア実装により実現することができる。
転送装置は、上記方法の１つを実施するように構成してもよい。
第３態様によれば、かかる転送装置を含む顕微鏡システムが提供される。
【図面の簡単な説明】
【００２１】
以下、添付図面を参照して、実施形態に基づき、本発明をさらに詳細に説明する。
【００２２】
【図１】１つの実施形態による転送装置を含むシステムを示す図。
【図２】１つの実施形態によるシステムの概略図。
【図３】１つの実施形態による転送装置の詳細図。
【図４】１つの実施形態による方法を説明するためのフローチャート図。
【図５】実施形態の機能を説明するためのデータストリームの例を示す図。
【図６】実施形態の機能を説明するためのデータストリームの例を示す図。
【発明を実施するための形態】
【００２３】
以下、添付図面を参照して、様々な実施形態をさらに詳細に説明する。これらの実施形態は単なる例示用であって、限定的なものであると解釈すべきではない。この点で、一例を挙げれば、複数の特徴又は要素を有する１つの実施形態の記述は、全てのこれら特徴又は要素が実施形態を実行する上で必要であると解釈すべきではない。正しくは、その他の実施形態は、より少ない特徴又は要素、代替的特徴または要素及び／又は追加的特徴又は要素を有していてもよい。別段の指示がない限りは、異なる実施形態の特徴又は要素は相互に組合せてもよい。
【００２４】
図１は、１つの実施形態による転送装置１３を含むシステムを説明している。転送装置１３は複数の装置１０、１１、１２から入力データストリームを受信する。３つの装置１０、１１、１２が例示されているが、一般的には、任意数ｎ（特にｎ≧２）の装置１０〜１２を備えることができる。さらに、複数のデータストリームが単一の装置から現れてもよい。この場合、入力データストリームを生成するために、装置１０、１１、１２はハードウェアモジュール、ソフトウェアモジュール又はその組合せを有してもよい。
【００２５】
転送装置１３は、装置１０〜１２から受信した入力データストリームからのデータを処理装置１４〜１６に転送し、一般的には、任意数ｍの処理装置１４〜１６を備えてもよい。任意数ｍは特に≧２でよいが、それに限定はされない。複数の出力データストリームを単一の処理装置に、例えば、その部位別に転送することも可能である。この場合、用語「処理装置」は、さらなる転送が含まれる何らかの方法によって受信データがさらに処理されることを示している。一例を挙げれば、データは、処理装置１４〜１６を制御する制御データを含めてもよい。ここで、装置１０〜１２により生成される入力データストリームのデータは、いずれの場合も、処理装置１４〜１６用の１つ又は複数の出力データストリームに割当ててもよい。これらの例についても後に説明を行う。幾つかの実施形態では、装置１０〜１２及び処理装置１４〜１６は、序論で説明したように、顕微鏡システムの、例えば、レーザスキャナ顕微鏡システムの一部であってもよい。
【００２６】
後述の例に基づき詳細に説明するように、実施形態では、装置１０〜１２により出力される入力データストリームは同期化マーカーを有する。これらの同期化マーカーに基づき、データ相互間の同期が確保されるような方法で、転送装置１３は処理装置１４〜１６への転送のために出力データストリームを生成することができる。この目的で、転送装置１３は、特に、例えば、共通クロックサイクルのような、出力データストリームの共通タイムセグメント内に、相互対応同期化マーカーへの割当てデータを用意してもよい。この場合、転送装置１３は、全体又は一部を、例えば、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）として、ハードウェアに実装してもよい。しかし、本発明はそれには限定されず、他の実施形態では、ソフトウェア、ハードウェア及びファームウェアの組合せを使用して転送装置を実装することが一般的に可能である。
【００２７】
図２は、さらなる実施形態による転送装置２４を含めたシステムを示している。図２の実施形態では、複数の入力データストリームが複数のデータソース部２０〜２２により供給される。データソース部２０〜２２は、例えば、図１の装置１０〜１２又はその一部に対応できるが、それに限定はされない。入力データストリームはソフトウェア（ＳＷ）で事前に初期処理してもよいが、図２の実施形態では、例えば、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）又はＡＳＩＣとして実装された分散装置２４により、出力部２５〜２７にハードウェア（ＨＷ）で分散させられる。この場合、出力部２５〜２７は、特に、例えば、図１の処理装置１４〜１６にデータを出力するハードウェア出力としてもよい。
【００２８】
図２に示したハードウェアでの処理は、特にソフトウェアから独立して、時間的同期化方式及びリアルタイム−クリティカルタイムレジームに対応する方式で、ソース部２０〜２２からの複数のデータストリームを出力部２５〜２７（データシンク）に出力してもよい。この場合、データ同期化は、データストリーム自体、外部条件自体、外部条件及び／又は図２のシステム内で生じるその他の一時的境界条件に依存させてもよい。かかる依存関係は、例えば、特定の周期的同期化時間までのデータ出力の必要性、かかる同期化時間と同期化時間との間の最短可能待ち時間でのデータ出力又は出力データストリームへのデータ挿入の必要性、外部及び／又は内部事象（トリガー）に対する低遅延反応の実現の必要性、個々の用途の適用可能条件に対する高速反応の実現の必要性、及び／又は、データの、特に、異なる入力データストリームの低遅延制御及び相互同期化の実現の必要性を含めてもよい。実施形態では、さらに、低遅延性によって、ソフトウェア介在の必要なしで、同期化を維持しつつ、複数の事象に対して（例えば、同期化要求のないリアルタイム・クリティカルデータ、外部条件、データ中の内部マーカー、クロック信号のクロック変化等に対して）反応することが確実に可能となる。この目的で、図１を参照してすでに説明したようなソース部２０〜２２により生成された入力データストリームは、同期化マーカーを有してもよく、データストリームは（例えば、同期化マーカー、及び／又は、同期伝送すべきデータと非同期データへの分類に基づき）各個別データストリームについて並列で分類してもよい。分類されたデータストリームは下流で処理し、出力部２５〜２７に分散させてもよい。
【００２９】
３つのデータソース部２０〜２２及び３つの出力部２５〜２７が図２には例示されているが、システム要求に応じて、任意数のソース部及び出力部が存在してもよい。この場合、ソース数は出力数と違っていてもよい。
【００３０】
留意すべきは、データソース数及びデータシンク数、例えば、ソース部２０〜２２の数及び能動出力部２５〜２７の数も設定可能であり、特に、ランタイムに関しての設定が可能であり、すなわち、運転中に変更できるということである。データストリーム自体は、例えば、同期化マーカー間のデータ数に関して変化することもできる。実施形態では、かかる可変データストリームは、同期を維持しつつ処理することもできる。
【００３１】
図３は、本発明による転送装置のより詳細な例を示している。図３の転送装置は、特にソフトウェア、ハードウェア又はそれらの組合せとして実装してもよい。１つの好適な実施形態では、図３の転送装置は、ハードウェアの全体又は一部が、特にフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）の形で実装される。
【００３２】
図３の実施形態では、複数の、特に、２つ以上の入力データストリーム３０Ａ〜３０Ｂ（以下、入力データストリーム３０と総称する）が転送装置に送り込まれる。入力データストリーム３０は、特に基本的には、序論で提示した文献ＤＥ１０２００９０４０８３９Ａ１号公報又はＤＥ１０２００８００９６３４Ａ１号公報の場合と同様にもたらすこともできる。入力データストリーム３０は、例えば、（図示せぬ）リングメモリから、例えば、ダイレクトメモリアクセス（ＤＭＡ）を介して読出してもよい。実施形態では、入力データストリーム３０は、特に、ＦＩＦＯ装置３２Ａ〜３２Ｄ（先入れ先出し、すなわち、最初に書き込まれたデータが最初に読出されるメモリ）を含む各割当てメモリ３１Ａ〜３１Ｄ（メモリ３１と総称）に記憶される。幾つかの実施形態では、メモリ３１内のデータは−例えば、メモリ３１の各々については全体を、及び／又は、各メモリ内の各データについては個別に−同期又は非同期データとして識別してもよい。従って、幾つかの実施形態では、メモリ３１の各々は同期データのみ、又は非同期データのみを含み、それに応じて識別される。他の実施形態では、メモリ３１はそれぞれ混合した同期データと非同期データとを含めてもよく、データはそれに応じて識別される。さらに他の実施形態では、メモリ３１はそれぞれ同期データ用と非同期データ用の別々のＦＩＦＯ装置を含めてもよい。この場合、特に、同期データについては、データ相互の時間的関係を維持すべきであるが、非同期デーの場合、それは不要である。ここでの入力データストリーム３０のデータは、異なる装置に転送すべきデータと、特に、コマンドを含めてもよい。
【００３３】
メモリ３１からのデータは、同期シーケンサ３３及び非同期シーケンサ３５により読出され、同期シーケンサ３３は同期データを読出し、非同期シーケンサ３５は、非同期データを、すなわち、同期が重要ではなく、相互に非同期で伝送することもできるデータを読出す。この読出しは、例えば、各メモリへの固定ハードウェア接続部を介して直接実施される。同期データは、例えば、同期シーケンサ３３のバッファメモリ３４（例えば、ＦＩＦＯ）を介して、又は直接、以下でさらに説明する同期出力バッファ３９Ａ〜３９Ｄに書き込まれ、非同期データは、例えば、非同期シーケンサ３５のバッファメモリ３６（例えば、ＦＩＦＯ）を介して、又は直接、非同期出力バッファ３１０Ａ〜３１０Ｄに書き込まれる。
【００３４】
実施形態では、同期データストリームは、同期シーケンサ３３によりここでは順番にメモリ３１から読出され、同期化マーカーに基づき各出力データストリームに送られる。この点において、各出力チャンネル用の出力データストリームは、出力装置３７の対応同期出力バッファ３９Ａ〜３９Ｄに書き込まれ、同期化ビット３８Ａ〜３８Ｄを導入することができる。この場合、データ自体は、データ自体を書き込むべき出力バッファ３９Ａ〜３９Ｄを定義してもよい。図３の実施形態では、一例として、最終的に４つの出力データストリーム３１３Ａ〜３１３Ｄにつながる４つの出力チャンネルが例示されている。しかし、この数はやはり単なる一例として理解すべきであり、基本的には、システム要求及び所望の実装に応じて、任意数の出力データストリームを提供するようにしてもよい。
【００３５】
同じ方法で、非同期シーケンサ３５も、メモリ３１Ａ〜３１Ｄから読出されたデータを出力データストリームに分割し、対応非同期出力バッファ３１０Ａ〜３１０Ｄに書き込む。留意すべきは、同期データだけを処理する実施形態では、非同期シーケンサ３５及び対応非同期出力バッファ３１０Ａ〜３１０Ｄも省略することができる。
【００３６】
特に、同期維持中にもし必要であれば、シーケンサ３３、３５は個々の入力データストリームからデータをすでにソートしており、各々適切な出力バッファ３９Ａ〜３９Ｄ又は３１０Ａ〜３１０Ｄに書き込みを行う。
【００３７】
各出力チャンネルにさらに割当てられているのが、出力装置３７内の出力機３１１Ａ〜３１１Ｄであり、（例えば、もしクロックサイクルのようなタイムセグメント内にまだそのための時間が存在する場合は）該出力機は各同期出力バッファ３９Ａ〜３９Ｄからの同期データに各非同期出力バッファ３１０Ａ〜３１０Ｄからのデータを充填して、各出力データストリームを生成する。次に、出力データストリームは、例えば、出力インタフェース３１２Ａ〜３１２Ｄを介して、出力データストリーム３１３Ａ〜３１３Ｄとして出力される。この場合、出力インタフェース３１２Ａ〜３１２Ｄは特にＬＶＤＳ（低電圧差動信号伝達）インタフェースとしてもよいが、これは単なる一例であり、その他のタイプのインタフェース、増幅器又は出力信号を使用してもよい。
【００３８】
この場合、入力データストリーム中の上述した同期化マーカーは、特に、入力データストリームを相互同期で処理する働きを行わせてもよい。１つの実施形態では、同期シーケンサ３３は入力データストリームの同期データを順番に処理し、前記同期シーケンサによって、同期化マーカーを発見するまで、各出力データストリームから十分な数のデータを除去する。その後に、次の同期入力データストリームが同じ方法で次のメモリ３１から読出される。全てのデータストリームが通過した時には、幾つかの実施形態では、同期シーケンサ３３は、特定のタイムセグメント内での、例えば、クロックサイクル内での、出力データストリーム３１３Ａ〜３１３Ｄに伝送すべき全てのデータの読出しと同期出力バッファ３９Ａ〜３９Ｄへの書き込みを完了している。次に、これらのデータは、各データを出力すべき各出力チャンネルを介して各同期出力バッファ３９Ａ〜３９Ｄに書き込まれる（例えば、もしデータを複数のデータシンクに伝送すべき場合は、データは複数のチャンネルを介して出力することもできる）。これはデータのバンドリングと称してもよい。このバンドリングの過程では、可能な限りは、所定のタイムセグメント（例えば、クロックサイクル）についての全ての時間条件、特に、所望の同期性がコンパイルされ、データが想定タイムセグメント内に存在するように（後続の時間セグメント内にシフトされないように）最大限の注意を払うものとする。もし各タイムセグメント内にまだ余地がある場合は、その後に−上記のように−各データチャンネル内でデータオーバフローを起こさずに、非同期データが各出力機３１１Ａ〜３１１Ｄにより挿入される（すなわち、挿入された非同期データは、例えば、各タイムセグメント内のスティル・フィットを超えることはない）。留意すべきは、もし非同期データのみ存在する場合でも、図３の実施形態は正常に機能する。この場合、同期シーケンサ３３は機能しておらず、非同期シーケンサだけが動作している。
【００３９】
この処理は、１つの好適な実施形態の図３の出力装置３７に示されたような全ての出力チャンネルについて少なくとも一部が並列で行われ、幾つかの実施形態では、データ発信元である入力データストリームから独立している。他の実施形態では、異なる入力データストリームのデータは、処理中には異なる優先順位を有してもよい。実施形態では、部分的並列とは、出力装置３７では、データを処理又は記憶する全ての装置（一般的には、処理装置と称される、例えば、３８〜３１２）は出力データストリーム毎に個別に備えられ、従って、データの並列処理は出力装置３７内で行われる。対照的に、シーケンサ３３、３５は全てのデータストリームについて作動し、従って、ここでは並列処理は行われず、その理由から、実施形態では処理は一部のみが並列である。
【００４０】
他の実施形態では、一部の並列処理は、図３に示した例とは異なる構成にしてもよい。一例を挙げれば、入力データストリーム毎の個別のメモリ３１の代わりに、メモリ数を減らしてもよく、もし適切であれば、わずか１つのメモリでもよく、その場合は、複数の入力データストリームが１つのメモリを共同で使用することになる。一方、割当てメモリ数に対する入力データストリーム数の割合を基本的には任意としてもよく、１つの入力データストリームを複数のメモリに分割することも可能である。
【００４１】
２つ以上の同期シーケンサ３３及び／又は２つ以上の非同期シーケンサ３５を備えることも可能であり、その場合は、各シーケンサはメモリ３１の一部だけを読出す。完全な並列処理のために、入力データストリーム毎に同期シーケンサと非同期シーケンサとを備えることも可能である。
【００４２】
図４は、１つの実施形態による方法のフローチャートを示している。図４の方法は特に図１〜３の上記転送装置に基づいて実施することもできる。別段の説明がない限りは、図１〜３の実施形態について考察した変形例、変更例及び詳細は図４の方法にも適用可能である。
【００４３】
図４中の４０では、同期化マーカーを有する複数の入力データストリームが提供される。複数の入力データストリームは、例えば、顕微鏡システムの異なる装置を、例えば、複数の異なるソース部を発信元とすることもできる。
図４中の４１では、入力データストリームの同期データが、同期化マーカーに基づき、複数の出力データストリームに分散させられる。
【００４４】
これは、例えば、図３に関する説明と同様に実施することもできる。この場合、特に、例えば、クロックサイクルのような、対応タイムセグメント内に複数の出力データストリーム中に同期データを確実に存在させることが可能である。その結果として、一例を挙げれば、出力データストリームを受信する装置を相互同期で制御することができる。
オプションで、図４中の４２において、同期データを完全に充填されていないタイムセグメントには、もし非同期データを同様に伝送すべきである場合は、非同期データが充填される。
【００４５】
上記転送装置及び方法のさらなる例示のために、以下、図５及び６を参照してデータストリームの例を説明するが、入力データストリームの例は図５に例示され、対応出力データストリームの例は図６に示されている。留意すべきは、これらのデータストリーム、特に、データストリーム数、データ数及び出力データストリームへのその分散は単なる例示であり、実装に応じてその他の数値も可能であることから、限定的なものではないと解釈すべきであろう。
【００４６】
特に、４つの入力データストリーム５５〜５８が図５の例には示され、入力データストリーム５５〜５８のデータを分散させるべき６つの出力データストリーム６１〜６６が図６には例示されている。図５は、さらに、背景表現の違いによる個々のデータブロックのタイプ（例えば、ビット、バイト、ワード、データブロック、その他）５０〜５４の識別に利用できる凡例を示している。
【００４７】
この場合、データストリーム５５〜５７は、データ５０が同期化マーカーを含む（以下、簡素化のために同期化マーカー５０と称する）同期データを有するデータストリームである。かかる同期化マーカーは、例えば、そのために確保されたビットの設定、データ中での他の何らかの識別、又はその他のデータブロック間の追加データブロック（ペイロードデータ）によって提供することもできる。個々の同期化マーカー５０に続くのは、同期化マーカーにより定義されたパターン（ｓｙｎｃパターン；凡例では５１）のデータであり、例えば、次の同期化マーカー５０までの１つの同期化マーカー５０に後続するデータ５１は、共通のクロックサイクル又は他のタイムセグメント内で、出力データストリーム中を伝送されるものとする。
【００４８】
図５及び６の個々のデータは凡例によって識別される。この場合、最初の数字は入力データストリームの数を示す（入力データストリーム５５は０、入力データストリーム５６は１、入力データストリーム５７は２、入力データストリーム５８は３）。この数字にはコロンが続く。コロンに続くのは、１つ以上のデータストリーム６１〜６４に分散させるべきデータタイプを示すＬである。関連データストリームはＬの後のインデックスとして示され、Ａは出力データストリーム６１を表し、Ｂは出力データストリーム６２を表し、Ｃは出力データストリーム６３を表し、Ｄは出力データストリーム６４を表す。もしコロンの後にＬではなく、ＩＮＴが続いている場合は、データは、例えば、内部コマンドチャンネルを構成することもできる出力データストリーム６５に分散させるべきである。従って、この実施形態では、各データブロックは、データブロックを割当てるべき出力データストリームに関する情報が含まれる。他の実施形態では、幾つかのデータブロックだけが、例えば、複数の連続データブロックに対して適用可能な情報を含むことも可能である。出力データストリーム６６は、例えば、エラー検出又はテスト目的で使用できるリターンチャンネルを構成する。
【００４９】
入力データストリーム５８は、同期化リファレンス（５２）のない非同期データを含み該非同期データは出力データストリームに同期マッピングすべきではない。
幾つかのデータでは、最初の数字の後の記号として*［*］が付けられている。これは、所望どおりの数のさらなるデータ及び／又はデータストリームも提供できることを示しており、すなわち、「ワイルドカード」を表している。それ以外の場合は、角括弧の間に、各データストリーム中の（表示データブロックの）データの数がある（例えば、入力データストリーム５５の場合は［０］〜［２１］、入力データストリーム５６の場合は［０］〜［１４］）。
【００５０】
入力データストリーム５５〜５８のデータを出力データストリームに分散させるために、一例を挙げれば、（すでに図３を参照して説明したような）１つの実施形態では、各第２同期化マーカー５０の前のデータまでの第１同期化マーカー５０からのデータ（すなわち、最初は各データ［０］）は、同期化すべき全ての入力データストリームから読出される。これらのデータは、例えば、第１データストリーム５５の場合はデータ［０］〜［８］、第２データストリーム５６の場合はデータ［０］〜［４］、第３データストリーム５７の場合はデータ［０］〜［２］となる。幾つかの実施形態では、データは、例えば、非同期シーケンサ３５のような、別のシーケンサ（非同期）により、第４入力データストリーム５８から読出される。データは次にその意図する出力データストリームに応じて分散させられる。その結果が図６に示してある。この場合、符号６０はクロック信号を示し、クロック信号６０のサイクルは、同期データを伝送すべきタイムセグメントの一例を表す。かかるクロック信号は、例えば、顕微鏡システムのいわゆるピクセルクロック信号としてもよい。一例を挙げれば、レーザスキャナシステムでは、ピクセルはクロック信号６０の期間中に記録することができる。
【００５１】
クロック信号の各クロックサイクル（クロック期間）は、出力データストリーム６１〜６６中のポーズセグメント５４から始まる。その後に、図５に示したように、各出力データストリーム用の同期データ（すなわち、データストリーム５５〜５７からのデータ）が挿入される。従って、同期化マーカー５０により示されたような、同期伝送すべきデータがクロック信号６０のクロック期間内に確実に伝送される。他の実施形態では、関連タイムセグメントについては、クロック信号のクロック期間を複数にしてもよく、異なる決定を行ってもよい。
【００５２】
その後に、もしスペースがあれば、非同期データも追加される。この場合、図５及び６を参照して説明した実施形態では、複数の出力チャンネルに割当てられたデータストリーム５８のデータが全ての出力データストリーム中を同一のクロック期間で確実に伝送されるように注意が払われる。
【００５３】
従って、実施形態では、出力データストリーム６１への同期データの挿入後には、まだ２つのスペース（タイムスロットとも称される）が空いている。出力データストリーム６１に挿入すべき最初の２つのデータは、非同期入力データストリーム５８（インデックス"Ａ"）のデータ［０］及び［１］である。その他の出力データストリーム６２、６３、６４の場合は、さらにもっと多くのタイムスロットが空いている。従って、入力データストリーム５８のデータ［２］及び［３］をそこに挿入することも可能であるが、該データは出力データストリーム６１に挿入すべきではない。
【００５４】
データストリーム５８のデータ［４］は再び出力データストリーム６１に挿入すべきであるが、クロック信号６０の第１クロック期間中、そこにはデータ［４］用のスペースはもう存在していない。従って、データ［４］は次のクロック期間中にだけ最後に挿入される。全ての割当て出力データストリーム中のこのデータ［４］を並列伝送するために、たとえまだそこにスペースがあったとしても、データ［４］は次のクロック期間中にだけその他のストリーム６２〜６４にも挿入される。もしこの同期が重要ではない場合は、他の実施形態では、その他の出力データストリーム６２〜６４を同様に完全に充填することもできる。一例を挙げれば、まだクロック信号６０の第１クロック期間中に、データ［４］を出力データストリーム６２、６３及び６４に挿入してもよい。
【００５５】
第３同期化マーカー５０の前の最後のデータに至るまでの入力データストリーム中の各第２同期化マーカー５０からのデータ（例えば、入力データストリーム５５のデータ［９］〜［１７］及び入力データストリーム５９のデータ［５］〜［９］）について、この手順が繰り返され、その後に、入力データストリーム５８からの非同期データの充填が再び行われる。全てのデータの伝送が完了するまで、この手順が繰り返され、それにより図６の結果が得られる。
【００５６】
再び強調すべきは、図５及び６は単にさらなる例示であるということと、異なる数の入力データストリーム及び／又は出力データストリームの異なる数のデータにも適用できるということである。
【００５７】
上記実施形態では、同期化マーカーはデータストリーム相互の時間的同期化の役割を果たす。幾つかの実施形態では、それに加えて、特別なコマンドを用いて、データストリームを相互に、及び／又は、外部事象と同期化してもよい。かかるコマンドは、考察したデータストリームに挿入してもよい。この点で、かかるコマンドにより実現できるのは、例えば、（例えば、図２のソース部２０からの）１つのデータストリームが最初は待機し、（例えば、ソース部２１及び２２からの）１つ以上の他のデータストリームの特定の位置までの処理が完了した場合に限って、スタートすることである。これはコンテンツに関する同期化と呼ぶこともできる。外部事象との同期化も可能である。例えば、割り込み信号のような外部信号が存在する場合に限って、データストリーム又はその処理がスタートする。
【００５８】
検討した実施形態により、様々な効果を実現することができる。これらの可能な効果の幾つかを以下で検討するが、実施形態によっては、これらの効果の幾つかだけしか実現できない場合もあり得る。
−  相互作用及び外部規定の双方によって、データストリームが受ける影響を異なるものにもできる。特に、この目的では、データストリーム中で上記検討のコマンドを使用することが可能である。
−  内部又は外部条件に基づき、データストリームの相互低遅延同期化を実現することもでき、低遅延は、特に、大きなバッファが不要であるという事実により実現することもできる。
−  特に、ランタイムに関しても、データストリームの数を可変とすることもでき、同期を維持することもできる。一例を挙げれば、データが利用不能なチャンネル出力データストリーム中では、（例えば、出力データストリーム６６の場合のように明示される）何らかのデータを伝送することは全く不可能であり、データが利用可能になると同時に、正しく同期化することができる。
−  上記のように、データストリームの数は変えることもできる。これは、特に、設定可能な数のデータシンク（出力データストリーム）への設定可能な数の入力データストリームの設定可能な分散を意味することもできる。
−  この場合、データ分散及びデータ処理は、動的かつ低遅延で、システム内の様々な事象及び外部事象に対して反応することもできる。
−  特に図５及び６を参照して説明したように、非同期データストリーム出力は同期データ出力と同時に実施することもでき、これにより、同期データ出力に時間的影響を与えずに、非同期データの待ち時間が最短になる。
−  実施形態では、例えば、データ自体が出力データストリームへの割当てに必要な情報を含んでいることから、例えば、ソフトウェアによるデータストリーム及びその依存関係の事前計算は不要である。
−  提示された技術は、例えば、ＦＰＧＡのようなハードウェア内にうまく実装することもできる。結果として、リアルタイム・クリティカルソフトウェア実装を避けることもできる。
【００５９】
検討した実施形態は単なる例示のためのものであり、限定的であると解釈すべきではない。
【図１】
0006577584.tif 000002
【図２】
0006577584.tif 000003
【図３】
0006577584.tif 000004
【図４】
0006577584.tif 000005
【図５】
0006577584.tif 000006
【図６】
0006577584.tif 000007