(57)【要約】ストリーミングアーキテクチャを用いて波形データを処理するオシロスコープ装置及び方法。装置は、処理中に波形データが格納される共通キャッシュメモリを共有する複数の処理オブジェクト（プロセッサ）を有する。それぞれの処理オブジェクトは、メモリから波形の“チャンク”すなわち一部分を検索し、データチャンクを処理して、処理されたデータをキャッシュメモリの同じ位置に再格納することにより逐次処理操作を実行する。このプロセスは一般に、全波形が逐次処理されてしまうまで繰り返される。装置は、処理されるべき次の“チャンク”を最終プロセッサが直前のプロセッサにリクエストする、“プル”設計を用いて動作する。このようにすれば、波形データは基本的に、処理オブジェクトの連鎖を通して波形データを引っ張る（プルする）ことにより処理される。複数の処理オブジェクトは、処理スレッド内の一連のソフトウエア処理オブジェクトとして、あるいは個別のハードウエアプロセッサとして、実施することができる。【特許請求の範囲】
【請求項１】
ストリーミングアーキテクチャを用いて波形データを処理するためのオシロスコープ装置において：
前記波形データを供給するための波形源；及び
前記波形データを複数の一部分を逐次処理するための複数の処理オブジェクト；
を備え、前記複数の処理オブジェクトは、少なくとも：
処理中に前記波形データの複数の一部分を格納するための、前記複数の処理オブジェクトのそれぞれによるアクセスが可能な処理メモリ；
第２の処理オブジェクトによるリクエストに応じて前記波形源から前記波形データの一部分を検索し、前記波形データの前記一部分を処理して、前記処理された一部分を前記リクエストされた一部分に対応するように指定されたメモリ位置に格納するための第１の処理オブジェクト；及び
出力手段によるリクエストに応じて、前記波形データの前記一部分を前記第１の処理オブジェクトにリクエストし、前記第１の処理オブジェクトにより処理された前記一部分を前記メモリ部分から検索して、前記処理された一部分をさらに処理し、前記さらに処理された一部分を前記メモリ位置に格納し直す前記第２の処理オブジェクト；
を含み：
前記第２の処理オブジェクトに前記波形データの前記一部分をリクエストし、前記メモリ位置から前記第２の処理オブジェクトにより処理された前記一部分を検索する前記出力手段；
も備えることを特徴とするオシロスコープ装置。
【請求項２】
前記出力手段が、前記波形データの全てがリクエストされて処理されてしまうまで、前記波形データの前記第２の処理オブジェクトにより処理された一部分を前記メモリ位置から検索した後ごとに、前記波形データの別の一部分をさらに前記第２の処理オブジェクトにリクエストすることを特徴とする請求項１記載のオシロスコープ装置。
【請求項３】
前記出力手段が、前記波形データの順次にリクエストされた複数の一部分を対応するメモリ位置を用いて前記複数の処理オブジェクトが同時に処理するように、前記波形データの前記第２の処理オブジェクトにより処理された一部分を前記メモリ位置から検索した後ごとに、前記波形データの別の一部分をさらに前記第２の処理オブジェクトにリクエストすることを特徴とする請求項１記載のオシロスコープ装置。
【請求項４】
請求項１記載のオシロスコープ装置において：
前記複数の処理オブジェクトが、前記出力手段によるリクエストに応じて、前記波形データの前記一部分を前記第２の処理オブジェクトにリクエストし、前記第２の処理オブジェクトにより処理された前記一部分を前記リクエストされた一部分に対応する前記メモリ位置から検索して、前記処理された一部分をさらに処理し、前記さらに処理された一部分を前記メモリ位置に格納し直すための第３の処理オブジェクト；
をさらに含み：
前記出力手段は、前記第３の処理オブジェクトにより処理された前記一部分を前記リクエストされた一部分に対応する前記メモリ位置から検索する；
ことを特徴とするオシロスコープ装置。
【請求項５】
前記処理メモリがキャッシュメモリであることを特徴とする請求項１記載のオシロスコープ装置。
【請求項６】
前記波形源が前記波形データを格納するためのメモリを有することを特徴とする請求項１記載のオシロスコープ装置。
【請求項７】
前記波形源に前記波形データを要求して取得するためのアクイジション手段をさらに備えることを特徴とする請求項１記載にオシロスコープ装置。
【請求項８】
前記複数の処理オブジェクトにより実行される処理を定めるためのユーザインターフェースをさらに備えることを特徴とする請求項１記載のオシロスコープ装置。
【請求項９】
前記出力手段が前記処理された波形を表示するためのディスプレイであることを特徴とする請求項１記載のオシロスコープ装置。
【請求項１０】
前記波形データの前記処理を、前記波形データの複数の一部分間で中断させ得ることを特徴とする請求項１記載のオシロスコープ装置。
【請求項１１】
ストリーミングアーキテクチャを用いて波形データを処理するためのオシロスコープ装置において：
前記波形データを供給するための波形源；
処理中に前記波形データの複数の一部分を格納するための処理メモリ；
前記波形データの複数の一部分を逐次処理するための複数の逐次処理オブジェクト；前記複数の逐次処理オブジェクトの第１の逐次処理オブジェクトは、前記複数の逐次処理オブジェクトの内の次の逐次処理オブジェクトによるリクエストに応じて前記波形データの一部分を前記波形源にリクエストし、検索し、処理して、前記処理された一部分を前記処理された一部分に対応するように指定された前記処理メモリのメモリ位置に格納する；前記第１の逐次処理オブジェクト及び前記複数の逐次処理オブジェクトの最終逐次処理オブジェクト以外の前記複数の逐次処理オブジェクトのそれぞれは、前記複数の逐次処理オブジェクトの前記それぞれの次の逐次処理オブジェクトによるリクエストに応じて前記波形データの前記一部分を前記複数の逐次処理オブジェクトの前記それぞれの直前の逐次処理オブジェクトにリクエストし、検索し、処理して、前記処理された一部分を前記メモリ位置に格納し直す；前記最終逐次処理オブジェクトは、出力手段によるリクエストに応じて前記波形データの前記一部分を前記最終逐次処理オブジェクトの直前の逐次処理オブジェクトにリクエストし、検索し、処理して、前記処理された一部分を前記メモリ位置に格納し直す；及び
前記波形データの前記一部分を前記最終逐次処理オブジェクトにリクエストし、前記最終逐次処理オブジェクトにより処理された前記一部分を前記メモリ位置から検索する前記出力手段；
を備えることを特徴とするオシロスコープ装置。
【請求項１２】
ストリーミングアーキテクチャを用いる波形データの処理方法において、前記方法が：
ａ） 処理のために前記波形データの一部分をリクエストするステップ；
ｂ） 複数の逐次処理オブジェクトの第１の逐次処理オブジェクトを用いて前記波形データの前記一部分を検索するステップ；
ｃ） 処理された一部分を得るために前記波形データの前記検索された一部分を前記第１の逐次処理オブジェクトにより処理するステップ；
ｄ） 前記処理された一部分を前記検索された一部分に対応するように指定されたメモリ位置に格納するステップ；
ｅ） 前記複数の逐次処理オブジェクトの内の次の逐次処理オブジェクトを用いて前記メモリ位置から前記処理された一部分を検索するステップ；
ｆ） 前記次の逐次処理オブジェクトを用いて前記処理された一部分をさらに処理するステップ；
ｇ） 前記さらに処理された一部分を前記検索された一部分に対応する前記メモリ位置に格納し直すステップ；
ｈ） 前記複数の逐次処理オブジェクトのそれぞれについて前記ステップｅ）から前記ステップｇ）を繰り返すステップ；
ｉ） 前記波形データの前記さらに処理された一部分を前記検索された一部分に対応する前記指定されたメモリ位置から検索するステップ；及び
ｊ） 前記波形データの全てが処理されるまで、前記波形データの相異なる一部分ごとに前記ステップａ）から前記ステップｉ）を繰り返すステップ；
を含むことを特徴とする方法。
【請求項１３】
前記処理ステップｃ）及びｆ）が、前記波形データの相異なる一部分に対して、前記相異なる一部分のそれぞれに対応するように指定されたメモリ位置を用いて同時に実行されることを特徴とする請求項１２記載の方法。
【請求項１４】
前記メモリ位置が前記複数の逐次処理オブジェクトにより共有されるキャッシュメモリに属することを特徴とする請求項１２記載の方法。
【請求項１５】
前記波形データを取得するステップをさらに含むことを特徴とする請求項１２記載の方法。
【請求項１６】
前記複数逐次処理オブジェクトにより実行される処理のプログラミングを行うステップをさらに含むことを特徴とする請求項１２記載の方法。
【請求項１７】
前記処理された波形を表示するステップをさらに含むことを特徴とする請求項１２記載の方法。
【請求項１８】
前記方法を前記波形データの前記複数の一部分の間で中断させ得ることを特徴とする請求項１２記載の方法。
【発明の詳細な説明】
【０００１】
本出願は、２０００年１１月１７日に出願された米国仮特許出願６０／２４９，４８２号の恩典を特許請求する。上記出願の全内容は本明細書に参照として含まれる。
【０００２】
発明の背景
本発明は全般的に、ストリーミングアーキテクチャを用いるオシロスコープにより取得された波形データを処理するための方法及び装置に関する。
【０００３】
ストレージオシロスコープにより得られたデータに複雑な処理を施すことが望ましい場合が多い。一般に、このデータはオシロスコープのアクイジションシステムで取得された波形の形態にある。波形に多重操作を施し、よって別の‘処理された’波形または数組のパラメータ値をつくりだすことに向けられる、科学及び工業上の多くのアプリケーションがある。伝統的に、そのような多重操作処理は単一プロセッサを用いて波形全体を繰返し処理することにより行われる。
【０００４】
しかし、この手法にはいくつかの欠点がある。第１に、単一プロセッサの繰返し使用は、それぞれの操作が逐次的に行われなければならず、したがって処理速度が制限されることを意味する。先に取得した波形の処理が完了するまでオシロスコープは次の波形を取得できないことが多いから、速度は重要である。さらに、先に取得した波形の処理が完了するまでは、データをさらに取得する必要があることがオペレーターにはわからないかもしれない。第２に、一般に波形全体がそれぞれの操作で処理され、よって中間結果が生じる。この中間結果のサイズは元の波形と同じであり、したがって同じメモリ容量が必要となることが多い。第３に、波形または中間結果が処理される毎にメモリ検索／格納操作が必要である。そのようなメモリアクセスの繰返しには時間がかかり、処理速度をさらに制限する。さらに、サイズの大きい波形及びそれに対応するサイズの大きい中間結果は、プロセッサのオンチップ容量をこえるメモリ領域を必要とすることが多い。
【０００５】
したがって、サイズの大きい波形に多重処理操作を、比較的高速で、施す能力が必要とされている。好ましくは、この課題に対する解決策は費用効果が高く、また容易に実施可能であるべきである。
【０００６】
発明の概要
本発明にしたがう、マルチプロセッサ、単一プロセッサ上のマルチ処理オブジェクト（すなわち仮想プロセッサ）、単一及び複数の処理スレッド、並びに共用メモリキャッシュの使用をサポートするオペレーティングシステムにおける最近の進歩が、デジタルオシロスコープでのストリーミングアーキテクチャの実用的実施を今では可能にしている。さらに、そのような手法の実用性は、関連する、ストリーミングビデオデータの処理における発展により証明されている。
【０００７】
したがって、本発明の目的は、オシロスコープにより取得されたデータをストリーミングアーキテクチャを用いて処理するための方法及び装置を提供することにある。
【０００８】
本発明のその他の目的及び利点はある程度明らかであろうし、またある程度は本明細書及び図面から明らかになるであろう。
【０００９】
本発明の好ましい実施形態は、ストリーミングアーキテクチャを用いて波形データを処理するためのオシロスコープ装置を提供する。オシロスコープ装置は、波形データを供給するための波形源、波形データを一部分ずつ逐次処理するための複数の処理オブジェクト、及び波形データを一部分ずつ複数の処理オブジェクトにリクエストするための出力手段を備える。処理オブジェクトは、処理中に波形を一部分ずつ格納するための、複数の処理オブジェクトのそれぞれによるアクセスが可能な、処理メモリを備える。第１の処理オブジェクトは第２の処理オブジェクによるリクエストに応じて波形源から波形データの一部分を検索し、波形データの前記一部分を処理して、処理された一部分をリクエストされた一部分に対応するように指定されたメモリ位置に格納する。第２の処理オブジェクトは出力手段によるリクエストに応じて波形データの前記一部分を第１の処理オブジェクトにリクエストし、第１の処理オブジェクトにより処理された一部分を前記メモリ位置から検索して、前記処理された一部分をさらに処理し、処理された一部分をリクエストされた一部分に対応するメモリ位置に格納し直す。出力手段は次いで、第２の処理オブジェクトにより処理された一部分をリクエストされた一部分に対応するメモリ位置から検索する。
【００１０】
この好ましい実施形態において、処理メモリはキャッシュメモリとすることができる。波形源は一般に、波形データを格納するための独立メモリを有する。出力手段は通常、処理された波形を表示するためのディスプレイであり、処理された波形データを格納するためのメモリを備えることができる。
【００１１】
本発明の別の態様は、全波形データがリクエストされて処理されるまで、出力手段が、メモリ位置から波形データの前記処理された一部分を検索した後ごとに、波形データの別の一部分をさらに第２のプロセッサにリクエストできる態様である。
【００１２】
本発明の別の態様は、複数の処理オブジェクトが同時に、リクエストされた波形データの一部分ずつを対応するメモリ位置を用いて逐次処理するように、出力手段が、波形データの処理された一部分を検索した後ごとに、波形データの別の一部分をさらに第２の処理オブジェクトにリクエストできる態様である。
【００１３】
本発明の別の態様は、複数の処理オブジェクトが、出力手段によるリクエストに応じて、波形データの前記一部分を第２の処理オブジェクトにリクエストし、第２の処理オブジェクトにより処理された一部分をリクエストされた一部分に対応するメモリ位置から検索するための第３の処理オブジェクトをさらに含む態様である。第３の処理オブジェクトは前記処理された一部分をさらに処理し、このさらに処理された部分を前記メモリ位置に格納し直す。出力手段は第３の処理オブジェクトにより処理された一部分をリクエストされた一部分に対応するメモリ位置から検索する。
【００１４】
本発明の別の態様は、複数の処理オブジェクトがさらに、複数の逐次処理オブジェクトからなる態様である。複数の逐次処理オブジェクトの第１の逐次処理オブジェクトは波形データの前記一部分を第２の逐次処理オブジェクトにリクエストする。第１の逐次処理オブジェクト以外の複数の逐次処理オブジェクトのそれぞれは、波形データの前記一部分を複数の逐次処理オブジェクトの内の直前の逐次処理オブジェクトにリクエストする。複数の逐次処理オブジェクトの最後の逐次処理オブジェクトは、出力手段によるリクエストに応じてメモリ位置から処理された一部分を検索する。複数の逐次処理オブジェクトの最終逐次処理オブジェクト以外の複数の逐次処理オブジェクトのそれぞれは、複数の逐次処理オブジェクトの前記それぞれの、次の逐次処理オブジェクトによるリクエストに応じて前記メモリ位置から前記処理された一部分を検索する。複数の逐次処理オブジェクトのそれぞれは、前記処理された一部分をさらに処理し、このさらに処理された一部分を前記メモリ位置に格納し直す。出力手段は複数の逐次処理オブジェクトの最終逐次処理オブジェクトにより処理された一部分を前記メモリ位置から検索する。
【００１５】
本発明の別の態様は、オシロスコープ装置が波形源から波形データを取得するためのアクイジション手段をさらに備える態様である。
【００１６】
本発明の別の態様は、オシロスコープ装置が複数の処理オブジェクトにより実行される処理のプログラミングのためのユーザインターフェースをさらに備える態様である。
【００１７】
本発明の別の態様は、オシロスコープ装置が波形データの前記一部分ごとの処理間で中断され得る態様である。
【００１８】
本発明の第２の実施形態は、ストリーミングアーキテクチャを用いて波形データを処理する方法を提供する。本方法は初め、処理のために波形データの一部分をリクエストする。波形データのリクエストされた一部分は、複数の逐次処理オブジェクトの第１の逐次処理オブジェクトを用いて検索される。波形データの検索された一部分は、検索された一部分に対応するように指定されたメモリ位置に格納される、処理された一部分を得るために第１の逐次処理オブジェクトで処理される。処理された一部分は次いで、複数の逐次処理オブジェクトの内の次の逐次処理オブジェクトを用いて前記メモリ位置から検索される。前記処理された一部分は次いで、前記次の逐次処理オブジェクトによりさらに処理されて、前記検索された一部分に対応するメモリ位置に格納し直される。この検索及び処理ステップが、複数の逐次処理オブジェクトのそれぞれについて繰り返される。波形データの処理された一部分は検索された一部分に対応するメモリ位置から検索される。上記ステップのそれぞれが、全波形データが処理されるまで、波形データの相異なる一部分ごとに繰り返される。
【００１９】
第２の実施形態において、メモリ位置は、複数の逐次処理オブジェクトにより共有されるキャッシュメモリに属することができる。さらに、前記処理ステップは、波形データの相異なる一部分ごとに、一部分のそれぞれに対応するメモリ位置を用いて同時に実行することができる。
【００２０】
本発明の別の態様は、前記方法が波形データを取得するステップをさらに含む態様である。
【００２１】
本発明の別の態様は、前記方法が複数の逐次処理オブジェクトにより実行される処理をプログラミングするステップをさらに含む態様である。
【００２２】
本発明の別の態様は、前記方法が処理された波形を表示するステップをさらに含む態様である。
【００２３】
本発明の別の態様は、前記方法が波形データの一部分ごとの処理間に中断され得る態様である。
【００２４】
好ましい実施形態の詳細な説明
本発明のより完全な理解のため、以下の説明及び添付図面が参照される。
【００２５】
本発明にしたがう装置及び方法の好ましい実施形態を添付図面を参照して説明する。
【００２６】
図１の図２との比較により、関連技術の（古典的な）オシロスコープ（図１）とストリーミングアーキテクチャオシロスコープ（図２）との間の違いが示される。図１は関連技術のオシロスコープにおける機能接続を示す系統図である。図１に示されるようなオシロスコープは一般に、オシロスコープにより実行される操作を制御するために様々な制御変数１１０を入力／設定するためのユーザインターフェース１００を有する。アクイジション制御／読出１４０の設定にしたがって波形データを取得するために、アクイジションハードウエア１３０が用いられる。波形データは結果メモリ１５０に格納される。この波形データはインポート／エクスポート手段１６０を介して、ハードディスクのような外部システム１７０に転送／格納されることが多い。それぞれの処理操作は、制御変数１１０の制御の下で処理オブジェクト（以降プロセッサとも称される）１２０により実行される。それぞれの処理ステップの実行において、処理オブジェクトは結果メモリ１５０に格納された全波形データにアクセスし、次いでいかなる中間結果も含む、処理された結果を結果メモリ１５０に戻して再格納する。すなわち、処理オブジェクト１２０は結果メモリ１５０に繰返しアクセスしなければならない。処理が完了すると、グラフィック／レンダリングユニット１８０が処理された波形データを結果メモリ１５０から入手し、これをディスプレイモニタ１９０上に表示する。
【００２７】
一方、図２は本発明にしたがうストリーミングアーキテクチャオシロスコープにおける機能接続の系統図である。図２に示されるアーキテクチャは図１のものと同様の機能コンポーネントを含むが、焦点の中心は結果メモリ１５０から処理オブジェクト２２０に移される。処理オブジェクト２２０は、直列（順次）または並列接続された複数のハードウエアプロセッサ、あるいはオペレーションソフトウエアにより指定される（スレッド内の）マルチ仮想処理オブジェクトとして実施され得ることに注意されたい。図２のストリーミングアーキテクチャにおいて、波形データはアクイジション制御／読出２４０から処理オブジェクト２２０に直接転送される。処理中は、波形データ及びいかなる中間結果も、少なくとも役に立つ程度まで、処理オブジェクト２２０内にあるキャッシュメモリ内に保持される。波形データが大きすぎてキャッシュメモリ内に完全に収まらなければデータは結果メモリ２５０に格納され、実際に即して、一部分（すなわちチャンク）ごとにキャッシュにロードされて、処理される。結果メモリ２５０へのアクセス回数の減少により、本手法は（図１に示されるような）関連技術オシロスコープに用いられる手法より効率が相当に高くなる。
【００２８】
複数の処理オブジェクトを用いることができので、はるかに高い処理フレキシビリティが得られる。複数の処理オブジェクトは、処理機能を連鎖的に実行するように相互接続することができる。複雑な処理を実行するためのそのような処理オブジェクト連鎖接続は、ルクロイ社（ＬｅＣｒｏｙ Ｃｏｒｐｏｒａｔｉｏｎ）によるモデル７２００高精度デジタルオシロスコープを嚆矢とする。
【００２９】
初期には、複数の処理オブジェクトを用いる実施形態は、全波形について操作を施し、よって全波形結果をつくりだすために、それぞれのプロセッサを用いた。図３は、３段非ストリーミング処理オブジェクトを有する関連技術の（古典的な）オシロスコープについての例示的実施形態を示す。初めに、プロセッサ１（３１０）が“入力”波形結果３００（通常はデジタル化された原始データ）をメモリ（図示せず）から検索して処理し、メモリに格納し直される、処理された全波形結果３２０をつくる。プロセッサ１の処理終了後、プロセッサ２（３３０）が第２の波形結果３２０を検索して処理し、よって、やはりメモリに格納し直される、第３の波形結果３４０をつくる。最後に、プロセッサ３（３５０）が波形結果３４０を検索して処理し、別の全波形結果３６０を連鎖処理オブジェクトの総合出力としてつくる。本プロセスの２つの重要な態様は：１） それぞれの処理オブジェクトが処理を完了してから、連鎖内の次の処理オブジェクトが処理を開始すること；及び２） 全波形がそれぞれのステップで処理され、これによりホストコンピュータのリソース（メモリ）を消費する中間の（他には用いられない）波形がいくつか生じることである。
【００３０】
デジタルオシロスコープ及びデジタイザのサンプリング／格納速度がより速くなり、注目する信号／波形がより複雑になってきている（例えば遠距離通信信号）ため、収集されるデータ量もそれに応じて増加してきている。このデータ増大のため、上記の波形に解析または処理を行う機器には２つの問題が生じる。第１は、結果を格納するためにはるかに多くのコンピュータメモリが必要となることである。この問題は、複数の中間波形結果を生じる、所望の処理の複雑さの増大のため一層悪化する。第２の問題は、この増大したデータによりデータを処理するに必要な時間が対応して長くなることである。下表：
【表１】
2004514147.tif 000002
はルクロイ・オシロスコープに関する１９８０年代中期以降の上記状況の展開を示す。表に示されるように、デジタルオシロスコープで収集できるデータ量は最近の１５年で１０００倍に増大している。この傾向が続くと信じるべき理由がある。したがって、波形プロセッサのメモリリソースを用いていかに効率よくデータを処理するかが重大な課題であることは明らかである。この課題へのどのような解決策も、どれだけ多くのデータについて、どれだけ早くユーザが処理結果を得ることができるかに強く影響する。さらに、処理の総合的な複雑性がホストコンピュータのリソース限界により制限される。
【００３１】
上述した増大するデータ／処理問題に対して二重の観点がある。データを、時間に関して効率よく処理すること及び利用できるメモリリソースに関して効率よく処理することである。本発明の重要な態様は、最近のコンピュータアーキテクチャの性質並びにメモリキャッシュ及びメモリ管理の主題の理解に基づく。
【００３２】
最近の（発明者等が関心をもつ処理を実行する）コンピュータ装置は、多重レベルのメモリキャッシュを有する。キャッシュされているデータへのアクセス速度（すなわち時間効率）は通常第１レベル（または１次）キャッシュと呼ばれるキャッシュで最も高い。１次キャッシュから３２ビットワードの情報を入手するための時間は、プロセッサの（現在は１ナノ秒程度であり得る）１クロックサイクルもの短さであることが多い。第２レベル（または２次）キャッシュはアクセス時間が若干長く、２または３クロックサイクルの速さであることが多い。このようなアクセス時間は、与えられたアーキテクチャに対するメモリ及びバス速度により制限される、非キャッシュメモリへのアクセスに比較して非常に有利である。すなわち、非キャッシュメモリへのアクセス時間は、１次キャッシュへのアクセスより１０倍（またはこれより）長いことが多い。
【００３３】
常用メモリからキャッシュメモリにデータをロードしなければならないことには不利になる場合があることに注意されたい。“キャッシュミス”イベント（キャッシュされていないアドレスへのメモリアクセス）がおこると、データブロックが“キャッシュライン”にロードされる。今日のアーキテクチャの多くでは、このブロックのサイズが３２バイトより小さいことはほとんどない。このため処理時間がかなり長くなる。メモリアクセスを必要とする、そのようなキャッシュミスイベントの数は、処理操作をローカルデータブロック（すなわちクローズアドレス位置に格納されたデータ）に限定することにより、最小限に抑えることができる。このようにすれば、キャッシュへのローディングに関する不利は最小限に抑えることができ、キャッシュメモリからの処理により得られる速度上の優位性を完全に享受することができる。
【００３４】
しかし、利用できるキャッシュメモリの大きさは通常（１次及び２次とも）限られている。したがって、図３に表わされる連鎖プロセッサアーキテクチャの重大な帰結の１つは、処理毎に全波形がつくられることである。そのような場合は、キャッシュされ得るアドレス空間より大きなアドレス空間が処理結果に必要となるであろうし、したがって全てのキャッシュが（一杯になり）“フラッシュ”される。本発明にしたがって説明されるように、中間結果として全波形をつくらず、部分的中間結果を格納するために同じ（限定されているかまたは小さな）メモリ空間を“再使用”することにより、メモリアクセス効率（速度）に極めて大きな利益が得られる。別の利点として、大量のメモリ（主システムリソース）が浪費されることがない。
【００３５】
さらに、埋込（すなわちデータ隠し）ソフトウエア設計手法の使用により、ストリーミングアーキテクチャが、少なくともある程度、可能になる。従来のオシロスコープ処理設計においては、どの処理オブジェクトのデータにもアクセスしたいいずれかのまたは全てのクライアントソフトウエアオブジェクトによる使用のため、全データバッファが公開利用可能にされている。全クライアントソフトウエアオブジェクトが上記バッファの位置及び大きさを知っているため、次の処理のいずれかが実行可能になる前に、正しい大きさ及び全データ値でバッファが完全に更新されなければならない。言い換えれば、上記従来設計においてはデータが埋め込まれない（隠されない）。
【００３６】
（以降で論じられる）本発明のストリーミングアーキテクチャ設計においては、公開利用可能な処理データバッファはない。代わりに、クライアントソフトウエアオブジェクトがクエリー操作でしかデータにアクセスできないように、全データが埋め込まれる（隠される）。次いで、特定のプロセッサがリクエストされたデータを、クエリー操作の一部として同じく指定された、クライアントバッファ（すなわちキャッシュメモリ）にコピーすることによりクエリーに応答する。ストリーミングプロセッサに関しては、クエリーは一般に、ストリーミングプロセッサの入力に取り付けられたプロセッサを照会し、クライアントに返す前にリクエストされたデータに何らかの演算を施すことにより実施される。他のタイプの（非ストリーミング）プロセッサはデータバッファを保持しなければならないであろうが、そのような場合でさえデータは埋め込まれ、よって、別の最適化手法が利用されることになろう。要約すれば、埋込の使用により、様々なタイプのプロセッサに適切な様々なデータ管理ストラテジーが実施可能になる。上記のデータ埋込がなければ、上記レベルのフレキシビリティーを得ることはできない。
【００３７】
次に図４を参照すれば、ストリーミングアーキテクチャの本質が説明される。イベントシーケンスは出力から入力に向かう。これは、先に説明した古典的連鎖処理アーキテクチャにおけるような“プッシュ”システムに対比して、“プル”システムと称されることがある。初めに処理オブジェクト３（４３０）が、出力波形結果（４４０）をつくる目的で処理オブジェクト２（４２０）にデータの“チャンク”をリクエストする。処理オブジェクト３はデータ処理のためのキャッシュメモリを提供することに注意されたい。処理オブジェクト２はまだデータをもっていないので、続いて処理オブジェクト１（４１０）にデータをリクエストする。次いで処理オブジェクト２は、プロセッサ１から受け取ったデータを処理し、その結果を処理オブジェクト３に渡すことができる。さらに、処理オブジェクト２は処理オブジェクト３と同じキャッシュメモリバッファを使用する。処理オブジェクト１もまだデータをもっていないので、処理オブジェクト３から提供されるキャッシュバッファを満たすに十分なデータを入力波形結果（４００）にリクエストする。処理オブジェクト３による原リクエストにおけるデータ量は可変であるが、一般には（ホストコンピュータのキャッシュライン限界に合うように）３２ないし６４個のデータサンプルである。
【００３８】
処理オブジェクト１は上記のリクエストされたデータサンプルの“チャンク”にその場での処理を施し、同じキャッシュバッファに大きさが等しいチャンクをつくる。バッファへのメモリアクセスの全てが“キャッシュヒット”し、よってアクセスが非常に速い。次いで処理オブジェクト２は、リクエストしたデータ（すなわちプロセッサ１により処理されたデータ）を受け取り、そのデータに、やはりその場での処理を同じくキャッシュヒットの恩恵を受けて施し、よって、処理オブジェクト３にリクエストされたデータをつくる。処理オブジェクト３は今や、最初に処理オブジェクト３がリクエストした処理済データを、処理オブジェクト３が提供したバッファに有する。処理オブジェクト３はデータに処理を施し、よって、最終波形結果（４４０）としての出力される結果をつくる。このシーケンスが、全波形データが処理されるまで、波形データの“チャンク”について繰り返される。
【００３９】
ある種の処理は１対１の結果（入力サンプル対出力サンプル）をつくらないことに注意されたい。これに対しては、若干異なるが、基本的には同じストラテジーによる手法がとられる。このような場合に、データは、ほとんどの部分については、ホストコンピュータの１次キャッシュに残る小部分で処理される。他に、信号平均化及び“ルーフアンドフロア”処理のような、ストリーミング化できない種類の処理がある。これらの処理では、全波形を一度に処理する必要がある。しかし、他に多くの処理要素があり、上記の処理でもストリーミングアーキテクチャから恩恵を受けることができる。キャッシュメモリを最大限に使用し、上述した態様で結果を提供することにより、通常のメモリリソースは最小限にしか使用せずに、設計は総合的に高レベルの効率を達成する。
【００４０】
データをチャンクで処理することによる別の利点は、波形の途中で処理を打ち切るか、一時中止するかまたは開始できることである。このことは、システムを中断できるようになる前に、全波形が処理されるまで待たなければならない従来技術のシステムに優る重要な利点である。この利点は、完了に数１０秒あるいは数分さえもかかり得る複雑なアルゴリズムを用いて大きな波形が処理される場合に特に明らかである。
【００４１】
上記の、システムを通してデータが押される（プッシュされる）のではなく引っ張られる（プルされる）“プル”手法は、処理オブジェクトはそれぞれがリクエストしたデータを待つだけであることを意味する。プッシュ手法にともなう問題は、プロセッサがデータの到着をループ内で待ちながら長時間アイドル状態になっていることである。プル手法は、プロセッサが送ったデータリクエストへの応答を待つだけであるから、この問題を大きく緩和する。
【００４２】
図５は、図４に示されるような本発明にしたがう３段処理オブジェクトによる波形処理ステップを示す。ステップ１は、出力波形結果（５４０）が、データの“チャンク”をそのソースである処理オブジェクト３（５３０）にリクエストすることである。ステップ２において、処理オブジェクト３は、出力波形結果からのリクエストを満たすに十分なデータを、そのソースである処理オブジェクト２（５２０）にリクエストする。処理オブジェクト２は次いで、処理オブジェクト３からのリクエストを満たすに十分なデータをそのソースである処理オブジェクト１（５１０）にリクエストする（ステップ３）。続いて、処理オブジェクト１は、処理オブジェクト２からのリクエストを満たすに十分なデータをそのソースである入力波形結果（５００）にリクエストする（ステップ４）。波形源はリクエストされたデータの“チャンク”を処理オブジェクト１に供給する（ステップ５）。処理オブジェクト１はデータのチャンクを（一般にキャッシュ内で）処理し、これを処理オブジェクト２に供給する（ステップ６）。処理オブジェクト２はデータのチャンクを（一般にキャッシュ内で）処理し、これを処理オブジェクト３に供給する（ステップ７）。処理オブジェクト３はデータのチャンクを（一般にキャッシュ内で）処理し、これを出力波形シンクに供給する（ステップ８）。出力波形結果は次いでデータの別の“チャンク”をそのソースである処理オブジェクト３にリクエストする（ステップ９）。全波形データが処理されるまで、このプロセスが繰り返される（ステップ９〜１６）。
【００４３】
図６は、ストリーミング手法と非ストリーミング手法の比較のための波形処理例を示すブロック図である。図６は、出力波形ｅｘｐ（ｄＣ１／ｄｔ）をつくるために波形Ｃ１を取得して処理する複雑な多重ステッププロセスを示す。図３で説明したような、関連技術の非ストリーミングシステムでは、波形Ｃ１（６００）を取得するためにアクイジションインターフェース（６１０）が用いられる。次に、時間の関数としてのＣ１の導関数ｄＣ１／ｄｔをとることにより波形が処理される（６２０）。この中間導関数結果は次いで、“指数関数波形データ”をつくるために指数関数で処理される（６３０）。次いで、処理された結果がレンダリング（表示）される（６４０）。
【００４４】
対照的に、本発明のストリーミングアーキテクチャは、レンダリング機能（６４０）が波形の一部分をリクエストすることにより開始される。指数関数インターフェース（６３０）がリクエストを受け取り、導関数インターフェース（６２０）からのデータが必要であることを決定する。続いて、導関数インターフェースがデータをアクイジションインターフェース（６１０）にリクエストする。アクイジションインターフェースは次いで、波形源（６００）からＣ１についてのデータを取得する。取得されたデータは導関数インターフェースに送られて処理される。処理されたデータは指数関数インターフェースに送られて、処理され、次いでレンダリング機能に送られる。一般に、レンダリング機能はデータをバッファに格納し、波形の次の一部分をリクエストする。波形Ｃ１の全てが処理されると、処理されたデータが表示される。
【００４５】
ストリーミングアーキテクチャ手法にはより多くのステップがあるかのように見えるが、キャッシュメモリに適合するチャンクで波形を処理することにより、この手法は非ストリーミング手法に比較して効率を１０倍よりも高くし得る。さらに、中間結果が常用メモリに格納される必要がないから、メモリ要件がかなり軽減される。
【００４６】
上で説明した図では処理オブジェクトが明示的な素子として示されているが、本発明はこれに限定されない。代わりに、処理オブジェクトは、単一プロセッサのマルチタスク処理によりつくられる、単一スレッド内の仮想プロセッサとすることができる。例として、図３及び４に示される３つの処理オブジェクトは、単一プロセッサを用いて実行される３つの相異なる処理操作に対応させることができる。
【００４７】
さらに、処理操作は逐次または同時に実行することができる。これは、データを処理するために複数の処理スレッドを構成することにより行うことができる。このようにすれば、波形データの様々な部分を、それぞれの部分に対応するように指定されたキャッシュメモリ位置を用いて同時に処理することができる。
【００４８】
本明細書に説明されるような、本発明のストリーミングアーキテクチャの機能性は、２０００年１１月１７日に出願された米国仮特許出願第６０／２４９，４８２号に説明される処理ウエッブに適用できる。上記出願の内容は本明細書に参照として含まれる。処理ウエッブは、完全に“モジュール化”され、よってオシロスコープを構成する要素が、インターフェースに関して完全に指定され、実行時に（例えば、オシロスコープアプリケーションソフトウエアと見なし得るプロセスを停止させずに）上記要素のインストール及び取外しを行うことができる構成に十分な独立性を有する、オシロスコープ設計を提供する。基本的に、与えられた“処理ウエッブ”に許される複雑性には限界はない。
【００４９】
処理ウエッブは、一緒に連鎖させることができ、複数の入力を利用して複数の出力をつくることができる、複数の処理オブジェクトの使用をサポートする。プロセッサは、１つより多い別のプロセッサのためのデータをつくるために用いることができる。それぞれの処理オブジェクトは（様々な入力要件にしたがう）ある入力を受け取り、特定のタイプの出力（例えばパラメータ、パーシステンスマップまたは波形）を生成する。これらの処理オブジェクトは、情報を得るかまたは生成するための特定の更新または同期化特性も有し、同じではあるが、数が可変でタイプが様々な入力、出力及び更新ピンにしたがって指定される、汎用プロセッサモデルを用いて表わすことができる。
【００５０】
すなわち、本発明のストリーミングアーキテクチャ手法は、連鎖プロセッサを用いて複雑な多重ステップ処理操作を実行できる処理ウエッブの、複数の処理オブジェクトを用いて実施できる。処理ウエッブシステムで実施できる処理オブジェクトの複雑性または構成には事実上制限がない。
【００５１】
本発明の好ましい実施形態を特定の用語を用いて説明したが、そのような記述は説明のためだけにすぎず、特許請求項の精神及び範囲を逸脱することなく変更及び変形がなされ得ることは当然である。
【図面の簡単な説明】
【図１】
関連技術のオシロスコープにおける機能接続を示す系統図
【図２】
本発明にしたがうオシロスコープにおける機能接続を示す系統図
【図３】
３段非ストリーミング処理オブジェクトによる波形の処理を示すブロック図
【図４】
本発明にしたがう３段ストリーミング処理オブジェクトによる波形の処理を示すブロック図
【図５】
図４に示される、本発明にしたがう３段処理オブジェクトによる波形処理におけるステップを示す図
【図６】
ストリーミング及び非ストリーミング手法の比較のための波形処理例を示すブロック図
【符号の説明】
２００　　ユーザインターフェース
２１０　　制御変数
２２０　　処理オブジェクト
２３０　　アクイジションハードウエア
２４０　　アクイジション制御／読出
２５０　　結果メモリ
２６０　　インポート／エクスポート
２７０　　外部システム
２８０　　グラフィックレンダリング
２９０　　ディスプレイモニタ
【図１】
2004514147.tif 000003
【図２】
2004514147.tif 000004
【図３】
2004514147.tif 000005
【図４】
2004514147.tif 000006
【図５】
2004514147.tif 000007
【図６】
2004514147.tif 000008
【国際公開パンフレット】
2004514147.tif 000009
2004514147.tif 000010
2004514147.tif 000011
2004514147.tif 000012
2004514147.tif 000013
2004514147.tif 000014
2004514147.tif 000015
2004514147.tif 000016
2004514147.tif 000017
2004514147.tif 000018
2004514147.tif 000019
2004514147.tif 000020
2004514147.tif 000021
2004514147.tif 000022
2004514147.tif 000023
2004514147.tif 000024
2004514147.tif 000025
2004514147.tif 000026
2004514147.tif 000027
2004514147.tif 000028
2004514147.tif 000029
2004514147.tif 000030
2004514147.tif 000031
2004514147.tif 000032
2004514147.tif 000033
2004514147.tif 000034
【国際公開パンフレット（コレクトバージョン）】
2004514147.tif 000035
【国際調査報告】
2004514147.tif 000036