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

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

▶ テクトロニクス・インコーポレイテッドの特許一覧

<>
  • 特開-試験測定装置及び波形データ表示方法 図1
  • 特開-試験測定装置及び波形データ表示方法 図2
  • 特開-試験測定装置及び波形データ表示方法 図3
  • 特開-試験測定装置及び波形データ表示方法 図4
  • 特開-試験測定装置及び波形データ表示方法 図5
  • 特開-試験測定装置及び波形データ表示方法 図6
  • 特開-試験測定装置及び波形データ表示方法 図7
  • 特開-試験測定装置及び波形データ表示方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024014840
(43)【公開日】2024-02-01
(54)【発明の名称】試験測定装置及び波形データ表示方法
(51)【国際特許分類】
   G01R 13/20 20060101AFI20240125BHJP
   G01R 13/02 20060101ALI20240125BHJP
【FI】
G01R13/20 L
G01R13/20 M
G01R13/20 N
G01R13/02
【審査請求】未請求
【請求項の数】14
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023118725
(22)【出願日】2023-07-21
(31)【優先権主張番号】63/391,288
(32)【優先日】2022-07-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】18/353,638
(32)【優先日】2023-07-17
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】391002340
【氏名又は名称】テクトロニクス・インコーポレイテッド
【氏名又は名称原語表記】TEKTRONIX,INC.
(74)【代理人】
【識別番号】100090033
【弁理士】
【氏名又は名称】荒船 博司
(74)【代理人】
【識別番号】100093045
【弁理士】
【氏名又は名称】荒船 良男
(72)【発明者】
【氏名】アンディ・ケイ・リム
(72)【発明者】
【氏名】ダニエル・ジー・クニーリム
(57)【要約】
【課題】試験測定装置のブラインド・タイムを短縮する。
【解決手段】試験測定装置12は、被試験デバイス10から波形のバッチを受けてデジタル化波形のバッチにデジタル化するアクイジション回路14と、行と列を有するラスタ平面22として構成されたメモリと、デジタル化波形のバッチをラスタ平面22にラスタライズしてバッチ・ヒストグラムを形成し、複数スレッドを第1タイプのグループの複数グループにグループ化し、第1タイプのグループのスレッド・グループの夫々をラスタ平面中の1つの列に割り当て、第1タイプのスレッド・グループ毎に共通の命令を実行してラスタ平面にデータを蓄積し、そのバッチ・ヒストグラムを完了時に転送する、複数スレッドを処理可能なグラフィックス処理ユニット(GPU)26と、GPUからバッチ・ヒストグラムを受け、バッチ・ヒストグラムのマップをディスプレイ28に表示させる中央処理装置(CPU)とを有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
被試験デバイス(DUT)から波形のバッチを受けてデジタル化波形のバッチにデジタル化するように構成されたアクイジション・システムと、
行と列を有するラスタ平面として構成されたメモリと、
複数のスレッドを処理可能なグラフィックス処理ユニット(GPU)であって、上記デジタル化波形のバッチを上記ラスタ平面にラスタライズしてバッチ・ヒストグラムを形成する処理を上記GPUに行わせ、上記デジタル化波形の夫々について、
複数のスレッドを第1タイプのグループから成る複数のグループにグループ化する処理と、
上記第1タイプのグループのスレッド・グループの夫々を上記ラスタ平面中の1つの列に割り当てる処理と、
上記第1タイプのスレッド・グループ毎に共通の命令を実行して、上記デジタル化波形からのデータを上記ラスタ平面に蓄積する処理と、
上記バッチ・ヒストグラムを完了時に転送する処理と
を上記GPUに行わせるプログラムを実行するよう構成される上記GPUと、
該GPUと通信する中央処理装置(CPU)であって、
上記バッチ・ヒストグラムを受ける処理と、
上記バッチ・ヒストグラムのマップをディスプレイに表示させる処理と
を上記CPUに行わせるプログラムを実行するよう構成される上記CPUと
を具える試験測定装置。
【請求項2】
上記CPUと上記GPUとが通信バスで接続され、上記波形のバッチのサイズは、上記通信バスの速度、上記GPUの処理スループット及び表示更新レートに依存する請求項1の試験測定装置。
【請求項3】
上記GPUは、上記第1タイプのグループから成る複数のグループを、上記第2タイプのグループから成る複数のグループにグループ化させる処理を上記GPUに行わせるプログラムを実行するように更に構成され、上記第2タイプのグループから成る複数のグループの個数が上記ラスタ平面内の列の個数に対応している請求項1の試験測定装置。
【請求項4】
上記GPUは、上記GPU内のスレッドの個数に対応する個数の連続するデジタル化波形を受信する処理を上記GPUに行わせるプログラムを実行するように更に構成される請求項1の試験測定装置。
【請求項5】
上記複数のスレッドが、GPU内の複数のSIMD(Single Instruction Multiple Data)プロセッサに対応する請求項1の試験測定装置。
【請求項6】
複数のスレッドを上記第1タイプのグループから成る複数のグループにグループ化する処理を上記GPUに行わせるプログラムが、上記デジタル化波形の夫々の特定のサンプルの場所を第1タイプのグループの各グループに割り当てる処理を上記GPUに行わせる請求項1の試験測定装置。
【請求項7】
上記デジタル化波形をラスタライズする処理を上記GPUに行わせるプログラムは、対象の画素について受信したサンプルの夫々について、上記対象の画素を1ずつ増加させることによって、上記ラスタ平面上に全ての波形を描画する処理を上記GPUに行わせる請求項1の試験測定装置。
【請求項8】
被試験デバイス(DUT)から波形のバッチを受ける処理と、
上記波形のバッチをデジタル化してデジタル化波形のバッチを生成する処理と、
複数のスレッドを処理できるグラフィックス処理ユニット(GPU)で上記デジタル化波形のバッチを受信する処理と、
GPUによって、上記デジタル化波形のバッチを行と列を有するラスタ平面にラスタライズする処理と、
複数のスレッドを第1タイプのグループにグループ化する処理と、
上記第1タイプのグループのスレッド・グループの夫々を上記ラスタ平面中の1つの列に割り当てる処理と、
上記第1タイプのグループのスレッド・グループ毎に共通の命令を実行して、上記デジタル化波形からのデータを上記ラスタ平面に蓄積してバッチ・ヒストグラムを形成する処理と、
上記バッチ・ヒストグラムのマップをディスプレイに表示する処理と
を具える波形データ表示方法。
【請求項9】
上記デジタル化波形のバッチを生成する処理が、上記デジタル化波形のバッチを、DUTから中央処理装置(CPU)上のバッファ又はGPU上のバッファのいずれかに転送する処理を含む請求項8の波形データ表示方法。
【請求項10】
上記第1タイプのグループから成る複数のグループを、上記ラスタ平面内の列の個数に対応する、上記第2タイプのグループから成る個数のグループにグループ化する処理を更に具える請求項8の波形データ表示方法。
【請求項11】
上記GPUで上記デジタル化波形のバッチを受ける処理が、上記GPU夫々内のスレッドの個数に対応する個数の連続するデジタル化波形を受ける処理を含む請求項8の波形データ表示方法。
【請求項12】
上記複数のスレッドが、上記GPU内の複数のSIMD(Single Instruction Multiple Data)プロセッサに対応する請求項8の方法。
【請求項13】
複数のスレッドを第1タイプのグループから成る複数のグループにグループ化する処理が、上記デジタル化波形夫々の特定のサンプルの場所をインスタンスの夫々に割り当てる処理を含む請求項8の波形データ表示方法。
【請求項14】
上記デジタル化波形のバッチをラスタライズする処理が、対象の画素の位置にサンプルが存在する毎に上記対象の画素を1ずつ増加させることによって、上記ラスタ平面上に全ての波形を描画する処理を含む請求項8の波形データ表示方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、試験測定装置に関し、詳細には、波形データを表示するためのオシロスコープ等の試験測定装置において、グラフィックス処理ユニットを使用することに関する。
【背景技術】
【0002】
ナイキストの基準では、サンプリング周波数が、サンプリングする最高周波数の2倍以上であれば、繰り返し波形を正しく再構成できる。デジタル・オシロスコープのサンプル・レートは、増え続ける高周波信号を分解するために増加させる必要がある。サンプル・レートが、毎秒数百ギガ・サンプルの範囲になることも珍しくはない。波形を画面に表示するなど、有用なアプリケーションのために生成されるデータ量を処理するには、多くの課題がある。例えば、トリガ論理回路は、関心領域内のサンプルのレコードのみを捕捉する。しかし、1つの課題は、後続の全てのトリガのレコードを処理することである。そのため、オシロスコープは、トリガを長時間ホールド・オフ(控える、見合わせる)して、データ処理に時間をかける。リアルタイム・オシロスコープでは、この結果、ほとんどのトリガが欠落する。これは、ブラインド・タイム(blind time:見ることができない時間)とも呼ばれる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第6083922号公報
【特許文献2】特開2017-201295号公報
【非特許文献】
【0004】
【非特許文献1】「テクトロニクス社製オシロスコープ」の紹介サイト、テクトロニクス、[online]、[2023年7月19日検索]、インターネット<https://www.tek.com/ja/products/oscilloscopes>
【非特許文献2】トランジスタ技術SPECIAL編集部編、「ディジタル・オシロスコープ活用ノート」、「5-2 トリガ回路のしくみ」、第85~87頁、図2(回路ブロック図)、「5-7 トリガ・テクニックのいろいろ」の4、「一定期間だけトリガ機能を抑止するホールド・オフ」、第101頁、トランジスタ技術SPECIAL for フレッシャーズ No.99、CQ出版株式会社、2007年7月1日発行
【発明の概要】
【発明が解決しようとする課題】
【0005】
ブラインド・タイムを短縮するために、オシロスコープは、トリガ・ホールドオフ期間を短くして、より高いレートで波形を捕捉し、より高いディスプレイ・リフレッシュ・レートで表示しても良い。しかし、人間の目は、ある有限のレートまでしか波形を区別できない。1つの解決手法では、波形のヒストグラムを使用しており、ディスプレイの更新ごとに、多くの波形を積み重ねて描画する。そのためには、毎秒何百万回も波形を描画するなど、トリガ毎の全ての波形を非常に高いレートで描画する必要がある。現在、ハイエンドのCPUやRAMでさえ、これを行う処理性能を持っていない。専用のベア・メタル・プロセッサ、FPGA(フィールド・プログラマブル・ゲート・アレイ)、メモリを内蔵したASIC(特定用途向け集積回路)などを選択すれば、必要な機能を実行できるが、開発にはコストがかかる。
【0006】
本発明の実施形態は、これらの問題及び他の問題に取り組むものである。
【課題を解決するための手段】
【0007】
本開示技術の実施形態は、GPU(Graphics Processing Unit)の処理能力を利用することによって、この問題を解決する。実施形態の例では、波形データのバッチが、PCIeバスなどの通信バスを介して、GPU RAM(ランダム・アクセス・メモリ)に転送される。次いで、GPUは、デジタル波形をヒストグラム・バッファにラスタライズする。本開示技術の実施形態は、スループット・レートを最大化するために、専用のラスタ処理(rasterization)アルゴリズムを使用しても良い。その後、GPUは、ヒストグラム・バッファの内容をCPU(中央処理装置)に再度転送して、更に処理を行い、もっとゆっくりの表示リフレッシュ・レートで表示する。
【図面の簡単な説明】
【0008】
図1図1は、試験測定装置の実施形態を示す。
図2図2は、ラスタ平面上のヒストグラムの実施形態である。
図3図3は、ディスプレイの向きに対する画素アドレスを示している。
図4図4は、スレッドのグルーピング及びメモリのアクセス・パターンの実施形態の図を示す。
図5図5は、試験波形の実施形態を示す。
図6図6は、スループットと更新レートとの第1関係のグラフを示す。
図7図7は、スループットと更新レートとの第2関係のグラフを示す。
図8図8は、パルス振幅変調(PAM4)信号についての模擬試験波形の実施形態を示す。
【発明を実施するための形態】
【0009】
図1は、試験測定装置12の構成図を示す。試験測定装置12は、バッファ15としてメモリ記憶装置を有するアクイジション・システム又は回路14内の波形デジタイザと、バッファ20及びラスタ平面22の形態のメモリを有するマザーボード上のCPUから構成されても良いCPU18と、メモリ(バッファ)26を有するGPU24とを有する。波形デジタイザ及びGPUは、バス16を使用して、CPU及びマザーボード・メモリと通信しても良い。
【0010】
アクイジション・システム又は回路14は、被試験デバイス(DUT)10からのトリガされた波形のバッチをデジタル化する。アクイジション回路14は、アクイジション回路に備わっているバッファ15にディジタル化された波形のバッチを格納しても良い。デジタル化された各波形のサイズは、一定である。このバッチは、数千のデジタル化された波形で構成されている。アクイジション・バッファ15及びGPUバッファ26のサイズは、バッチのサイズを制限する。アクイジション・システム14は、バッチをCPUマザーボード・バッファ20に転送する。別の実施形態では、アクイジション回路は、バスを介してバッチをGPUに直接転送できるが、これは全体的なスループットを向上させるようには見えない。バッチ・データは、オプションで、GPUバッファ26に転送する前に、CPUによって処理されても良い。GPUは、バッチ中の全ての波形をGPUラスタ平面バッファ26にラスタライズして、バッチ全体の波形ヒストグラムを形成する。その後、GPUは、完成したラスタ平面をCPUマザーボードに転送して戻す。CPUは、ヒストグラムをディスプレイ28で表示するためのマップに変換できる。このマップは、カラーのヒートマップ又はグレースケール・マップなどで構成されても良い。試験測定装置12は、ユーザが試験測定装置12をセットアップ又は操作することを可能にするユーザ・インタフェース29を更に含んでもよい。
【0011】
バッチのサイズは、ラスタ平面の全体的なスループット効率と更新(アップデート)レートに影響する。ヒストグラムの表示頻度を高くするほど、バッチ・サイズを小さくする必要があるが、バッチ・サイズが大きいほど全体的な効率は向上する。
【0012】
実施形態の装置及び方法は、並列処理が可能な複数のコアを有するGPUアーキテクチャを利用する。その有効性とラスタ処理速度は、その具体的なGPUアーキテクチャとモデルによって異なる。例えば、多くのGPUは、マルチコア、マルチスレッドのSIMDストリーム・アーキテクチャを使用している。そのメモリ・システムは、大容量のDDR(ダブル・データ・レート)メモリと、L1及びL2キャッシュとで構成されている場合がある。処理速度は、メモリへのアクセス方法に大きく依存する。メモリの各リード(read:読み取り)信号は、通常、キャッシュ・ラインのサイズ(通常は、128バイト)に対応する。128バイト全てを効率的に使用することが強く望まれる。
【0013】
本開示技術の実施形態は、GPUアーキテクチャの制約内で効率的に実行されるGPU処理アルゴリズムを利用する。ラスタ処理方法は、キャッシュの負荷を最小限に抑えながら、並列処理アーキテクチャを最大限に活用することを意図としている。図2は、波形を画素(ピクセル)幅の列に分割できることを示している。GPUは、各スレッドに特定の列を割り当てる。なお、図2において、点線は、画素の列を表す。その後、これは、ヒートマップに変換されて表示される。
【0014】
実施形態の例では、ラスタ平面は、GPUメモリ内の1024×512×32ビットの画素(ピクセル)バッファから構成される。この例は、プロセスの理解を助けるために、特定の寸法(dimensions:大きさ)及び画素深度(pixel depths)を使用しているのであり、特許請求の範囲を限定することを意図したものではない。この32ビットの画素には、0から524287までのアドレスがあり、これは1024×512の画素数である。図3は、画面上における、画素単位での相対的な画素アドレスと、これら画素が表示される場所とを示している。このレイアウトは、本願で使用するラスタ処理に関して、キャッシュに適したものである。
【0015】
本願でのアルゴリズムの実装例は、GLSLコンピュート・シェーダ言語に基づいている。しかし、これはHSLやCUDATMなどの他のGPU言語にも適用できる。
【0016】
このアルゴリズムにより、特定のGPUアーキテクチャを最適化できることがある。本願の実施形態は、32以上の並列SIMD(Single Instruction Multiple Data)処理パラダイムをサポートするアーキテクチャを使用する。32個のSIMD処理レーンは、GPUソフトウェアでは32スレッドとして表される。従って、32個のSIMT(Single Instruction Multiple Threads)は、GPUソフトウェアの状況においては、SIMDと同じ意味である。ここでの32個のプロセッサは、50個のSIMDプロセッサなどとすることも可能なことに注意する必要がある。
【0017】
次に、GPUは、32個のSIMD/SIMTプロセッサを、ここではxグループと呼ぶ第1タイプのグループとしてグループ化しても良い。第2タイプのグループであるyグループには、ラスタ平面の各列につき1個ずつ、1024個のxグループがあり、また、GPUは、多数のyグループを有することがある。32個のSIMD/SIMTプロセッサで構成されるxグループは、GPU内に物理的に存在する。しかし、xグループとyグループの合計数は、GPUのこれら32個のSIMD/SIMTプロセッサの実際の数を反映しないことがあり、むしろ、ソフトウェアの抽象的な概念である。数千のコアを持つGPUであれば、コア数が少ないGPUでは実行できない、多数のxグループとyグループを同時に実行できる。この著しい規模のアーキテクチャは、読み取りと書き込みの両方でスレッドあたり128バイトのキャッシュ・ラインをサポートする。波形の入力は、GPUによる読み取り専用処理で、出力は、ラスタ平面への読み取り/変更/書き込み処理である。波形の長さは、通常、約2048バイトである。最適なケースは、アルゴリズムが行うキャッシュの負荷が最小で、スレッドの期間中に共通の命令を実行する場合に行われる。
【0018】
入力データは、波形のバッチから構成される。この例では、波形は、ラスタ平面中の列の数と相関する1024個のサンプルで構成されている。波形は、様々なサンプル数があり得るし、その対応するラスタ平面も様々な寸法となり得る。最適なバッチのサイズは、PCIeバス速度、GPUの処理スループット及びディスプレイの更新レートによって異なる。この例では、バッチ・サイズは、8192個の波形から構成される。
【0019】
GPUは、対象の画素を1ずつ増加させる(インクリメントする)ことによって、バッチ内の全ての波形をラスタ平面に描画する。GPUがバッチ内の複数の波形を反復処理すると、特定のサンプルに関する対象の画素は、その画素の位置にサンプルが「着地」する毎に1ずつ増加する。これにより、特定の画素の位置において「ヒット」のヒストグラムが形成される。
【0020】
図4は、デジタル化された波形が、ラスタ平面にどのようにマッピングされるかをグラフィカルに表現したものを示す。ここで使用する特定の数字のために、xグループ内のSIMDプロセッサの数と相関する32個の連続する波形毎に、0から255までのインデックスが付けられた各yグループに割り当てられる。図4を見ると、yグループ0は、各列につき1個のxグループ0~1023を有する。各xグループは、32個の連続する波形に関するデジタル化された波形データを処理する32個のスレッド(threads)から成る1つのインスタンスで構成される。yグループ0のxグループ0の場合、スレッドth0からth31の夫々は、連続する32個の波形の中の1つを有している。各xグループには、各波形の特定のサンプル位置と、ラスタ平面内の特定の列が割り当てられる。これは、1番目から1024番目のサンプルである。各yグループには、ラスタ平面の1024個の列に対応する1024個のxグループがある。列内の32個のスレッドは、それらのサンプルが存在する場所に関係なく、列の画素の位置に32個のサンプルを蓄積する(populate:入力する、追加する)。波形処理を更に行うと、ヒット(つまり、データ)のある列にサンプルを蓄積する(populate)ことになる。
【0021】
この構成により、GPUで使用可能な処理コアの総数が最大限に利用され、キャッシュの負荷が最小限に抑えられる。列は、通常、連続したメモリ空間を占有する。上記の例では、128バイト(128*8=1024)のキャッシュ・ラインの1回の読み取りで十分である。
【0022】
上記の例では、32ビットのSIMDマシン・データを32個有するGPUを想定している。1つのSIMDは、32個のスレッドを並列に実行する。もし処理コード(プログラム)が、複数のSIMDを非順次(non-sequential:ノン・シーケンシャル)方式で独立して動作させる場合、複数のSIMDも同時に実行できる。通常、GPUとCPUはどちらもコード(プログラム)を実行するプロセッサで構成されており、コードによって、プロセッサは、本願に記載されているように動作する。
【0023】
上述したように、本願のSIMDアーキテクチャのデータ・サイズには32個の浮動小数点プロセッサがあり、ここで、「プロセッサ」は、GPUの処理コア内のプロセスの形をとることができる。別の例では、GPUが、50個のSIMDマシンを有していても良く、50個の列を同時に処理できる。図4の描写では、これは、xグループからxグループ49、次いでxグループ50からxグループ99というのがxグループ1000まで、それから、グループ1023までとなる。グループのインデックス作成は、0から49までを再利用するような反復を利用したループ処理をしないことで、順次処理(sequentialization)を回避している。
【0024】
以下は、本開示のいくつかの実施形態によるCのコード形式でのアルゴリズムの例である。

H = 512 // 画素単位の列の高さ
nT = 32 // 1グループ中のパラレルなSIMDの数
// これは、nT xグループの中の1つ
nX = 1024 // xグループの数、各列に1つ
nY = 256 // yグループの数、n波形=nY * nT
【0025】
この構成には、2つの見方がある。第1に、入力データ、ラスタ平面及びスレッドが物理的に線形な順序で、複数の寸法で構成される。第2に、右端の角括弧(square bracket)内のインデックスは、連続した空間内の最小の構成要素を指す。
【0026】
リソースの割り当て:

thread[nY][nX][nT]
// nT = 1グループ内のスレッドの数
// 全部で nY*nX 個のグループ
inData[nY][nT][nX] // 全入力データのサイズ = nY*nX*nT

raster[nX][H] // nX×H ラスタ平面の配置
// nX = 列の数
【0027】
データ・アクセスの順番。このとき、iTが最下位で、次にiX、続いてiYである。
thread[ iY{0..nY-1} ] [ iX{0..nX-1} ] [ iT{0..nT-1} ]
// 0 から (nT*nX*nY)-1 までの線形なインデックス
inData[ iY{0..nY-1} ] [ iT{0..nT-1} ] [ iX{0..nX-1} ]
// 0 から (nX*nT*nY)-1 まで
raster[ iX{0..nX-1} ] [ iH{0...H-1} ]
// 0 から (nX*H)-1 まで
RL = 1024
inData = waveform[M * 32][1024]

分岐のないメイン・ロジック

index = (iFrame * RL32) + x_index32;
d32_1 = d32Waveform[index + 0];
d32_2 = d32Waveform[index + 1];

shift = x_index16 & 0x1; //0 又は 1
bitShift = shift << 4; //0 又は 16

d1 = (d32_1 >> bitShift) & 0x3ff;
d2 = (((d32_1 >> 16) * (1-shift)) + ((d32_2 & 0x3ff) * shift));

//d1 から d2 まで垂直ラインを描画
rastPos = (vertRes * x_index16) + d1;

h = d2 - d1;

//sgn() = -1 (if h<0), 0 (if h==0), or +1 (if h>0)
dh = 3 + (2 * ((h>>31) - 1));

d32raster[rastPos] += 1;
for(ih = 0; ih != h; ih+=dh) {
rastPos+=dh;
d32 = d32raster[rastPos] + 1;
d32raster[rastPos] = d32;
}

1つのグループ内の32個のSIMDプロセッサ内において、ここでのメイン・ロジックは、最後まで分岐しない。ラスタ平面に描画される垂直ラインは、スレッド毎に異なることがある。
【0028】
本発明者らは、PCIe Gen3の16xバス上で、AMD社のEPYC型CPUと、Quadro T1000型GPUとからなるシステムを用いて試験を行った。
【0029】
このベンチマークは、PCIe DMA、GPUラスタ処理(rasterization)、ヒートマップ変換、GPUによるディスプレイ・レンダリングの合計スループットを測定する。用いる試験波形30は、図5に示すように、シミュレーションしたノイズとジッタを有するシミュレーションした矩形波である。
【0030】
以下の表1にベンチマーク結果を示す。nXは、xグループの総数であり、nYは、yグループの総数である。
【0031】
nYを調整することで、バッチ・サイズを変更できる。バッチ・サイズは、FPS(Frames Per Second:フレーム毎秒)の列で示されるディスプレイの更新レートに直接影響する。KAcqs/sの列は、1,000単位(K:キロ)での1秒あたりのアクイジション(acquisitions:データ取得)の数である。
【表1】
【0032】
これは、毎秒10フレームのリフレッシュ・レートで、毎秒100万回以上のアクイジションをラスタ処理する能力を実証している。
【0033】
次のベンチマークでは、ダイレクト・メモリ・アクセス(DMA)、ヒートマップ変換及び表示のオーバーヘッドを除いている。これは、GPUのラスタ処理速度をより正確に示しており、その結果が表2に示されている。
【表2】
表2 DMA、ヒートマップ変換及び表示レンダリングのオーバーヘッドなしのラスタ処理(rasterization)のスループット
【0034】
これは、より高速なPCIe、より高速なヒートマップ変換及び表示システムを利用することで、アクイジション・レートを大幅に向上させることができることを示している。更新レート(フレーム毎秒)と1秒あたりのアクイジションとの間には、図6及び7に示すようにトレードオフがある。
【0035】
また、波形の複雑さとスループットとの間には、描画される画素数によるトレードオフがある。図8に示す波形40は、図5の波形30よりも2倍遅い。
【0036】
本開示技術の態様は、特別に作成されたハードウェア、ファームウェア、デジタル・シグナル・プロセッサ又はプログラムされた命令に従って動作するプロセッサを含む特別にプログラムされた汎用コンピュータ上で動作できる。本願における「コントローラ」又は「プロセッサ」という用語は、マイクロプロセッサ、マイクロコンピュータ、ASIC及び専用ハードウェア・コントローラ等を意図する。本開示技術の態様は、1つ又は複数のコンピュータ(モニタリング・モジュールを含む)その他のデバイスによって実行される、1つ又は複数のプログラム・モジュールなどのコンピュータ利用可能なデータ及びコンピュータ実行可能な命令で実現できる。概して、プログラム・モジュールとしては、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含み、これらは、コンピュータその他のデバイス内のプロセッサによって実行されると、特定のタスクを実行するか、又は、特定の抽象データ形式を実現する。コンピュータ実行可能命令は、ハードディスク、光ディスク、リムーバブル記憶媒体、ソリッド・ステート・メモリ、RAMなどのコンピュータ可読記憶媒体に記憶しても良い。当業者には理解されるように、プログラム・モジュールの機能は、様々な実施例において必要に応じて組み合わせられるか又は分散されても良い。更に、こうした機能は、集積回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)などのようなファームウェア又はハードウェア同等物において全体又は一部を具体化できる。特定のデータ構造を使用して、本開示技術の1つ以上の態様をより効果的に実施することができ、そのようなデータ構造は、本願に記載されたコンピュータ実行可能命令及びコンピュータ使用可能データの範囲内と考えられる。
【0037】
開示された態様は、場合によっては、ハードウェア、ファームウェア、ソフトウェア又はこれらの任意の組み合わせで実現されても良い。開示された態様は、1つ以上のプロセッサによって読み取られ、実行され得る1つ又は複数のコンピュータ可読媒体によって運搬されるか又は記憶される命令として実現されても良い。そのような命令は、コンピュータ・プログラム・プロダクトと呼ぶことができる。本願で説明するコンピュータ可読媒体は、コンピューティング装置によってアクセス可能な任意の媒体を意味する。限定するものではないが、一例としては、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含んでいても良い。
【0038】
コンピュータ記憶媒体とは、コンピュータ読み取り可能な情報を記憶するために使用することができる任意の媒体を意味する。限定するものではないが、例としては、コンピュータ記憶媒体としては、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、電気消去可能プログラマブル読み出し専用メモリ(EEPROM)、フラッシュメモリやその他のメモリ技術、コンパクト・ディスク読み出し専用メモリ(CD-ROM)、DVD(Digital Video Disc)やその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置やその他の磁気記憶装置、及び任意の技術で実装された任意の他の揮発性又は不揮発性の取り外し可能又は取り外し不能の媒体を含んでいても良い。コンピュータ記憶媒体としては、信号そのもの及び信号伝送の一時的な形態は除外される。
【0039】
通信媒体とは、コンピュータ可読情報の通信に利用できる任意の媒体を意味する。限定するものではないが、例としては、通信媒体には、電気、光、無線周波数(RF)、赤外線、音又はその他の形式の信号の通信に適した同軸ケーブル、光ファイバ・ケーブル、空気又は任意の他の媒体を含んでも良い。
【0040】
加えて、本願の説明は、特定の特徴に言及している。本明細書における開示には、これらの特定の特徴の全ての可能な組み合わせが含まれると理解すべきである。ある特定の特徴が特定の態様又は実施例に関連して開示される場合、その特徴は、可能である限り、他の態様及び実施例との関連においても利用できる。
【0041】
また、本願において、2つ以上の定義されたステップ又は工程を有する方法に言及する場合、これら定義されたステップ又は工程は、状況的にそれらの可能性を排除しない限り、任意の順序で又は同時に実行しても良い。
【0042】
明細書、特許請求の範囲、要約書及び図面に開示される全ての機能、並びに開示される任意の方法又はプロセスにおける全てのステップは、そのような機能やステップの少なくとも一部が相互に排他的な組み合わせである場合を除いて、任意の組み合わせで組み合わせることができる。明細書、要約書、特許請求の範囲及び図面に開示される機能の夫々は、特に明記されない限り、同じ、等価、又は類似の目的を果たす代替の機能によって置き換えることができる。
【0043】
開示された本件の上述のバージョンは、記述したか又は当業者には明らかであろう多くの効果を有する。それでも、開示された装置、システム又は方法のすべてのバージョンにおいて、これらの効果又は特徴のすべてが要求されるわけではない。

実施例
【0044】
以下では、本願で開示される技術の理解に有益な実施例が提示される。この技術の実施形態は、以下で記述する実施例の1つ以上及び任意の組み合わせを含んでいても良い。
【0045】
実施例1は、試験測定装置であって、被試験デバイス(DUT)から波形のバッチを受けてデジタル化波形のバッチにデジタル化するように構成されたアクイジション・システムと、行と列を有するラスタ平面として構成されたメモリと、複数のスレッドを処理可能なグラフィックス処理ユニット(GPU:graphics processing unit)であって、上記デジタル化波形のバッチを上記ラスタ平面にラスタライズしてバッチ・ヒストグラムを形成する処理を上記GPUに行わせ、上記デジタル化波形の夫々について、複数のスレッドを第1タイプのグループから成る複数のグループにグループ化する処理と、上記第1タイプのグループのスレッド・グループの夫々を上記ラスタ平面中の1つの列に割り当てる処理と、上記第1タイプのスレッド・グループ毎に共通の命令を実行して、上記デジタル化波形からのデータを上記ラスタ平面に蓄積する(populate:追加する、入力する)処理と、上記バッチ・ヒストグラムを完了時に転送する処理とを上記GPUに行わせるプログラムを実行するよう構成される上記GPUと、該GPUと通信する中央処理装置(CPU:central processing unit)であって、上記バッチ・ヒストグラムを受ける処理と、上記バッチ・ヒストグラムのマップをディスプレイに表示させる処理とを上記CPUに行わせるプログラムを実行するよう構成される上記CPUとを具える。
【0046】
実施例2は、実施例1の試験測定装置であって、上記CPUと上記GPUとが通信バスで接続されている。
【0047】
実施例3は、実施例2の試験測定装置であって、上記波形のバッチのサイズは、上記通信バスの速度、上記GPUの処理スループット及び表示更新レートに依存する。
【0048】
実施例4は、実施例1から3のいずれかの試験測定装置であって、上記CPUは、上記デジタル化波形のバッチをCPUバッファに受信させる処理を上記CPUに行わせるプログラムを実行するように構成されている。
【0049】
実施例5は、実施例1から4のいずれかの試験測定装置であって、上記GPUは、上記デジタル化波形のバッチを上記1つ以上のGPUバッファに受信させる処理を上記GPUに行わせるプログラムを実行するように更に構成される。
【0050】
実施例6は、実施例1から5のいずれかの試験測定装置であって、上記GPUは、上記第1タイプのグループから成る複数のグループを、上記第2タイプのグループから成る複数のグループにグループ化させる処理を上記GPUに行わせるプログラムを実行するように更に構成され、上記第2タイプのグループから成る複数のグループの個数が上記ラスタ平面内の列の個数に対応している。
【0051】
実施例7は、実施例1から6のいずれかの試験測定装置であって、上記GPUは、上記GPU内のスレッドの個数に対応する個数の連続するデジタル化波形を受信する処理を上記GPUに行わせるプログラムを実行するように更に構成される。
【0052】
実施例8は、実施例7の試験測定装置であって、上記個数のスレッドが並列に動作する。
【0053】
実施例9は、実施例1から8のいずれかの試験測定装置であって、上記複数のスレッドが、GPU内の複数のSIMD(Single Instruction Multiple Data)プロセッサに対応する。
【0054】
実施例10は、実施例1から9のいずれかの試験測定装置であって、複数のスレッドを上記第1タイプのグループから成る複数のグループにグループ化する処理を上記GPUに行わせるプログラムは、上記デジタル化波形の夫々の特定のサンプルの場所を第1タイプのグループの各グループに割り当てる処理を上記GPUに行わせる。
【0055】
実施例11は、実施例1から10のいずれかの試験測定装置であって、上記デジタル化波形をラスタライズする処理を上記GPUに行わせるプログラムは、対象の画素について受信したサンプルの夫々について、上記対象の画素を1ずつ増加させることによって、上記ラスタ平面上に全ての波形を描画する処理を上記GPUに行わせる。
【0056】
実施例12は、実施例1から11のいずれかの試験測定装置であって、上記ラスタ平面の列の夫々が、上記メモリの連続した領域に存在する。
【0057】
実施例13は、波形データを表示する方法であって、被試験デバイス(DUT)から波形のバッチを受ける処理と、上記波形のバッチをデジタル化してデジタル化波形のバッチを生成する処理と、複数のスレッドを処理できるグラフィックス処理ユニット(GPU)で上記デジタル化波形のバッチを受信する処理と、GPUによって、上記デジタル化波形のバッチを行と列を有するラスタ平面にラスタライズする処理と、複数のスレッドを第1タイプのグループにグループ化する処理と、上記第1タイプのグループのスレッド・グループの夫々を上記ラスタ平面中の1つの列に割り当てる処理と、上記第1タイプのグループのスレッド・グループごとに共通の命令を実行して、上記デジタル化波形からのデータを上記ラスタ平面に蓄積(populate)してバッチ・ヒストグラムを形成する処理と、上記バッチ・ヒストグラムのマップをディスプレイに表示する処理とを具える。
【0058】
実施例14は、実施例13の方法であって、上記デジタル化波形のバッチを生成する処理が、上記デジタル化波形のバッチを、DUTから中央処理装置(CPU)上のバッファ又はGPU上のバッファのいずれかに転送する処理を含む。
【0059】
実施例15は、実施例13又は14のいずれかの方法であって、上記第1タイプのグループから成る複数のグループを、上記ラスタ平面内の列の個数に対応する、上記第2タイプのグループから成る個数のグループにグループ化する処理を更に具える。
【0060】
実施例16は、実施例13から15のいずれかの方法であって、上記GPUで上記デジタル化波形のバッチを受ける処理が、上記GPU夫々内のスレッドの個数に対応する個数の連続するデジタル化波形を受ける処理を含む。
【0061】
実施例17は、実施例13から16のいずれかの方法であって、上記複数のスレッドが並列に動作する。
【0062】
実施例18は、実施例13から17のいずれかの方法であって、上記複数のスレッドが、上記GPU内の複数のSIMD(Single Instruction Multiple Data)プロセッサに対応する。
【0063】
実施例19は、実施例13から18のいずれかの方法であって、複数のスレッドを第1タイプのグループから成る複数のグループにグループ化する処理が、上記デジタル化波形夫々の特定のサンプルの場所をインスタンスの夫々に割り当てる処理を含む。
【0064】
実施例20は、実施例13から19のいずれかの方法であって、上記デジタル化波形のバッチをラスタライズする処理が、対象の画素の位置にサンプルが存在する毎に上記対象の画素を1ずつ増加させることによって、上記ラスタ平面上に全ての波形を描画する処理を含む。
【0065】
説明の都合上、本発明の具体的な実施例を図示し、説明してきたが、本発明の要旨と範囲から離れることなく、種々の変更が可能なことが理解できよう。従って、本発明は、添付の請求項以外では、限定されるべきではない。
【符号の説明】
【0066】
10 被試験デバイス(DUT)
12 試験測定装置
14 取得システム又は回路
15 バッファ
16 バス
18 CPU
20 バッファ
22 ラスタ平面
24 GPU(グラフィックス処理ユニット)
26 バッファ
28 ディスプレイ
29 ユーザ・インタフェース
図1
図2
図3
図4
図5
図6
図7
図8
【外国語明細書】