(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-11
(54)【発明の名称】処理ユニット並びにプログラム及び/又はデータメモリを含む被試験デバイスをテストするための自動試験機器、テストコントローラ、被試験デバイスへの1又は複数のインターフェース、共有メモリを含む自動試験機器、並びに被試験デバイスをテストするための方法
(51)【国際特許分類】
G01R 31/3183 20060101AFI20221003BHJP
G01R 31/28 20060101ALI20221003BHJP
G06F 11/22 20060101ALI20221003BHJP
【FI】
G01R31/3183
G01R31/28 W
G01R31/28 B
G06F11/22 605
G06F11/22 673A
G06F11/22 673D
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022507518
(86)(22)【出願日】2019-08-06
(85)【翻訳文提出日】2022-04-04
(86)【国際出願番号】 EP2019071086
(87)【国際公開番号】W WO2021023372
(87)【国際公開日】2021-02-11
(81)【指定国・地域】
(71)【出願人】
【識別番号】390005175
【氏名又は名称】株式会社アドバンテスト
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100133215
【氏名又は名称】真家 大樹
(72)【発明者】
【氏名】ヘンセル、フランク
(72)【発明者】
【氏名】ポエッペ、オラフ
【テーマコード(参考)】
2G132
5B048
【Fターム(参考)】
2G132AA01
2G132AB01
2G132AK15
2G132AK22
2G132AL29
5B048AA00
5B048BB00
(57)【要約】
本発明の一実施形態は、処理ユニット並びにプログラム及び/又はデータメモリを含む被試験デバイス(DUT)をテストするための自動試験機器(ATE)であって、処理ユニットは、プログラム及び/又はデータメモリからのコードを実行することができる。自動試験機器は、例えば、デバッグインターフェース又はデバッグアクセスポートなどの第1のインターフェース、又は外部制御のために処理ユニットにアクセスできる汎用インターフェースを使用してプログラムをDUTにアップロードすることによって、通信を確立するように構成される。第1のインターフェースの一般的な使用事例は、DUTへのデバッグアクセスである。第1のインターフェースは、追加の通信のために、第1のインターフェースよりも高い、はるかに高いデータレートで動作する第2のインターフェースを開放するようにDUTを構成する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
処理ユニット並びにプログラム及び/又はデータメモリを含む被試験デバイスをテストするための自動試験機器であって、
前記自動試験機器が、第1のインターフェースを用いて前記被試験デバイスにプログラムをアップロードするように構成され、
前記第1のインターフェースを介して前記被試験デバイスにアップロードされた前記プログラムが、追加の通信のために、より高いデータレートで動作する第2のインターフェースを開放するように前記被試験デバイスを構成する、
自動試験機器。
【請求項2】
前記第1のインターフェースを介して前記被試験デバイスにアップロードされた前記プログラムが、
前記被試験デバイスによる実行のために、前記第1のインターフェースよりも高いデータレートを含む第2のインターフェースを介して追加のプログラムコード及び/若しくはデータをロードするように前記被試験デバイスを構成すること、並びに/又は
1若しくは複数のプログラムの実行を制御すること、並びに/又は
前記被試験デバイスのレジスタを所望の値に設定すること、並びに/又は
前記被試験デバイスのメモリアクセスを構成すること、
を行う、請求項1に記載の自動試験機器。
【請求項3】
前記第1のインターフェースを介して前記被試験デバイスにアップロードされた前記プログラムが、メモリマッピングを使用して前記第2のインターフェースにアクセスするように前記被試験デバイスを構成する、
請求項1又は請求項2に記載の自動試験機器。
【請求項4】
前記第1のインターフェースを介して前記被試験デバイスにアップロードされた前記プログラムが、前記第2のインターフェースへのアクセスのために、前記被試験デバイスの前記処理ユニットによってアドレス指定可能なメモリ範囲のメモリサブ範囲を割り当てるように、前記被試験デバイスのリソースマネージャを構成する、
請求項1~3のいずれか一項に記載の自動試験機器。
【請求項5】
前記デバイスにアップロードされた前記プログラムが、アプリケーションプロトコルを利用して、クライアント又はホストのいずれかとして前記自動試験機器に通信して、その相手とデータを交換する、
請求項1~4のいずれか一項に記載の自動試験機器。
【請求項6】
前記自動試験機器が、前記第1のインターフェース及び/又は第2のインターフェースに対して、それ自体を認証及び/又は認可するように構成されている、
請求項1~5のいずれか一項に記載の自動試験機器。
【請求項7】
前記自動試験機器が、暗号化された方法及び/又は変更に対して保護された方法で、前記被試験デバイスと通信するように構成されている、
請求項1~6のいずれか一項に記載の自動試験機器。
【請求項8】
前記自動試験機器が、コンパクション手段を用いて圧縮された方法で前記被試験デバイスと通信するように構成され、
前記自動試験機器が、データを圧縮して前記被試験デバイスに送信し、前記被試験デバイスから受信した前記データを解凍するように構成されている、
請求項1~7のいずれか一項に記載の自動試験機器。
【請求項9】
前記第1のインターフェース及び/又は第2のインターフェースを介して前記被試験デバイスにアップロードされた前記プログラムが、前記コンパクション方法及び/又はデコンパクション方法を実行して、前記圧縮及び/又は解凍を実行するためのプログラムコードを含む、
請求項8に記載の自動試験機器。
【請求項10】
前記自動試験機器が、前記被試験デバイスの前記処理ユニットに、前記自動試験機器の共有メモリに記憶され、前記第2のインターフェースを介して前記被試験デバイスにロードされるテストケースコードを実行させるように構成されている、
請求項1~9のいずれか一項に記載の自動試験機器。
【請求項11】
前記自動試験機器が、前記自動試験機器の共有メモリに記憶され、前記第2のインターフェースを介して前記被試験デバイスにロードされるテストケースコードを前記被試験デバイスが実行する前に、キャッシュ又はキャッシュ領域の無効化を引き起こすように構成されている、
請求項1~10のいずれか一項に記載の自動試験機器。
【請求項12】
前記第1のインターフェースを使用して前記被試験デバイスにアップロードされた前記プログラムが、
前記被試験デバイスの前記処理ユニットを初期化することと、
前記被試験デバイスの前記第2のインターフェースを初期化することと、
前記自動試験機器のメモリに接続し、前記自動試験機器の前記メモリのメモリ範囲を前記被試験デバイスの前記処理ユニットによって使用可能なメモリ範囲として提供するように、前記被試験デバイスの前記第2のインターフェースを構成することと、を行う、
請求項1~11のいずれか一項に記載の自動試験機器。
【請求項13】
前記第1のインターフェースを使用して前記被試験デバイスにアップロードされた前記プログラムが、前記自動試験機器の前記メモリの前記メモリ範囲がマッピングされる前記メモリ範囲を、前記被試験デバイスのキャッシュによってキャッシュされるように初期化する、
請求項12に記載の自動試験機器。
【請求項14】
前記第1のインターフェースを使用して前記被試験デバイスにアップロードされた前記プログラムは、前記第2のインターフェースによって提供される拡張メモリが、アクセス時間が遅くなる可能性があることを除いて、通常のシステムメモリとして前記被試験デバイスの前記処理ユニットに提示されるように、前記自動試験機器の前記メモリの前記メモリ範囲がマッピングされる前記メモリ範囲を初期化する、
請求項12又は13に記載の自動試験機器。
【請求項15】
前記第1のインターフェースを使用して前記被試験デバイスにアップロードされた前記プログラムが、前記被試験デバイスに、プログラム実行の結果を前記第2のインターフェースを介して前記自動試験機器に転送させる、
請求項1~14のいずれか一項に記載の自動試験機器。
【請求項16】
前記自動試験機器が、前記第2のインターフェースを介して前記自動試験機器の前記メモリに記憶された前記結果に基づいてデータ分析を実行するように構成され、かつ/又は
前記自動試験機器が、前記第2のインターフェースを介して前記自動試験機器の前記メモリに記憶された前記結果に基づいて前記被試験デバイスの特性評価を実行するように構成され、かつ/又は
前記自動試験機器が、前記第2のインターフェースを介して前記自動試験機器の前記メモリへのデータアクセスパターンを評価するように構成され、かつ/又は
前記自動試験機器が、前記被試験デバイスを特性評価するために、前記第2のインターフェースを介して前記被試験デバイスから受信した情報を分析するように構成されている、
請求項15に記載の自動試験機器。
【請求項17】
前記自動試験機器が、前記自動試験機器のメモリの異なるメモリ範囲に記憶され、前記第2のインターフェースを介して前記被試験デバイスによってアクセスされる複数のテストケースプログラムを、前記被試験デバイスに順次又は並列に実行させるように構成されている、請求項1~16のいずれか一項に記載の自動試験機器。
【請求項18】
前記第1のインターフェースを介して前記被試験デバイスにアップロードされた前記プログラムが、所与のテストケースプログラムの実行中に、前記第2のインターフェースを介して前記所与のテストケースプログラムのプログラムコード及び/又はデータをロードするように前記被試験デバイスを構成する、
請求項1~17のいずれか一項に記載の自動試験機器。
【請求項19】
前記自動試験機器が、テストコントローラを含み、
前記自動試験機器が、前記被試験デバイスにテストデータを提供するための前記第1のインターフェースを含み、
前記自動試験機器が、前記テストコントローラによってアクセス可能であり、前記被試験デバイスによってアクセス可能である共有メモリを含む、
請求項1~18のいずれか一項に記載の自動試験機器。
【請求項20】
被試験デバイスをテストするための自動試験機器であって、
前記自動試験機器が、テストコントローラを含み、
前記自動試験機器が、前記被試験デバイスにテストデータを提供するための第1のインターフェースを含み、
前記自動試験機器が、前記テストコントローラによってアクセス可能であり、前記被試験デバイスによってアクセス可能である共有メモリを含む、
自動試験機器。
【請求項21】
前記自動試験機器が、前記共有メモリへの前記被試験デバイスのアクセスを可能にするように構成されたシリアルインターフェースを含む、
請求項19又は請求項20に記載の自動試験機器。
【請求項22】
前記シリアルインターフェースが、PCI-Expressインターフェース又はPCI-Express準拠インターフェースである、
請求項21に記載の自動試験機器。
【請求項23】
前記シリアルインターフェースが、ユニバーサルシリアルバス(USB)インターフェースである、
請求項21に記載の自動試験機器。
【請求項24】
前記シリアルインターフェースが、サンダーボルトインターフェース若しくはイーサネットインターフェース若しくはIEEE-1394インターフェース若しくはSATA-インターフェースであり、又は前記シリアルインターフェースが、IEEE-1149インターフェースであり、又は前記シリアルインターフェースが、IEEE-1500インターフェースであり、又は前記シリアルインターフェースは、IEEE-1687インターフェースであり、又は前記シリアルインターフェースが、前記第1のインターフェースの一部であり得る、
請求項21に記載の自動試験機器。
【請求項25】
前記自動試験機器が、前記共有メモリが複数の被試験デバイスによってアクセス可能であるように構成されている、
請求項19~24のいずれか一項に記載の自動試験機器。
【請求項26】
前記自動試験機器が、前記共有メモリに結合された複数のインターフェースを含み、複数の被試験デバイスによる前記共有メモリへのアクセスを可能にする、
請求項25に記載の自動試験機器。
【請求項27】
前記テストコントローラが、前記共有メモリのどの部分が前記被試験デバイスによってアクセス可能であるかを選択するように構成され、又は
前記テストコントローラが、複数の被試験デバイスへの前記共有メモリの部分の割り当てを選択するように構成されている、
請求項19~26のいずれか一項に記載の自動試験機器。
【請求項28】
前記テストコントローラは、前記共有メモリの第1の部分が、テストランの第1の部分中に所与の被試験デバイスに割り当てられるように、かつ
前記共有メモリの第2の部分が、前記テストランの第2の部分中に所与の被試験デバイスに割り当てられるように、
前記テストラン中に前記所与の被試験デバイスに対する前記共有メモリの部分の割り当てを変更するように構成されている、
請求項19~27のいずれか一項に記載の自動試験機器。
【請求項29】
前記自動試験機器が、前記被試験デバイスが前記共有メモリの別の部分にアクセスしている間に、前記共有メモリの現在使用されていない部分を変更して、新しいテストケースプログラムを設定するように構成されている、
請求項19~28のいずれか一項に記載の自動試験機器。
【請求項30】
前記自動試験機器が、前記被試験デバイスが前記共有メモリの他の部分にアクセスしている間に、前記被試験デバイスによって前記共有メモリに記憶されたデータを前記共有メモリから読み出すように構成されている、
請求項19~29のいずれか一項に記載の自動試験機器。
【請求項31】
前記自動試験機器が、テスト結果を得るために、前記被試験デバイスによって前記共有メモリに記憶された前記データを分析するように構成されている、
請求項30に記載の自動試験機器。
【請求項32】
処理ユニット並びにプログラム及び/又はデータメモリを含む被試験デバイスをテストするための方法であって、
前記方法が、第1のインターフェースを使用して前記被試験デバイスにプログラムをアップロードすることを含み、
前記第1のインターフェースを介して前記被試験デバイスにアップロードされた前記プログラムが、前記被試験デバイスによる実行のために、前記第1のインターフェースよりも高いデータレートを含む第2のインターフェースを介して追加のプログラムコード及び/又はデータをロードするように前記被試験デバイスを構成する、
方法。
【請求項33】
コンピュータプログラムがコンピュータ上で実行されるときに、請求項32に記載の方法を実行するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明による実施形態は、処理ユニット及びメモリを含む被試験デバイスをテストするための自動試験機器に関する。メモリは、プログラム及び/又はデータメモリを含み得る。
【0002】
本発明による更なる実施形態は、テストコントローラ、1又は複数のコンピュータインターフェース、及び共有メモリを含む自動試験機器に関する。
【0003】
本発明による更なる実施形態は、被試験デバイス(DUT)をテストするための方法に関する。
【0004】
本発明の実施形態は、概して、デジタル半導体デバイスのテストに関し、より具体的には、デバイス製造中のシステムタイプテストに関する。
【0005】
本発明による更なる実施形態は、オンチップシステムテストのためのメモリ拡張方法に関する。
【背景技術】
【0006】
デジタル半導体デバイスの製造テストには、構造テスト手法が広く適用されている。しかしながら、これらのテストは、マルチIPデジタル半導体設計における特定の複雑な機能実装形態又は知的財産(IP)ブロックに焦点を当てている。したがって、異なるIPソース及び/又はベンダから生じ得るIPブロックは、それ自体、通常、構造的なテスト容易化設計(design-for-test)技法の助けを借りて構造的に十分にテスト可能である。これらの構造テストは、ロジック機能をテストするものであり、テストモードで実行される。
【0007】
ミッションモード及び/又は動作モードにあるデジタル半導体設計の最終的なアプリケーションでは、デバイスは通常、又は主に、テストモードではなく、ミッションモードで動作する。
【0008】
半導体がシステムオンチップ(SOC)又はシステムインパッケージ(SIP)である場合、内部処理ユニット及び/若しくは外部処理ユニット又は中央処理ユニット(CPU)は、コマンド又はプログラムコードを実行して、IPブロック間で交換されるデータと協働することができる。IPブロックの相互作用により、クロスIPの誤った挙動の新しいメカニズムが導入される虞がある。これらは、設計関連及び/又はプロセス関連のメカニズムであり得る。
【0009】
新しい設計の最初のシステム起動は、設計エラーを見つけることを目的としているが、更に多くの半導体製造業者が、プロセスに関連する欠陥を見つけるために、デバイス製造中にシステムタイプテストを確立することに取り組んでいる。このテスト工程では、内部通信を確立し、又はクロスIP機能を証明するために、ミッションモードの動作が必要である。
【0010】
SOC設計又はSIP設計の一般的な基本要素は、例えば、処理ユニット(PU)、命令及び/又はデータ用のキャッシュメモリ(L2キャッシュなど)などのコンピュータインフラストラクチャ、周辺機器のロジック、設計固有及び/又はカスタムのIPブロックである。
【0011】
製造テスト段階では、これらのSOCチップが設計されているシステムは未完成である。外部メモリ、大容量ストレージ、電力管理部などの構成要素は、かかる構成要素が後の製造段階で、例えば、アプリケーションボードにおけるパッケージング又はアセンブリ中に追加され得るので、部分的にのみ利用可能である。
【0012】
したがって、例えば、ウェハレベルで処理ユニット上で実行されるプログラムコードのストレージは、極めて制限されており、それは、メモリとして機能するように再構成され得る小規模なメモリバンク及び/又はキャッシュメモリのような、オンチップのメモリリソースに制限される。つまり、これらのリソースに適合させるためには、テストプログラムコード及び処理対象データを極めて小規模にする必要がある。テストコンテンツをより小規模な断片に分離するなど、この制限に対処する方法を見つける必要がある。
【0013】
オフチップメモリインターフェースは、通常、ウェハプローブテストの挿入時には使用できない。それらは、広帯域幅のバス、非常に短いトレース、及び/又は通常1cm未満のワイヤ長を要する往復時間を必要とする。更に、これらのメモリインターフェースは通常、構造テストのテストポートとして再利用されるため、更に多くのピンが必要になる。メモリ機能を自動試験機器(ATE)に統合することでは、広いバスの必要性、特に非常に短いトレース及び/又は往復時間の必要性が適切に提供され得ないため、限られた支援しか提供しない。
【0014】
ペリフェラルコンポーネントインターフェースエクスプレス(PCIe(商標))、ユニバーサルシリアルバス(USB)、シリアルペリフェラルインターフェース(SPI)のような高速入力/出力(HSIO)バスは、帯域幅は狭いが、高速である。処理ユニットのデバッグポートの場合と同様に、パラメトリック信号検証の目的で、ATEカバレッジが可能であり、ATE業界で広く使用されている。
【0015】
RAMメモリの利用可能量を拡張するために、一部の設計は、特別なテスト容易化設計(DfT)ハードウェアを有することが公知であり、キャッシュアルゴリズムをオフにするなどして、L2キャッシュメモリを追加のRAMとして再利用できる。
【0016】
テストケースプログラムのみ、又はそれを排他的に実行するためにオンダイRAMを使用することで、サイズに制限が生じる。更に、実行が開始され得る前に、プログラムを完全にロードする必要がある。したがって、JTAG及び/又は別のデバッグポートを介したロード時間は、比較的制限されたものとなる。更に、デバッグポートメカニズムを介したテスト結果への同様の間接的なアクセスが必要である。
【0017】
L2キャッシュメモリをRAMとして転用してRAMサイズの拡張を有効にするには、特別なDfTが必要である。キャッシュ機能は、いわゆるキャッシュラインの開始アドレス及びキャッシュラインデータを記憶することを必要とし、連続的なメモリ領域が形成される必要があるが、DfTでは、プログラムコードが自動的に上書きされることを防止するために、これらのメカニズムをオフにする必要がある。このオプションは公開されているが、その複雑性のために、ほとんど観測されておらず、又は適用されていない。
【0018】
RAM、ROM、フラッシュROMなどの外部メモリモジュールをオンボードで使用すると、デバイスピンの使用率が高くなるが、これは、テストアクセスに使用不可能なものであり、構造テストギャップを生じさせる。更に、このオプションには、回路の検証、プログラムコンテンツの検証及び/又は交換など、高度なメンテナンス及び/又は診断作業が必要である。更に、デバッグアクセスポートと組み合わされない場合、このオプションにより、テスト結果の可視性が限定される。これは、サマリが単一の被試験デバイス(DUT)ビット上でシグナリングされることを意味している。
【0019】
半導体デバイスは、そのミッションモードと比較して、例えばテストモードにおける電力消費に関して様々な特性を示すことが周知であるため、第2のインターフェースを介してDUTにアップロードされたプログラムは、DUTに対して機能テストを実行することが望ましい。
【0020】
したがって、DUTの機能テスト中にDUTのメモリのサイズ及び/若しくは可用性を増大させることを可能にし、かつ/又は、DUTとATEとの間のより高速な及び/若しくは監視された及び/若しくは保護された通信を可能にするコンセプトが必要とされている。
【0021】
この目的は、独立請求項の主題によって解決される。
【発明の概要】
【0022】
本発明の一実施形態(例えば、請求項1を参照)は、処理ユニット並びにプログラム及び/又はデータメモリを含むDUTをテストするためのATEであり、処理ユニットは、プログラム及び/又はデータメモリからのコードを実行することができる。自動試験機器は、例えば、デバッグインターフェース又はデバッグアクセスポート(DAP)などの第1のインターフェース、又は外部制御のために処理ユニットにアクセスできる汎用インターフェースを使用して、プログラムをDUTにアップロードするように構成される。
【0023】
第1のインターフェースの典型的な使用事例は、ソフトウェアデバッグであり、これは通常、極めて動作が遅いものである。本発明の場合、第1のインターフェースは、例えば、内部DUT機能へのアクセスを可能にするインターフェースなどの、テスト実行のためのATEアクセスであり得る。
【0024】
第1のインターフェースを介してDUTにアップロードされたプログラムは、追加の通信のために、例えば第1のインターフェースのデータレートよりも高い(又ははるかに高い)、より高いデータレートで(例えばはるかに高いデータレートで)動作する第2のインターフェースを開放するようにDUTを構成する。
【0025】
例えば、DUT上でプログラムをアップロードして実行するように構成されたATEは、より高いデータレートを有し得る第2のインターフェースを開放することができ、それにより、DUTのテストに費やされる時間を短縮することができる。第2のインターフェースは、更に、プログラム及び/若しくはデータメモリとして機能する可能性を有し、かつ/又は第1のインターフェースを使用して利用できない他の機能を提供し得る。
【0026】
この実施形態は、第1の比較的低速のインターフェースを介してDUTにプログラムを提供することによってテストを加速することができ、これにより、例えば何らかの構成及び/又はドライバソフトウェアを必要とし得る第2の比較的高速のインターフェースが開放されるという着想に基づいている。
【0027】
したがって、第2のインターフェースは、ATE若しくはテスタとDUTとの間の通信をサポートすることができ、かつ/又はDUTが、例えばテスタによって提供され得、例えばテストを実行するときに有用であり得るメモリにアクセスすることを可能にし得る。
【0028】
しかしながら、第2のインターフェースは、電源投入時に動作可能でないか、又は完全に動作可能ではない場合があるが、ソフトウェア-ドライバ構成手順なしで、かつ/又はドライバソフトウェアなしで利用可能な単純なインターフェースであり得る第1のインターフェースを使用して、テスタによってアップロードされたプログラムは、第2のインターフェースをアクティブ化し、それによって、改善されたテストを可能にし得る。初期プログラムコードをDUTメモリにダウンロードするために第1のインターフェースを使用することは、チップ上に存在し得るワンタイムプログラマブルROMを使用することができないという問題、すなわち、通常、製造フローの後の段階でアプリケーションROMコードでプログラムされ、それにより、セキュリティ上の理由からも、ATEとの相互作用のために第2のデバイスを構成するために使用することができないという問題にも対処する。
【0029】
結論として、第2のインターフェースを作動させるプログラムをDUTに提供するために第1のインターフェースが必要とされる2ステップ手順を使用することにより、DUTは、複雑なテストを可能にするために、外部メモリにアクセスできる状態にすることができる。
【0030】
実施形態(例えば、請求項2を参照)によれば、第1のインターフェースを介してDUTにアップロードされたプログラムは、以下の工程のうちの1又は複数を実行する。
・アップロードされたプログラムは、第2のインターフェースを介して追加のプログラムコード及び/又はデータをロードするために、DUT及び/又はDUTを使用する接続ブロック、例えばDUTのメモリを構成する。第2のインターフェースは、プログラムがDUTによって実行される場合、例えば、プログラムが自動試験機器の共有メモリから実行される場合、より高い(第1のインターフェースのデータレートよりも高い)データレートを含んでもよく、又はそれにより通信してもよい。第2のインターフェースは、更に、プログラム及び/若しくはデータメモリとして機能する可能性を有し、かつ/又は第1のインターフェースを使用して利用できない他の機能を提供し得る。
・アップロードされたプログラムは、1又は複数のプログラムの実行を制御する。
・アップロードされたプログラムは、DUTのレジスタを所望の値に設定する。
・アップロードされたプログラムは、ランダムアクセスなどのDUTのメモリアクセスを構成する。
【0031】
アップロードされたプログラムは、DUTを構成するように構成され、これには、追加のプログラム及びデータのロード、1又は複数のプログラムの実行、レジスタ値の設定、及びDUTのメモリアクセスが含まれ得る。DUTを構成することは、DUTとATEとの間のより高速な通信を設定するか、又は共有メモリをマッピングするという利点を有し得、その結果、共有メモリからプログラムを実行し、かつ/又は共有メモリからデータを読み出し/共有メモリにデータを書き込むことができる。
【0032】
好ましい実施形態(例えば、請求項3を参照)では、第1のインターフェースを介してDUTにアップロードされたプログラムは、メモリマッピングを使用して第2のインターフェースにアクセスするようにDUTを構成するように構成される。これは、例えば、DUTのメモリマッピング制御レジスタに適切な値を書き込むことによって実現できる。そして、これは、例えば、第2のインターフェースを介してDUTに結合されたATEの共有メモリのコンテンツが、DUTの処理ユニットにはメモリとして、例えばDUTのシステムバスに接続されたメモリとして見えるという結果になり得る。これにより、DUTのアドレス指定可能なメモリを拡張することができる。
【0033】
実施形態(例えば、請求項4を参照)によれば、第1のインターフェースを介してDUTにアップロードされたプログラムは、DUTの処理ユニットによってアドレス指定可能なメモリ範囲のうちのメモリサブ範囲を第2のインターフェースへのアクセスに割り当てるようにDUTのリソースマネージャを構成するように構成される。プログラムは、第2のインターフェースを介してDUTに結合されたATEの共有メモリのコンテンツが、割り当てられたメモリサブ範囲内のメモリとしてDUTの処理ユニットに見えるように、リソースマネージャを構成することができる。これにより、DUTのメモリを拡張することができる。
【0034】
好ましい実施形態(例えば、請求項5を参照)では、DUTにアップロードされたプログラムは、適切なアプリケーションプロトコルを利用して、クライアント又はホストのいずれかとしてATEと通信して、その相手、すなわちATEとデータを交換するように構成される。
【0035】
例えば、交換されるデータには、特に、コンパイルされたコードスニペット、設定データ及び構成データ、測定結果データ、及び/又はレジスタ値が含まれ得る。DUTは、独立したコンピュータシステムを形成するように構成されている。
【0036】
実施形態(例えば、請求項6を参照)によれば、ATEは、第1のインターフェース及び/又は第2のインターフェースに対してそれ自体を認証及び/又は認可するように構成又は要求される。
【0037】
例えば、ATEは、暗号化手段及び/又は秘密クレデンシャルを使用して自身を認証及び/又は認可するように構成されている。例えば、認証は、例えば通信を確立するために必要なアイデンティティを証明するために必要になる場合がある。例えば、デバイスの特権を取得するために、例えば、別様で制限された機能にアクセスするために、認可が必要になる場合がある。例えば、必要な認証及び/又は認可により、セキュリティが向上する。
【0038】
好ましい実施形態(例えば、請求項7を参照)では、ATEは、第1のインターフェース及び/又は第2のインターフェースを使用することにより、暗号化された方法及び/又は変更に対して保護された方法で、DUTと通信するように構成又は要求される。
【0039】
例えば、通信は、ハッシュなどの標準及び/又は独自のデータ整合性チェック方法を使用して、変更から保護されるように構成される。例えば、通信は、標準及び/又は独自の暗号化スキーム及び/又は方法を使用して暗号化されるように構成される。保護された通信及び/又は暗号化された通信を使用することで、セキュリティが向上する。
【0040】
実施形態(例えば、請求項8を参照)によれば、ATEは、第1のインターフェース及び/又は第2のインターフェースを使用することによって、標準及び/又は独自の損失性及び/又は無損失性のコンパクション手段を使用することによって圧縮された状態でDUTと通信するように構成又は要求され、自動試験機器は、データを圧縮してDUTに送信し、DUTから受信したデータを解凍するように構成される。
【0041】
圧縮データの送信及び/又は受信は、非圧縮データの送信及び/又は受信よりも時間効率が高くなる。
【0042】
好ましい実施形態(例えば、請求項9を参照)では、第1のインターフェース及び/又は第2のインターフェースを介してDUTにアップロードされたプログラムは、コンパクション方法及び/又はデコンパクション方法を実行して、圧縮及び/又は解凍を実行するためのプログラムコードを含む。
【0043】
例えば、コンパクション方法及び/又はデコンパクション方法は、テストモードでのみ使用され、DUTは、ミッションモード及び/又は動作モードでコンパクション方法及び/又はデコンパクション方法を含む義務を負わずともよい。
【0044】
実施形態(例えば、請求項10を参照)によれば、ATEは、DUTの処理ユニットに、ATEの共有メモリに記憶され、第2のインターフェースを介してDUTにロードされるテストケースコード及び/又はテストケースプログラムを実行させるように構成される。
【0045】
例えば、テストケースコードは、DUTの処理ユニットには、DUTの処理ユニットによってアドレス指定可能なメモリ範囲のうちのメモリサブ範囲内に配置されているように見える。例えば、テストケースコードは、DUTの処理ユニットによって実行されたときに、DUTの1又は複数の機能をテストするように適合されている。ATEの共有メモリにテストケースコードを記憶及び/又は実行すると、テストモードで必要なDUTメモリが削減される。また、ATEは、ATEの共有メモリに記憶されているテストケースプログラムを容易に管理できる。
【0046】
好ましい実施形態(例えば、請求項11を参照)では、ATEは、ATEの共有メモリに記憶され、第2のインターフェースを介してDUTにロードされるテストケースコードをDUTが実行する前に、キャッシュ又はキャッシュ領域の無効化を引き起こすように構成される。第2のインターフェースは、更に、プログラム及び/若しくはデータメモリとして機能する可能性を有し、かつ/又は第1のインターフェースを使用して利用できない他の機能を提供し得る。
【0047】
テストモードにおけるキャッシュ又はキャッシュ領域の無効化は、例えば、キャッシュ及び/又はキャッシュ領域がテストモードのプログラム及び/又はデータから解放されたままであり得、キャッシュ及び/又はキャッシュ領域中のデータがテストプロセスによって上書きされ得ないように、テストモードとミッション及び/又は動作モードとを分離することをもたらし得る。
【0048】
キャッシュ又はキャッシュ領域の無効化の更なる利点は、例えば、テストプロセス中に生成されたデータ又は補助データが共有メモリに記憶され得、例えば、ATEによって評価され得ることであり得る。これらのデータをテスト及び/又は評価することで、例えば、入力データの量及び/又はタイプを改善することにより、テストプロセスの質的な改善をもたらすことができる。
【0049】
実施形態(例えば、請求項12を参照)によれば、第1のインターフェースを使用してDUTにアップロードされたプログラムは、DUTの処理ユニットを初期化し、DUTの第2のインターフェースを初期化するように構成される。更に、プログラムは、ATEの共有メモリに接続するようにDUTの第2のインターフェースを構成し、例えばメモリマッピングを使用することによって、DUTの処理ユニットによって使用可能なメモリ範囲としてATEの共有メモリのメモリ範囲を提供するように構成される。共有メモリ範囲は、例えば、メモリアクセス命令及び/又はオペコードを使用することによってアクセス可能であり得る。
【0050】
共有メモリの利点は、例えば、ATE及びDUTの両方がメモリへのアクセスを有し、それにより、ATEとDUTとの間のデータの保存及び送信/受信の両方の必要性を排除することにより、かつATEがリアルタイムに近い情報をオンザフライで、すなわち、共有メモリのコンテンツが変化する度に交換できるようにすることにより、テストを高速化することであり得る。
【0051】
好ましい実施形態(例えば、請求項13を参照)では、第1のインターフェースを使用してDUTにアップロードされたプログラムは、ATEのメモリのメモリ範囲がマッピングされるメモリ範囲を、被試験デバイスのL2キャッシュなどのキャッシュによってキャッシュされるように初期化するように構成される。
【0052】
これは、例えば、第2のインターフェースによって提供される拡張メモリが、アクセス時間が遅くなる可能性があることを除いて、通常のシステムメモリとしてDUTの処理ユニットに提示されることがもたらされ得る。
【0053】
第2のインターフェースは、更に、プログラム及び/若しくはデータメモリとして機能する可能性を有し、かつ/又は第1のインターフェースを使用して利用できない他の機能を提供し得る。
【0054】
これは更に、例えば、ATEとDUTとの間の共有メモリをもたらすことができ、これは、例えば、ATE及びDUTの両方がメモリへのアクセスを有し、それにより、ATEがリアルタイムに近い状態でオンザフライで、すなわち共有メモリのコンテンツが変化する度にテストすることを可能にするという利点を有し得る。
【0055】
実施形態(例えば、請求項14を参照)によれば、第1のインターフェースを使用してDUTにアップロードされたプログラムは、ATEの共有メモリのメモリ範囲がマッピングされるメモリ範囲を初期化するように構成され、それにより、第2のインターフェースによって提供される拡張メモリが、アクセス時間が遅くなる可能性があることを除いて、ランダムアクセスメモリなどの通常のシステムメモリとしてDUTの処理ユニットに提示される。被試験デバイスのメモリ領域にマッピングされ得る「ホスト」のメモリは、テストプログラムが妥当な速度で実行され得るようにキャッシュされる。
【0056】
これは、例えば、第2のインターフェースによって提供される拡張メモリが、アクセス時間が遅くなる可能性があることを除いて、通常のシステムメモリとしてDUTの処理ユニットに提示されることがもたらされ得る。
【0057】
これは更に、例えば、ATEとDUTとの間の共有メモリをもたらすことができ、これは、例えば、ATE及びDUTの両方がメモリへのアクセスを有し、それにより、ATEがリアルタイムに近い状態でオンザフライで、すなわち共有メモリのコンテンツが変化する度にテストすることを可能にするという利点を有し得る。
【0058】
好ましい実施形態(例えば、請求項15を参照)では、第1のインターフェースを使用してDUTにアップロードされたプログラムは、例えば、プログラム実行の結果を第2のインターフェースを介して自動試験機器の共有メモリに記憶するために、DUTにプログラム実行の結果を第2のインターフェースを介してATEに転送させるように構成される。
【0059】
共有メモリの利点は、例えば、ATE及びDUTの両方がメモリへのアクセスを有し、それにより、ATEとDUTとの間のデータの保存及び送信/受信の両方の必要性を排除することにより、かつATEがリアルタイムに近い状態でオンザフライで、すなわち、共有メモリのコンテンツが変化する度にテストすることを可能にすることにより、テストを高速化することであり得る。
【0060】
実施形態(例えば、請求項16を参照)によれば、ATEは、第2のインターフェースを介してATEのメモリに記憶された結果に基づいてデータ分析を実行するように構成され、第2のインターフェースは、プログラム及び/若しくはデータメモリとして機能する可能性を更に有し、かつ/又は第1のインターフェースを使用して利用可能でない他の機能を提供し得る。
【0061】
ATEは、第2のインターフェースを介してATEのメモリに記憶された結果に基づいて、例えば、パス/フェールの計算などのDUTの特性評価を実行するように更に構成され得る。
【0062】
ATEは、例えば、DUTを特性評価するために、かつ/又はパス/フェールの検出を実行するために、第2のインターフェースを介してATEのメモリへのデータアクセスパターンを評価するように更に構成され得る。
【0063】
ATEは、DUTを特性評価するために、第2のインターフェースを介して被試験デバイスから受信したオンザフライ情報を分析するように更に構成され得る。
【0064】
好ましい実施形態(例えば、請求項17を参照)では、ATEは、例えば、マルチコアDUTの場合に、DUTに複数のテストケースプログラムを順次及び/又は並列に実行させるように構成される。これは、例えば、異なるストレスパターンを生成し、潜在的に、より現実的であり得る。テストケースプログラムは、第2のインターフェースを介してDUTがアクセスするATEの共有メモリの様々なメモリ範囲に記憶される。例えば、テストケースの並列実行及び/又は評価には、様々なコアで様々なテストを実行することにより、テストプロセスを高速化するという利点を有し得る。
【0065】
実施形態(例えば、請求項18を参照)によれば、第1のインターフェースを介してDUTにアップロードされたプログラムは、所与のテストケースプログラムの実行中に第2のインターフェースを介して所与のテストケースプログラムのプログラムコード及び/又はデータをロードするようにDUTを構成するように構成され、それにより、DUTのメモリを拡張し、例えば、テストモードではなく動作モードでキャッシュを使用及び/又はテストすることができる。
【0066】
例えば、DUTの処理ユニットによって新しいオペコードが必要とされる度に、例えば、プログラムは、第2のインターフェースに結合された共有メモリによってカバーされるメモリ領域からプログラムコード及び/又はデータをロードする。
【0067】
例えば、オペコードがDUTのキャッシュメカニズムによってフェッチされる度に、例えば、プログラムは、DUTの処理ユニットによって必要とされ得るか、又は必要とされるであろうという想定の下で、第2のインターフェースに結合された共有メモリによってカバーされるメモリ領域からプログラムコード及び/又はデータをロードする。
【0068】
実施形態(例えば、請求項19を参照)によれば、ATEは、テストコントローラを含む。更に、ATEは、DUTにテストデータを提供するために、デバッグインターフェースなどの第1のインターフェースを含む。更に、ATEは、テストコントローラによってアクセス可能であり、例えば、第2のインターフェースを介してDUTによってアクセス可能である共有メモリを含む。
【0069】
ATEは、第1のインターフェース又は第2のインターフェースを介してDUTにテストデータを提供し得る。更に、例えば、ATEは、テストコントローラ及び共有メモリを含み得る。DUT及びテストコントローラの両方が共有メモリにアクセスすることができ、これによりDUTとATEとの間のデータ交換が改善される。更に、これにより、共有メモリ内のデータが変化する度にATEがテストを実行することができる、リアルタイムに近いオンザフライテストがもたらされ得る。
【0070】
好ましい実施形態(例えば、請求項20を参照)では、ATEは、テストコントローラを含む。更に、ATEは、DUTにテストデータを提供するために、デバッグインターフェースなどの第1のインターフェースを含む。更に、ATEは、テストコントローラによってアクセス可能であり、DUTによって、例えば、第1のインターフェースよりも高いデータレートを含む第2のインターフェースを介してアクセス可能である共有メモリを含む。高速インターフェースであり得る第2のインターフェースは、例えば、テスト用に構築され得る、高速データレートで実行されている別のデバッグインターフェースによって構成され得る。
【0071】
更に、第2のインターフェースは、限定はしないが、PCIe又はUSBなど、アプリケーションモードにおけるDUTのエンドアプリケーションに典型的なインターフェースであり得る。このオプションは、DUTテストのシステムテストカバレッジにも利点をもたらし得る。
【0072】
実施形態(例えば、請求項21を参照)によれば、ATEは、共有メモリへのDUTのアクセスを可能にするように構成された高速シリアルインターフェースを含む。
【0073】
高速シリアルインターフェースは、1つのシリアルデータチャネルを含み得るか、又は2つ以上のシリアルデータチャネルを含み得、第2のインターフェースとして機能し得る。高速シリアルインターフェース(HSIO)は、ATEの共有メモリへのDUTのアクセスを処理するように構成されたホストインターフェースクライアントでもあり得る。
【0074】
更に、HSIOインターフェースは、テストアプリケーション又は最終アプリケーションの帯域幅のニーズに合わせて拡張できる。これは、インターフェースのテストカバレッジにとって重要であり得る。
【0075】
好ましい実施形態(例えば、請求項22を参照)では、シリアルインターフェースは、PCI Express(商標)又はPCIe(商標)などのPCI-Expressインターフェース又はPCI-Express準拠インターフェースである。
【0076】
PCI Express(商標)及び/又はPCIe(商標)インターフェースのような一般的なシリアルインターフェースを使用することは、より多様な使用可能な既存のコネクタ及び/若しくはインターフェース、並びに/又は既存のインターフェースを使用する利点をもたらし得、これにより、複雑性及び/又はコストが低減され得る。
好ましい実施形態(例えば、請求項23を参照)では、シリアルインターフェースは、ユニバーサルシリアルバス(USB)インターフェース、例えば、USB1.0インターフェース、若しくはUSB1.1インターフェース、若しくはUSB2.0インターフェース、若しくはUSB3.0インターフェース、若しくはUSB3.1インターフェース、若しくはUSB3.1Gen1インターフェース、若しくはUSB3.1Gen2インターフェース、若しくはUSB3.2インターフェース、若しくはUSB4インターフェース、又は、USB実装フォーラムによって標準化され、本明細書で説明されているインターフェースと後方互換性のあるその他のインターフェースである。
【0077】
異なるバージョンのUSBインターフェースのような一般的なシリアルインターフェースを使用することは、より多様な使用可能な既存のコネクタ及び/又は既存のインターフェースを使用する利点をもたらし得、これにより、複雑性及び/又はコストが低減され得る。
【0078】
好ましい実施形態(例えば、請求項24を参照)では、シリアルインターフェースは、サンダーボルト、又はイーサネット(登録商標)、又はIEEE-1394、IEEE-1500、IEEE-1687、IEEE-1149.10インターフェースなどのIEEE-1149、又はSATAインターフェースであり、これは、例えば、SATAインターフェース、若しくはSATA Expressインターフェース、若しくはeSATAインターフェース、若しくはミニSATAインターフェース、又はこれらのインターフェースと後方互換性のある任意の他のインターフェースであり得る。更に、シリアル又は第2のインターフェースは、第1のインターフェースの一部であり得る。
【0079】
概して言えば、例えば、シリアルインターフェースは、他のHSIOインターフェースと同様に、データの単方向及び/又は双方向の交換に適しており、これには、特殊なデバッグ及びテストインターフェースも含まれ得る。
【0080】
サンダーボルト、イーサネット、SATA/eSATA又はIEEE-1394、IEEE-1500、IEEE-1687、IEEE-1149インターフェースのような一般的なシリアルインターフェースを使用することは、より多様な使用可能な既存のコネクタ及び/又は既存のインターフェースを使用する利点をもたらし得、これにより、複雑性及び/又はコストが低減され得る。
【0081】
好ましい実施形態(例えば、請求項25を参照のこと)では、ATEは、共有メモリが複数のDUTによってアクセス可能であるように構成される。複数のDUT間でメモリを共有することにより、DUTを並行してテストする場合に使用されるメモリ及び/又はテストコントローラのコスト及び/又は数を低減することができる。所望のテスト目的に応じて、各DUTは、完成した共有メモリ又は制限された領域のみにアクセスすることができる。
【0082】
好ましい実施形態(例えば、請求項26を参照)では、ATEは、共有メモリに結合された、例えば、ホストインターフェースクライアントなどの複数のインターフェースを含み、複数のDUTによる共有メモリへのアクセスを可能にする。
【0083】
共有メモリに結合された複数のインターフェースにより、複数のDUTによる共有メモリへのアクセスが可能となる。複数のDUT間でメモリを共有することにより、いくつかのDUTを並行してテストする場合に使用されるメモリ及び/又はテストコントローラのコスト及び/又は数を低減することができる。
【0084】
実施形態(例えば、請求項27を参照)によれば、テストコントローラは、共有メモリのどの部分又はどのメモリ範囲がDUTによって現在アクセス可能であるかを選択するように構成される。テストコントローラは、新しいテストケースプログラムが実行されるときに選択を変更するように最終的に構成され得る。テストコントローラは、共有メモリのメモリ範囲などの部分を選択し、それを複数のDUTに割り当てるように構成できる。
【0085】
共有メモリのメモリ範囲を動的に割り当てると、適合型テストプロセスが発生し、メモリのオーバーヘッドが削減され得る。テストは、よりメモリ効率的であり得、それにより、例えば、DUTを並行してテストするとき、メモリ不足のリスクが低減される。
【0086】
実施形態(例えば、請求項28を参照)によれば、テストコントローラは、共有メモリの第1の部分がテストランの第1の部分中に所与のDUTに割り当てられ、かつ共有メモリの第2の部分がテストランの第2の部分中に所与のDUTに割り当てられるように、テストラン中に所与のDUTへの共有メモリの部分の割り当てを変更するように構成される。
【0087】
共有メモリの異なるメモリ範囲を異なるテストプロセスに割り当てることは、異なるテストケース及び/又は異なるテストケースからのデータが互いに相互作用することができないように、テストプロセスを分離することをもたらし得る。
【0088】
実施形態(例えば、請求項29を参照)によれば、ATEは、DUTが共有メモリの別の部分にアクセスする間に、共有メモリの現在使用されていない部分を変更して、新しいテストケースプログラムを設定するように構成される。
【0089】
共有メモリの未使用のメモリ範囲を使用するために新しいテストケースを設定することで、テストプロセスが高速化され得る。テスト目的のために全ての利用可能なメモリを使用することで、テストプロセスがより時間効率的及び/又はメモリ効率的となる。
【0090】
実施形態(例えば、請求項30を参照)によれば、ATEは、DUTが共有メモリの別の部分にアクセスしている間に、DUTによって共有メモリに記憶されたデータを共有メモリから読み出すように構成される。
【0091】
テストケースが互いに分離されると、すなわち、異なるテストケースに対して共有メモリの別個のメモリ部分を使用すると、過去のテスト結果を読み出して評価することが実行され得る一方で、他のテストがDUT上で実行され、すなわち、DUTは、共有メモリの他の部分から/他の部分上にデータを読み出し/書き込みしている。
【0092】
実施形態(例えば、請求項31を参照)によれば、ATEは、DUTによって共有メモリに記憶されたデータを分析して、パス/フェール情報又はDUTの性能に関する定量的情報などのテスト結果を得るように構成される。
【0093】
テストデータは、DUTに関するテスト結果、定性的情報及び/又は定量的情報(パス/フェール情報及び/又は測定値であり得る)を取得するために、ATEによって分析され得る。テスト結果に応じて、DUTの品質を決定することができる。
【0094】
本発明による更なる実施形態により、それぞれの方法が作成される。
【0095】
しかし、その方法は、対応する装置と同じ考察に基づいていることに留意する必要がある。更に、方法は、装置に関して本明細書で説明される機能及び詳細のための特徴のいずれかによって、個々に、かつ組み合わせて補足され得る。
【図面の簡単な説明】
【0096】
以下において、本開示の実施形態は、図を参照してより詳細に説明される。
【
図1】ATE並びに処理ユニット(PU)、メモリ、第1のインターフェース、及び第2のインターフェースを有するDUTの一実施形態を含むテスト構成の概略図を示す。
【
図2】DUTと、第1のインターフェース、テストコントローラ、並びにテストコントローラ及びDUTによってアクセス可能なメモリを有するATEの一実施形態とを含むテスト構成の概略図を示す。
【
図4】例示的なDUT PUメモリマップを備えた、ATE及びDUTを有する従来のテスト構成の概略図を示す。
【
図5】共有メモリ及びDUTを備えたATEを有し、共有メモリを含む例示的なDUT PUメモリマップを備えた、従来のテスト構成の概略図を示す。
【
図6】追加のデータ及び/又はプログラムコードをロードするようにDUTを構成するために、第1のインターフェースを介してDUTにプログラムをアップロードする方法のフローチャートを示す。
【発明を実施するための形態】
【0097】
以下では、様々な発明の実施形態及び態様を説明する。また、更なる実施形態は、添付の特許請求の範囲によって定義される。
【0098】
請求項によって定義される任意の実施形態は、本明細書に記載される詳細(特徴及び機能)のいずれかによって補足され得ることに留意されたい。また、本明細書で説明される実施形態は、個々に使用されてもよく、所望により、特許請求の範囲に含まれる詳細(特徴及び機能)のいずれかによって補足され得る。また、本明細書に記載されている個々の態様は、個々に又は組み合わせて使用できることに留意されたい。したがって、詳細は、該態様のうちの別の1つに詳細を追加することなく、該個々の態様の各々に追加され得る。本開示は、ATEにおいて使用可能な機能を明示的又は暗黙的に説明していることにも留意されたい。したがって、本明細書に記載される特徴のいずれも、ATEの文脈で使用することができる。
【0099】
更に、方法に関して本明細書に開示される特徴及び機能は、(かかる機能を実行するように構成された)装置においても使用され得る。更に、装置に関して本明細書に開示される任意の特徴及び機能もまた、対応する方法で使用され得る。換言すれば、本明細書に開示される方法は、装置に関して説明された特徴及び機能のいずれかによって補足され得る。
【0100】
本発明は、以下に与えられる詳細な説明及び本発明の実施形態の添付の図面からより完全に理解されるが、これらは、記載される特定の実施形態に本発明を限定すると解釈されるべきではなく、説明及び理解のためだけのものである。
【0101】
図1によるテスト構成
図1は、ATE110及びDUT120の一実施形態を含むテスト構成100の概略図を示している。
【0102】
DUT120は更に、処理ユニット130、メモリ140、第1のインターフェース150、及び第1のインターフェース150よりも高いデータレートを含む第2のインターフェース160を含む。例えば、処理ユニット、メモリ、第1のインターフェース及び第2のインターフェースは、1又は複数のバス又は相互接続構造を介して結合されてもよい。第1のインターフェース150及び第2のインターフェース160の両方がATE110に接続されている。ATE110は、DUT120にアップロードされるプログラム170を含む。
【0103】
ATE110は、第1のインターフェース150を使用してプログラム170をDUT120にアップロードするように構成され、第1のインターフェース150は、所望により双方向通信を可能にし得る。例えば、ATEは、潜在的に、第1のインターフェース150を介して、DUTステータス情報及び/又はDUT値並びに更なる情報を読み出してもよい。
【0104】
第1のインターフェース150を介してアップロードされたプログラム170は、追加の通信190のために第2のインターフェース160を開放及び/又は構成するようにDUT120を構成するように構成される。第2のインターフェース160は、例えば、低速インターフェース及び/又はデバッグインターフェースである第1のインターフェース150よりも高いデータレートか、又ははるかに高いデータレートで実行するように構成される。
【0105】
ATE110は、構成された第2のインターフェース160から、ATE110とDUT120との間の任意の追加の通信190が第1のインターフェース150を介するよりもはるかに高速であるという利点を得る。これは、プログラムコード及び/若しくはテストデータの送受信、並びに/又はテストプロセス自体の高速化を意味する。また、DUT120のメモリは、第2のインターフェースを使用して拡張することができる。
【0106】
図2によるテスト構成
図2は、
図1のATE110と同様のATE210、
図1のDUT120と同様のDUT220の一実施形態を含むテスト構成200の概略図を示している。
【0107】
ATE210は、テストコントローラ230、共有メモリ240、及び第1のインターフェース250を含む。更に、ATE210は、第1のインターフェース250を介してDUT220に接続されている。第1のインターフェース250は、必ずしも単方向である必要はなく、所望により双方向通信も可能にし得る。ATE210の共有メモリ240は、例えば、第2のインターフェースを介して、テストコントローラ230及びDUT220に接続されている。
【0108】
ATE210は、第1のインターフェース250を介してDUT220にテストデータ260を送信するように構成される。DUT220は、例えば、第1のインターフェース250よりも高いデータレートを有する第2のインターフェースを介して、共有メモリ240にアクセスすることができる。共有メモリ240は、ATE210のテストコントローラ230によってもアクセス可能である。
【0109】
図1で説明したように、ATE110は、DUT120の高速な第2のインターフェース160を構成するためにプログラム170をアップロードするように構成される。
【0110】
その結果、ATE210の共有メモリ240は、テストコントローラ230によって、かつDUT220の高速の第2のインターフェースを介してDUT220によってアクセス可能である。DUT220及びテストコントローラ230の両方は、共有メモリ240にデータを書き込んだり、かつ/又は共有メモリ240からデータを読み出したりすることができ、一方、ATE210はまた、第1のインターフェース250を介して、テストデータ260をDUT220に送信し、例えば、テストの実行を制御する。
【0111】
ATE210の共有メモリ240を使用することで、DUT220のメモリが拡張され、ATE210とDUT220との間でデータを送受信する必要がなくなる。代わりに、データは共有メモリ240上にコピーされ、共有メモリ240から読み出される。
【0112】
図3によるDUT
図3は、例えば、
図1のテスト構成100でテストされる典型的なDUT300を示している。DUT300又はSOC設計の典型的な基本要素は、処理ユニット、コンピュータインフラストラクチャ、周辺機器のロジック、及びシステムバス320によって接続された他のカスタムIPブロック360である。
【0113】
典型的な処理ユニットは、例えば、処理ユニット310、コプロセッサ313、又はデジタル信号プロセッサ(DSP)316などである。
【0114】
一般的なコンピュータインフラストラクチャは、例えば、レベル2キャッシュ(L2キャッシュ)330、SRAM333、NVRAM336、BOOT ROM339などである。
【0115】
典型的な周辺機器は、例えば、メモリインターフェース340、フラッシュメモリインターフェース343、デバッグDfTインターフェース349、PCIe、USBなどのホストインターフェース346である。
【0116】
通常、製造テスト段階では、これらのSOCチップが設計されているシステムは未完成である。外部メモリ又は大容量ストレージ340、電力管理部などの構成要素は、かかる構成要素が後の段階で、例えば、アプリケーションボードにおけるパッケージング又はアセンブリ中に追加され得るので、部分的にのみ利用可能である。
【0117】
機能テスト中、SOC設計のホストインターフェースは通常、ミッションモード及び/又は動作モードで動作する。
【0118】
ウェハレベルで処理ユニット310上で実行されるプログラムコードのストレージは極めて制限されており、例えば、小規模なメモリバンク333又は336のようなオンチップのメモリリソース、及びメモリとして機能するように再構成され得るキャッシュメモリ330に制限される。
【0119】
図1のATEと同様のATE110は、デバッグDfTインターフェース349を介してプログラムをアップロードするように構成されている。アップロードされたプログラムは、ホストインターフェース346を介して、例えば、ATEとDUTとの間の高速接続を可能にするPCIe又はUSBインターフェースを介して、DUT300とATEとの間の接続を開放及び/又は設定するように構成される。
【0120】
図4による従来のテスト構成
図4は、例示的な従来のテスト構成400を示している。このテスト構成は、
図3に示されるDUT300と同様のDUT420と、テストコントローラ430を有する
図1上のATEと同様のATE410とを含む。ATE410のテストコントローラ430は、そのデバッグDfTインターフェース440を介してDUT420に接続されている。
【0121】
図4は更に、例示的な処理ユニットメモリマップ450を示している。処理ユニットメモリマップ450は、例えば、コプロセッサ、DSP、及び/又はカスタムIPブロックなどの処理ユニット460のアドレスと、例えば、L2キャッシュ、NVRAM、BOOTRAM、SRAMなどのメモリユニット470のアドレスと、利用不能なフラッシュメモリ及び/又はメモリ若しくは大容量ストレージのアドレスとを含む。メモリユニット470は、L2キャッシュによってカバーされている。
【0122】
従来の解決策では、ATE410のテストコントローラ430は、デバッグDfTインターフェース440を介して、プログラムコード及び/又はDUT420上/DUT420からのテストデータをアップロード及び/又はダウンロードする。プログラムコード及び/又はテストデータは、メモリサイズの制限に準拠する必要がある。
【0123】
一部の解決策では、L2キャッシュをRAMとして転用することにより、RAMサイズを拡張することもできる。
【0124】
従来の解決策の限界は、DUT420のRAMサイズが小規模であり、デバッグDfTインターフェース440を介したATE410のテストコントローラ430とDUT420との間のアップロード及び/又はダウンロード速度が比較的遅いことである。
【0125】
従来のテスト中、SOC設計のホストインターフェースは、通常、ミッションモード及び/又は動作モードで動作しているが、本発明のテスト構成とは対照的に、ホストインターフェースには何も取り付けられていない。したがって、従来のテスト構成では、動作挙動をテスト容易化設計(DfT)の基本要素又は手法以外でテストすることができないので、それが無効になる可能性がある。従来のテスト構成と本発明のテスト構成との間の重要な相違点の1つは、本発明のテスト構成では、ATEがホストインターフェースを介してDUTに接続され、また、ATEがホストインターフェースを介したATEとDUTとの間の情報交換を介してホストインターフェースをテストしていることである。
【0126】
更に、従来の解決策は、本発明によって示されるようなオンザフライの外部分析及び監視能力を提供しない。
【0127】
図5によるテスト構成
図5は、例示的なテスト構成500を示している。テスト構成500は、
図1のATE110と同様のATE510の一実施形態と、
図3に示されるDUT300と同様のDUT520とを含む。ATE510は、テストコントローラ536及びATE処理ユニット533、ホストインターフェースクライアント549、及びアドレス仮想化546を用いた共有メモリ543を含む。共有メモリは、PCIe又はUSBなどのホストインターフェースクライアント549を介してテストコントローラ536及びDUT520によってアクセス可能である。ATE510のホストインターフェースクライアント549は、DUTのホストインターフェース523に接続されている。通常、インターフェースは、例えば、レイテイシ耐性を有するシリアルインターフェースである。
【0128】
図5は、例示的なメモリマップ550を更に示している。メモリマップは、例えば、コプロセッサ、DSP、及び/又は他のカスタムIPブロックなどの処理ユニット553のアドレスを含む。メモリマップは、SRAM、BOOT ROM、NVRAM、L2キャッシュ529、利用不能な大容量ストレージ及び/又はフラッシュメモリインターフェースなどのメモリユニット556のアドレス、並びに共有メモリのアドレスを更に含む。全てのメモリユニット556は、L2キャッシュ529によってカバーされ得る。
【0129】
ATE処理ユニット533及び/又はATE510のテストコントローラ536は、デバッグDfTインターフェース526を介してプログラムをDUT520にアップロードするように構成される。DUT520にアップロードされたプログラムは、DUTを初期化し、高速インターフェースを初期化及び構成し、ATE510をリンクパートナーとして設定し、共有メモリ543を初期化及び/又は構成し、L2キャッシュ529による共有メモリのキャッシングを初期化及び/又は構成するように構成される。次に、テストコントローラ536は、特定のテストケースを選択し、共有メモリ543のアドレス仮想化546を構成する。テストコントローラ536は、DUT520が、デバッグDfTインターフェース526を介して共有メモリ543に記憶されたテストケースを実行するように更に構成される。DUT520がテストケースを実行している間に、テストコントローラ536は、過去のテストの結果を分析し、現在のテストの実行を監視し、次のテストケースを選択し、かつ/又は、例えばDUT520の処理ユニットが例えば2つ以上のコアを有する場合には新たなテストケースを実行することができる。
【0130】
換言すれば、ATE510のテストコントローラ536及び/又はATE処理ユニット533は、より高速な第2のホストインターフェース523を介して共有メモリ543にアクセスするようにDUT520を構成するために、プログラムをDUT520にアップロードするように構成される。テストコントローラ536及び/又はATE処理ユニット533は更に、共有メモリ543のアドレス仮想化546を構成し、デバッグDfT526及び/又はホストインターフェース549、523を介してプログラムコード及び/又はテストデータを送信することによって、共有メモリ543上で選択されたテストケースをDUT520に実行させるように構成される。
【0131】
DUTによるテストの実行には、ATE側の仮想化は必要ない。DUTは「大きなメモリの湖(memory lake)」上で動作することもできるが、本発明の効率的なATEの観点から、テストケースの分離、並びに/又はATE側で並行して準備及び/若しくはDUT実行及び/若しくは結果分析を実行する能力により、ATEのより高いスループットが可能となる。
【0132】
換言すれば、本発明のATEは、以下の工程に従うように構成される。
【0133】
1.デバッグアクセスポート(DAP)又はデバッグDfTインターフェース526が使用され、リセット後にDUT520をホールド状態に保持する。
【0134】
2.DAP526は、テストコントローラ536及び/又はATE処理ユニット533によって使用されて、小規模なテスト実行可能プログラムをDUT520にロードし、それを実行して、
a.DUTデジタル半導体チップ及び/又は処理ユニットを初期化し、
b.HSIOインターフェース又はPCIeインターフェースなどのホストインターフェースを初期化及び構成し、ATEシステム510内の構成要素をリンクパートナーとして設定して、デジタル半導体システムメモリ及び/又は処理ユニットメモリの特定のメモリ範囲を提供し、
c.キャッシュされる「HSIOメモリ」を、例えば、同様にL2キャッシュ529によって、又は例えば処理ユニットによって初期化する。
【0135】
3.テストコントローラ536は、例えば、#3などの特定のテストケースを選択するように構成される。
【0136】
4.例えば、処理ユニットによってL2キャッシュを無効化及び/又はリセットする。
【0137】
5.DAP経由:処理ユニットが、例えば「HSIOメモリ」内のテストケースの開始アドレスを呼び出す。
【0138】
6.テストケースが実行され、処理ユニットなどによって「HSIOメモリ」にも結果が書き込まれる。
【0139】
7.プログラムフローは「デバッグ制御」に戻る。これは処理ユニットがDAPを待機することを意味する。
【0140】
8.より多くのケースが利用可能である場合、テストコントローラは、次のテストケースを選択し、項目4に進み、かつ/又はこのリスト内の工程4に戻るか、かつ/又は工程4からの工程を実行することができる。
【0141】
9.バックグラウンドで、すでに終了したテストケースの結果分析を開始することができる。更に、現在のテストケースの実行を監視することができる。次のデバイスのメモリイメージを必要に応じて準備及び/又は更新できる。これには、デュアルポートメモリをATEコントローラハードウェア及び/又は全てのATE処理ユニットに実装する必要がある。
【0142】
10.第2のインターフェースとして、又はATE側の共有メモリにアクセスするインターフェースとして使用されるHSIOインターフェースは、動作モードで完全にテストされ、動作挙動を診断することができ、予期しない動作状態を分析することができる。
【0143】
図6による方法
図6は、本発明の一実施形態による方法のフローチャート600を示している。この方法は、第1のインターフェースを介して、
図3のDUT300と同様に、プログラムをDUTにアップロードすること(610)を含む。この方法はまた、アップロードされたプログラムが、第2のインターフェースを介して追加のプログラムコード及び/又はデータをロードするようにDUTを構成する工程(620)を含む。
【0144】
この方法は、上記の実施形態と同じ考察に基づいている。また、これらの方法は、本明細書に記載されている特徴、機能、及び詳細のいずれかによって補足され得る。
【0145】
例えば、上記の方法は、所望により、個々に又は組み合わせて、
図5に関して説明された特徴/機能/詳細のいずれかによって補足され得る。
【0146】
本発明の利点
本発明のATEは、従来の解決策に比べて以下の利点を有し得る。
【0147】
・多くの公知のHSIOベースのデータバスは、メモリマップド使用モデルを提供する。PCI Express(商標)は、ここで最も顕著な例であり、拡張デバイスは、あるメモリ及び/又はI/O領域を提供することを望むことを通知する。処理ユニットの動作環境内のリソースマネージャは、一致する空きスペースを見つけ、適切な開始アドレスをリソースのために又はリソースに割り当てる。例えば、真のメモリ又は制御レジスタなどの(背後にある)リソースが何かは、実装形態に依存する。この手法は、例えば、PCI Express(商標)で利用できるが、これに限定されない。
【0148】
・例えば、PCI Express(商標)カードをメモリ拡張器として、したがってプログラムコード及び/又はデータのソースとして使用することは、実用上公知ではなく、特にテスト目的として公知ではない(テスト目的の中には存在しない)。
【0149】
・多くのHSIOインターフェースについての実用上の観測は、それらが、コンピュータシステムのグローバルメモリマップ内の(グローバルメモリマップ内への)メモリマッピング制御レジスタ及び/又はデータエリアによって、周辺機器を制御するために使用されることである。
【0150】
・データ領域は、コンピュータシステムの処理ユニットが実行するコンピュータコードのソースとして、つまり処理ユニットのメモリ拡張として使用される。テストケースコードは、処理ユニットメモリの特定のアドレスに表示される。実行は、ジャンプ又はそのアドレスへの呼び出しによって開始され、これは、テストコントローラによって開始され得る。
【0151】
・処理ユニットのキャッシュは、かかるメモリの拡張が通常のシステムメモリとして受け入れられるように構成できる。すなわち、それに応じてキャッシュされたメモリ範囲をプログラムする必要があり、これは通常の使用事例である。つまり、特別なDfTは必要ない。
【0152】
・ミッションモードでのデジタル半導体設計のテストの実行は、組み込まれた様々なIPブロック間の通信などの障害を特定することを目的としている。すなわち、テストにより、あるIPから他のIPへのデータ「トラフィック」が生成される。多くの場合、重要なテスト項目の1つは、ミッションモードでのPCI Express及びUSBなどのHSIOバスの使用であるが、これらに限定されない。これらのインターフェースの動作は、テスト中の設計におけるクロックドメイン全体にわたってトラフィックを試みる。かかるHSIOインターフェースを安定性についてテストすることは、説明した本発明の副産物である。
【0153】
・多くの、より大きな及び/又はより現実的なテストケースがここで可能である。
【0154】
・追加のダウンロード及び/又はコピー時間のオーバーヘッドは必要ない。HSIOバスを介した実行時のダウンロード。実行時のパフォーマンスは、L2キャッシュによって保証及び/又は改善される。
【0155】
・テストコントローラは、複数のテストケースを管理し、DUTに「ステップスルー」させることもできる。
【0156】
・テストケースの実行は、ATEによって同時に監視及び分析できる。
【0157】
更なる一般的な改善
本発明は、以下の特徴を含み得るセキュリティ機能を本発明に追加することによって更に改善され得る。
【0158】
・第1のインターフェース及び/又は第2のインターフェースに対するATE及び/又はテスタの認証:
ATE及び/又はテスタは、例えば通信を確立するために必要とされるそのアイデンティティを証明するために、例えば暗号手段及び/又は秘密クレデンシャルを使用して、第1のインターフェース及び/又は第2のインターフェースに対してそれ自体を認証するように要求され得る。
【0159】
・第1のインターフェース及び/又は第2のインターフェースに対するATE及び/又はテスタの認可:
ATE及び/又はテスタは、例えば、暗号化手段及び/又は秘密クレデンシャルを使用して、第1のインターフェース又は第2のインターフェースに対してそれ自体を認可して、例えば、別様で制限された機能にアクセスするためのデバイス上の特権を得るように要求され得る。
【0160】
・DUTとATE及び/又はテスタとの間の通信の整合性チェック:
DUTとATE及び/又はテスタ及び/又はATEの第1のインターフェース及び/又は第2のインターフェースとの間の通信は、例えばハッシュなどの標準及び/又は独自のデータ完全性チェック方法を用いて、変更に対して保護することができる。
【0161】
・DUTとATE及び/又はテスタとの間の通信の暗号化:
DUTとATE及び/又はテスタ及び/又はATEのインターフェースとの間の通信は、標準の暗号化スキーム及び/又は独自の暗号化方法を使用して暗号化することができる。
【0162】
本発明は、圧縮特徴を本発明に追加することによって更に改善され得、これは、以下の特徴を含み得る。
【0163】
・DUTとATE及び/又はテスタとの間の通信の圧縮:
DUTとATE及び/又はテスタ又はATEのプライマリインターフェース及び/又はセカンダリインターフェース間の通信は、標準的な又は独自の損失性又は無損失性のコンパクション手段を用いて圧縮することができ、ここで、ATE及び/又はテスタがデータを圧縮してデバイスに送信し、デバイスによって解凍され、かつ/又はデバイスが送信されたデータ若しくはテスタに送信するデータを圧縮し、かつ/又はテスタがデータを解凍する。
【0164】
DUTとATEとの間の通信を圧縮するには、以下のことも必要であり得る。
【0165】
・必要とされるコンパクション方法及び/又はデコンパクション方法は、第1のインターフェース及び/又は第2のインターフェースを使用してプログラムコードの一部としてDUTにアップロードすることができるか、又はアップロードされてもよい。
【0166】
代替的な実装形態
一部の態様を装置の文脈で説明したが、これらの態様はまた、ブロック又はデバイスが方法工程又は方法工程の特徴に対応する、対応する方法の説明を表すことは明らかである。同様に、方法工程の文脈で説明される態様はまた、対応するブロック又はアイテム、又は対応する装置の特徴の説明を表している。
【0167】
特定の実装形態の要件に応じて、本発明の実施形態は、ハードウェア又はソフトウェアで実装され得る。この実装形態は、それぞれの方法が実行されるようにプログラム可能なコンピュータシステムと協働する(又は協働し得る)電子的に読み取り可能な制御信号を記憶したデジタル記憶媒体、例えばフロッピー(登録商標)ディスク、DVD、CD、ROM、PROM、EPROM、EEPROM又はフラッシュメモリを使用して実行されてもよい。
【0168】
本発明による一部の実施形態は、本明細書に記載の方法のうちの1つが実行されるように、プログラム可能なコンピュータシステムと協働することができる電子的に読み取り可能な制御信号を有するデータキャリアを含む。
【0169】
概して、本発明の実施形態は、プログラムコードを備えたコンピュータプログラム製品として実施することができ、プログラムコードは、コンピュータプログラム製品がコンピュータ上で実行されるときに方法のうちの1つを実行するために機能する。プログラムコードは、例えば、機械可読キャリアに記憶され得る。
【0170】
他の実施形態は、機械可読キャリアに記憶された、本明細書に記載の方法のうちの1つを実行するためのコンピュータプログラムを含む。
【0171】
したがって、換言すれば、本発明の方法の一実施形態は、コンピュータプログラムがコンピュータ上で実行されるときに、本明細書に記載の方法のうちの1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0172】
したがって、本発明の方法の更なる実施形態は、本明細書に記載の方法のうちの1つを実行するためのコンピュータプログラムをその上に記録したデータキャリア(又はデジタル記憶媒体、又はコンピュータ可読媒体)である。データキャリア、デジタル記憶媒体、又は記録された媒体は、通常、有形及び/又は非過渡的である。
【0173】
したがって、本発明の方法の更なる実施形態は、本明細書に記載の方法のうちの1つを実行するためのコンピュータプログラムを表すデータストリーム又は信号のシーケンスである。例えば、データストリーム又は信号のシーケンスは、例えば、インターネットを介して、データ通信接続を介して転送されるように構成され得る。
【0174】
更なる実施形態は、本明細書に記載の方法のうちの1つを実行するように構成又は適合された処理手段、例えば、コンピュータ、又はプログラマブルロジックデバイスを含む。
【0175】
更なる実施形態は、本明細書に記載の方法のうちの1つを実行するためのコンピュータプログラムをその上にインストールしたコンピュータを含む。
【0176】
本発明による更なる実施形態は、本明細書に記載の方法のうちの1つを実行するためのコンピュータプログラムを(例えば、電子的又は光学的に)受信機に転送するように構成された装置又はシステムを含む。この受信機は、例えば、コンピュータ、モバイルデバイス、メモリデバイスなどであり得る。装置又はシステムは、例えば、コンピュータプログラムを受信機に転送するためのファイルサーバを含み得る。
【0177】
一部の実施形態では、プログラマブルロジックデバイス(例えば、フィールドプログラマブルゲートアレイ)を使用して、本明細書に記載の方法の機能の一部又は全てを実行することができる。一部の実施形態では、フィールドプログラマブルゲートアレイは、本明細書に記載の方法のうちの1つを実行するためにマイクロプロセッサと協働することができる。概して、これらの方法は、任意のハードウェア装置によって実行されることが好ましい。
【0178】
本明細書に記載の装置は、ハードウェア装置を使用して、若しくはコンピュータを使用して、又はハードウェア装置とコンピュータの組み合わせを使用して実装することができる。
【0179】
本明細書に記載の装置、又は本明細書に記載の装置の任意の構成要素は、少なくとも部分的にハードウェア及び/又はソフトウェア内に実装することができる。
【0180】
本明細書に記載の方法は、ハードウェア装置を使用して、若しくはコンピュータを使用して、又はハードウェア装置とコンピュータの組み合わせを使用して実行することができる。
【国際調査報告】