(57)【特許請求の範囲】
【請求項１】
メモリボードをテストする方法において、
メモリボードのメモリをテストする段階であって、メモリのテストは、組込み自己テスト構造を使用して、メモリのための第１のテストパターンを与えることを含み、前記第１のテストパターンは、メモリのためのプロトコルに合致する、段階と、
エラーチェッカにより、メモリに対する合法的コマンドを検出できるようにすることにより、前記メモリのテストに対してエラーチェックを遂行する段階と、
メモリのＩＯ（入力出力）インターフェイスをホストでテストする段階であって、ＩＯインターフェイスのテストは、組込み自己テスト構造を使用して、ＩＯインターフェイスのための第２のテストパターンを与えることを含む段階と、
を備えた方法。
【請求項２】
前記メモリは、シリアルポートダイナミックランダムアクセスメモリ（ＳＰＤＲＡＭ）である、請求項１に記載の方法。
【請求項３】
前記メモリのテストは、前記ＩＯインターフェイスのテストとは別のものである、請求項１に記載の方法。
【請求項４】
前記第２のテストパターンは、メモリのためのプロトコルに合致しない、請求項１に記載の方法。
【請求項５】
テストプロパティを前記第２のテストパターンにエンコードする段階を更に備えた、請求項１に記載の方法。
【請求項６】
前記組込み自己テスト構造の少なくとも一部分は、前記メモリ及びホストに含まれる、請求項１に記載の方法。
【請求項７】
受信したテストパターンを検討して、前記メモリ又はＩＯインターフェイスに１つ以上のエラーが生じたかどうか決定する段階を更に備えた、請求項１に記載の方法。
【請求項８】
前記第１のテストパターンの抽出されたテストプロパティをチェックすることに基づいてメモリをテストする段階を更に備えた、請求項１に記載の方法。
【請求項９】
前記第１のテストパターン及び第２のテストパターンを与えることは、テスト信号を発生することを含む、請求項１に記載の方法。
【請求項１０】
前記第１のテストパターン及び第２のテストパターンを与えることは、外部テスターからテスト信号を受け取ることを含む、請求項１に記載の方法。
【請求項１１】
前記組込み自己テスト構造の少なくとも一部分をバイパスして、テストのために信号をループバックする段階を更に備えた、請求項１に記載の方法。
【請求項１２】
前記メモリは、複数のポートを含み、そして更に、それらポートをテストのために一緒に結合する段階を備えた、請求項１に記載の方法。
【請求項１３】
各ポートは、シリアライザ及びデシリアライザを備え、前記ポートを一緒に結合する段階は、第１ポートのシリアライザを第２ポートのデシリアライザに接続することを含む、請求項１２に記載の方法。
【請求項１４】
前記テストは、前記第１ポートのシリアライザにテストパターンを付与しそして前記第１ポートのデシリアライザでテストパターンを受け取ることを含む、請求項１３に記載の方法。
【請求項１５】
テストパターンにテストプロパティを埋め込むために複数のハイアラーキー編成のテストエンコーディング関数を使用してテストパターンを発生する段階を更に備えた、請求項１に記載の方法。
【請求項１６】
前記メモリ及びメモリのインターフェイスのテストは、前記メモリボードの内部でテストされ、そのテストは、メモリボードにおいて信号をループバックするようにメモリボードを構成することを含む、請求項１に記載の方法。
【請求項１７】
前記ＩＯインターフェイスをテストすることは、メモリボードの出力からメモリボードの入力へ信号をループバックすることを含む、請求項１に記載の方法。
【請求項１８】
前記ＩＯインターフェイスをテストすることは、前記ホスト内で前記ホストの入力からホストの出力へ信号をループバックすることを含む、請求項１に記載の方法。
【請求項１９】
前記装置は、複数のメモリ要素を備え、前記メモリをテストすることは、前記複数のメモリ要素の各々に対してインターフェイスをテストすることを含む、請求項１に記載の方法。
【請求項２０】
前記複数のメモリ要素の各々に対してインターフェイスをテストすることは、各インターフェイスの１つ以上のリンクをオン又はオフにスイッチングして、テストパターンを送信するためのテスト経路を形成することを含む、請求項１９に記載の方法。
【請求項２１】
前記１つ以上のリンクをスイッチングすることは、非機能的テスト経路を形成するようにスイッチングすることを含む、請求項２０に記載の方法。
【請求項２２】
前記１つ以上のリンクをスイッチングすることは、オープン欠陥及びブリッジ欠陥の１つ以上をテストするためにリンクをスイッチングすることを含む、請求項２０に記載の方法。
【請求項２３】
第１のテスト構造を含むメモリと、
第２のテスト構造を含むホストの物理的層と、
前記メモリと物理的層との間のインターフェイスと、
を備え、前記メモリ及びインターフェイスは、前記第１及び第２のテスト構造を使用してテストされ、
前記メモリのテストは、組込み自己テスト構造を使用して、メモリのための第１のテストパターンを与えることを含み、前記第１のテストパターンは、メモリのためのプロトコルに合致し、
前記第１のテスト構造は、エラーチェッカを有し、前記メモリのテストは、前記エラーチェッカにより、メモリに対する合法的コマンドを検出できるようにすることを含む、装置。
【請求項２４】
前記メモリ及びインターフェイスのテストは、別々の実行される、請求項２３に記載の装置。
【請求項２５】
前記インターフェイスのテストは、前記メモリのプロトコルに合致しないテストパターンを使用することを含む、請求項２３に記載の装置。
【請求項２６】
前記合法的コマンドを検出できるようにすることは、前記エラーチェッカの比較ロジックによりエラー信号の生成を可能にする制御信号を供給することを含む、請求項２３に記載の装置。
【請求項２７】
前記メモリは、シリアルポートダイナミックランダムアクセスメモリ（ＳＰＤＲＡＭ）である、請求項２３に記載の装置。
【請求項２８】
前記メモリは、シリアライザ及びデシリアライザを各々有する複数のポートを備えた、請求項２７に記載の装置。
【請求項２９】
テストジェネレータが前記メモリの各ポートに対するテストパターンを発生する、請求項２８に記載の装置。
【請求項３０】
各ポートは、エラーチェッカを備え、各エラーチェッカは、各ポートのデシリアライザにより受け取られたテストパターンをチェックする、請求項２８に記載の装置。
【請求項３１】
前記メモリボードは、前記複数のポートに対する単一のエラーチェッカを含む、請求項２８に記載の装置。
【請求項３２】
前記ポートは、前記装置をテストするためにシリアルに一緒に接続される、請求項２８に記載の装置。
【請求項３３】
前記第１のテスト構造は、メモリテストインターフェイスユニットを含む、請求項２３に記載の装置。
【請求項３４】
前記メモリテストインターフェイスユニットは、シリアルＩＯテストジェネレータを含む、請求項３３に記載の装置。
【請求項３５】
前記メモリテストインターフェイスユニットは、コマンドジェネレータと、データ及びアドレスジェネレータとを含む、請求項３３に記載の装置。
【請求項３６】
前記メモリテストインターフェイスユニットは、更に、複数のコマンドを生成してそれら複数のコマンドを複数のポートへパラレルに配布するためのコマンドエキスパンダーを備えた、請求項３５に記載の装置。
【請求項３７】
プロセッサにより実行されたときに、そのプロセッサが、
シリアルポートダイナミックランダムアクセスメモリ（ＳＰＤＲＡＭ）ボードのメモリをテストし、該メモリのテストは、組込み自己テスト構造を使用して、メモリのための第１のテストパターンを与えることを含み、前記第１のテストパターンは、メモリのためのプロトコルに合致し、
エラーチェッカにより、メモリに対する合法的コマンドを検出できるようにすることにより、前記メモリのテストに対してエラーチェックを遂行し、
メモリのＩＯ（入力出力）インターフェイスをホストでテストし、該ＩＯインターフェイスのテストは、組込み自己テスト構造を使用して、ＩＯインターフェイスのための第２のテストパターンを与えることを含み、前記メモリのテストは、前記ＩＯインターフェイスのテストとは別のものである、
ことを含むオペレーションを遂行するようにさせるインストラクションのシーケンスを表すデータが記憶されたコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般的に、コンピュータメモリの分野に係り、より特定すれば、コンピュータメモリテスト構造のための方法及び装置に係る。
【背景技術】
【０００２】
コンピュータメモリ装置は、技術の進歩で各装置内のコンポーネントを益々小型化できるにつれて、次第に高密度のアーキテクチャーとなっている。従って、各メモリ装置は、テストが非常に複雑になっている。メモリ装置は、ＳＰＤＲＡＭ（シリアルポートダイナミックランダムアクセスメモリ）を含む。
【０００３】
コンピュータ装置は、あるケースでは、組込み自己テスト（ＢＩＳＴ）回路を備えている。このＢＩＳＴ回路は、メモリ装置に対して幾つかのテストを行う上で助けとなる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、メモリ装置は、異なる要件をもつ複数の異なる形式のテストを必要とする。テストをサポートするためにあまりに多くのハードウェアを追加すると、メモリボードのサイズ及びコストが増加し、テストの複雑さも増す。
【０００５】
更に、テストは、異なるホストシステムとのインターフェイスに関連して複数のメモリ装置をテストすることを含み、従って、非常に複雑で且つ融通性のないテストは、メモリ装置及びインターフェイスのテストのコスト及び複雑さを高める。
【課題を解決するための手段】
【０００６】
コンピュータメモリテスト構造のための方法及び装置が提供される。
【０００７】
本発明の第１の態様において、メモリボードをテストする方法は、メモリボードのメモリをテストすることを含み、このようなメモリのテストは、組込み自己テスト構造を使用して、メモリの第１テストパターンを与えることを含む。更に、この方法は、ホストでメモリのＩＯ（入力出力）インターフェイスをテストすることも含み、このようなＩＯインターフェイスのテストは、組込み自己テスト構造を使用して、ＩＯインターフェイスの第２テストパターンを与えることを含む。
【０００８】
本発明の第２の態様において、装置は、第１のテスト構造を含むメモリと、第２のテスト構造を含むホストの物理的層と、それらメモリと物理的層との間のインターフェイスとを備えている。メモリ及びインターフェイスは、第１のテスト構造及び第２のテスト構造を使用してテストされる。
【０００９】
以下、同じ要素が同じ参照番号で示された添付図面を参照して本発明の実施形態を一例として説明する。
【図面の簡単な説明】
【００１０】
【図１】組込み自己テスト構造を含むメモリ装置の一実施形態を示す。
【図２】コンピュータメモリをテストするプロセスの一実施形態を示すフローチャートである。
【図３】組込みメモリテスト構造の一実施形態を含むメモリ装置のインターフェイスを示す。
【図４】ＳＰＤＲＡＭメモリアーキテクチャーの実施形態を示す。
【図５】組込み自己テスト構造の実施形態を含む装置のコマンドセットを示す。
【図６】各々５ビット対６及び６ビット対５の遷移エンコーディング及びデコーディングの実施形態を示す。
【図７】各々６ビット対７及び７ビット対６の遷移エンコーディング及びデコーディングの実施形態を示す。
【図８】メモリ及びホストチップ用のＳＰＤＲＡＭテスト構造の実施形態を示す。
【図９】ＳＰＤＲＡＭインターフェイステストアーキテクチャーの実施形態を示す。
【図１０】被試験ユニットの各ＴＸ（送信器）チャンネルにおけるテストパターン発生の実施形態を示す。
【図１１】テストシステム又は方法の一実施形態の２０ビットテストパターン発生を示す。
【図１２】テストシステム又は方法の一実施形態の２０ビットテストパターン処理を示す。
【図１３】メモリのＳＰＤＲＡＭテスト構造の一実施形態を示す。
【図１４】ホストチップに対するＳＰＤＲＡＭテスト構造の一実施形態を示す。
【図１５】シリアルＩＯインターフェイスに対する自己ループバックテスト構成の一実施形態を示す。
【図１６】メモリインターフェイスに対する自己ループバックテスト構成の一実施形態を示す。
【図１７】自動テスト装置（ＡＴＥ）を含むテスターを使用するメモリインターフェイスに対するテスト構成の一実施形態を示す。
【図１８】機能的経路に対する外部ループバックテスト構成の一実施形態を示す。
【図１９】機能的経路に対する自己ループバックテスト構成の一実施形態を示す。
【図２０】単一ポートに結合されたテストジェネレータ及びそのポートのための単一エラーチェッカを使用するメモリ又はＰＨＹ層に対するＳＰＤＲＡＭテスト構造のアーキテクチャーの一実施形態を示す。
【図２１】テストシステムの一実施形態を示す。
【図２２】エラー検出プロセスの一実施形態を示す。
【図２３】テストシステムの一実施形態に対するテストエンコーディング関数の概念を示す。
【図２４】組み合わせテストエンコーディング関数の一実施形態を示す。
【図２５】テストシステム又はプロセスの実施形態に使用されるテストデータのクラスシグネチャーを示す。
【図２６】テスト構造の実施形態に対するクラスシグネチャーを示す。
【図２７】クラスシグネチャーシーケンスの実施形態を示す。
【図２８】ハイアラーキーテストエンコーディング関数の実施形態を示す。
【図２９】クラス発生関数の実施形態を示す。
【図３０】ハイアラーキーエンコーディングを使用してテストデータストリームにテストプロパティを埋め込むためのプロセスの実施形態を示す。
【図３１】ハイアラーキーエンコーディングを使用してテストデータストリームにテストプロパティを埋め込むためのプロセスの実施形態を示す。
【図３２】受信器においてテストプロパティ埋め込みテストパターンをチェックするプロセスの一実施形態を示す。
【図３３】エラー検出器の一実施形態を示す。
【図３４】エラーインジケータの一実施形態の振舞いを示す。
【図３５】シリアルＩＯテスト構造の一実施形態を示す。
【図３６】テストモードの実施形態を示す。
【図３７】テストモードの実施形態を示す。
【図３８】共有テストパターンソースの一実施形態を示す。
【図３９】メモリインターフェイステストユニットの一実施形態を示す。
【図４０】テストデータエキスパンダーの一実施形態を示す。
【図４１】バンクアドレス計算ユニットの一実施形態を示す。
【図４２】プライオリティの機能をチェックするためのコマンド発生の一実施形態を示す。
【図４３】ＳＰＤＲＡＭテストジェネレータの一実施形態を示す。
【図４４】ＳＰＤＲＡＭテストジェネレータの一実施形態を示す。
【図４５】ＳＰＤＲＡＭテストジェネレータの一実施形態を示す。
【図４６】ＳＰＤＲＡＭテストジェネレータの一実施形態を示す。
【図４７】ＳＰＤＲＡＭテストジェネレータの一実施形態を示す。
【図４８】エラーチェックの一実施形態を示す。
【図４９】シリアルＩＯエラーチェッカの一実施形態を示す。
【図５０】シリアルＩＯエラーチェッカの一実施形態を示す。
【図５１】ボードテストシステムの一実施形態を示す。
【図５２】ボードレベルテスト構造の一実施形態を示す。
【図５３】シリアルＩＯ相互接続テスト構造の一実施形態を示す。
【図５４】オープン欠陥検出の一実施形態を示す。
【図５５】ブリッジ欠陥検出の一実施形態を示す。
【図５６】シリアルＩＯボードテストの一実施形態を示す。
【図５７】ホストバイパスループバック経路を通しての相互接続テストを示す。
【図５８】ホストにおいてテストパターンを発信する状態でのメモリインターフェイステストの一実施形態を示す。
【図５９】メモリにおいてテストパターンを発信する状態での自己ループバック経路を通るメモリインターフェイステストの一実施形態を示す。
【図６０】本発明の一実施形態に使用されるコンピューティングシステムの一実施形態を示す。
【発明を実施するための形態】
【００１１】
本発明の実施形態は、一般的に、コンピュータメモリテスト構造のための方法及び装置に向けられる。
【００１２】
ある実施形態において、ランダムアクセスメモリ（ＤＲＡＭ）を含むメモリのための組込みテスト構造（built-in test structure）が設けられる。ある実施形態において、メモリは、シリアルポートＤＲＡＭ（ＳＰＤＲＡＭ）メモリである。
【００１３】
シリアルリンクは、ピン数を減少できる一方、トレース一致及び混雑を排除することによりレイアウトの問題を簡単化することができる。各ポートが独立しているので、ポート間に位相関係を維持する必要はない。メモリコマンド及びタイミングは、マルチプレクス型アドレスバスを伴う標準的な最新のＤＲＡＭに良く似ている。
【００１４】
しかしながら、ＳＰＤＲＡＭ及び最終製品のテスト費用を下げるための費用効果の高い且つハードウェア効率の良いテスト方法を提供するには幾つかの課題が課せられる。装置内では、ＳＰＤＲＡＭメモリインターフェイステスト回路のハードウェアオーバーヘッドを小さく保持して、装置のシリコンエリアの多くをメモリセルに利用することができる。更に、ＳＰＤＲＡＭメモリインターフェイステスト方法のテスト費用は、価格競争力を維持するために入念な管理を必要とする。ある実施形態では、テスト方法は、特徴付け、生産、テスト及び診断のためのテストパターンのリッチセットを与えることができねばならない。例えば、セットトップボックスの製造者の観点から、ボードレベルテスト及び診断能力が重要である。ある実施形態では、ＳＰＤＲＡＭメモリチップ及びＰＨＹ  ＩＰ製品に一体化されるテスト方法は、システムボード上のＳＰＤＲＡＭ製品のインターフェイスを確認し、それにより、ボードの収率を高める上で助けとなるように再使用される。ＳＰＤＲＡＭメモリは、一般的に、供給者によってテストされるので、セットトップボックスのメーカーは、システムボードに具現化されたＳＰＤＲＡＭメモリ及び高速シリアルＩＯインターフェイスの機能を保証するために減少テストを適用してもよい。ある実施形態では、チップレベル及びボードレベルの両方でメモリ及びシリアルＩＯインターフェイスに低コストのテスト特徴を組み込むことにより、ＩＰ及びＩＣ製品のための著しい効果を与えることができる。
【００１５】
ある実施形態では、システムは、ＳＰＤＲＡＭメモリ、メモリインターフェイス、及び高速シリアルＩＯリンクをテストするための組込み自己テスト（ＢＩＳＴ）構造を使用する。ポートロジック及びスイッチを含むＳＰＤＲＡＭメモリ及びメモリインターフェイスは、オンチップテスト回路によるか、又は（ＡＴＥ、即ち自動テスト装置を含む）テスターにより、テストすることができる。ある実施形態では、装置は、意図されたテストを各々内部及び外部で編成するためにオンチップテスト回路及びテスターに使用される低コストのハードウェアテストインターフェイスを備えている。ある実施形態では、ＳＰＤＲＡＭメモリ及びそのインターフェイスのテストは、シリアルＩＯリンクを経て実行される。ある実施形態では、システムは、ＳＰＤＲＡＭプロトコルに違反しないＳＰＤＲＡＭコマンドのシーケンスを与えるテストパターンを使用する。
【００１６】
ある実施形態では、シリアルＩＯのテストは、メモリ及びメモリインターフェイスのテストとは分離される。テストの分離を行うのは、シリアルＩＯインターフェイスの機能をその電気的仕様に対して保証するためのプロセスが、合法的なＳＰＤＲＡＭコマンド以外のテストパターンを含むためである。ある実施形態では、ＳＰＤＲＡＭプロトコルの知識を要求せずにシリアルＩＯインターフェイスのテストを実施することでテストプロセスが簡単化もされる。従って、ある実施形態では、シリアルＩＯインターフェイスのテストは、ＳＰＤＲＡＭプロトコルとは独立しており、ＳＰＤＲＡＭプロトコルの知識なしに実行することができる。シリアルＩＯテストのテストパターンは、例えば、ランダムパターンでよい。
【００１７】
ある実施形態では、シリアルＩＯインターフェイステストは、有効なデータストリームを構成するためにテストパターン又はテストデータのストリームへ埋め込まれた（又はエンコードされた）テストプロパティを含む。ある実施形態では、インターフェイステストは、データストリームの有効性を変化させるエラーを検出するのに使用される。テストプロパティは、テストパターンで満足されるテスト仕様とみなされる。テストプロパティは抽象的であるから、プロパティは、簡単な形態で具現化されるテストパターンの大きなセットを受け入れることができる。
【００１８】
ある実施形態では、低コストのテストを容易にするために、テストシステムは、ユーザメモリテストパターンジェネレータ及びテスターへのテストインターフェイス回路をなすことができる。又、テストシステムは、メモリインターフェイスをテストするのに必要なＳＰＤＲＡＭコマンドのシーケンスを発生できるスタンドアローンシステムとして機能することもできる。ある実施形態では、テストを外部で編成するために利用可能なＳＰＤＲＡＭコマンドにテスターがアクセスしてもよい。
【００１９】
ある実施形態では、テストインターフェイス回路は、テスト解凍回路としても機能する。ある実施形態では、ＳＰＤＲＡＭコマンド入力は、４つのポートを有する装置の一例において、４つの全ポートにパラレルに適用される４つの２０ビットコマンドへとデコード又は解凍される。メモリインターフェイステストは、同じシリアルＩＯを通して実行されるので、シリアルＩＯテスト構造がテストインターフェイス回路の構造において再使用される。テストインターフェイス回路は、ターンオン及びオフにされるハイアラーキーハードウェア層とみなされる。
【００２０】
装置設計及び製造において、装置をプリント回路板上においてシステムを形成するときには、ボード上のＳＰＤＲＡＭインターフェイスの機能を確認して、ボードレベルの収率ロス及びテスト逃れを減少することが重要である。一般的に、ボードレベルにおける収率ロスのコストは、チップレベルの場合より著しく高い。テストを逃れたボードは、システム欠陥及び製品のリコールを招き得るので、コストがかかる。
【００２１】
図１は、組込み自己テスト構造を含むメモリ装置の一実施形態を示す。この図において、メモリ装置１０５は、シリアルポートメモリ装置で、ここでは、第１ポート１１５、第２ポート１２０、第３ポート１２５、及び第４ポート１３０として示された複数のポートを備え、各ポートは、シリアライザ１３５及びデシリアライザ１４０（各々ＳＥＲ及びＤＥＳとして示す）を含む。この装置は、更に、装置をテストするための組込み自己テスト構造（又はＢＩＳＴ）１１０を備えている。ある実施形態では、この組込み自己テスト構造は、メモリ装置及びメモリインターフェイスのテストをサポートするのに使用される。
【００２２】
図２は、コンピュータメモリをテストするプロセスの一実施形態を示すフローチャートである。ここに示すプロセスでは、コンピュータメモリ装置が被試験デバイス（ＤＵＴ）として選択され（２０２）、メモリ装置は、複数のポートを含む。メモリテストのセットが装置に対して選択され、そしてメモリをテストするためにテストパターンが送信される（２０４）。テストパターンは、受け取られて、エラーに対してチェックされ（２０６）、メモリに欠陥状態があるかどうか決定される（２０８）。図示されたプロセスでは、ＩＯインターフェイスをテストするためにも、テストパターンが送信される（２１０）。テストパターンは、受け取られて、エラーに対してチェックされ（２１２）、インターフェイスに欠陥状態があるかどうか決定される（２１４）。
【００２３】
図３は、組込みメモリテスト構造の一実施形態を含むメモリ装置のインターフェイスを示す。図示されたシステム３００では、ホスト３０５がインターフェイス３５０を経てメモリ３５５にリンクされる。
【００２４】
ホスト３０５は、図示されたホストポート０を含む１つ以上のポート３１０を、メモリ３５５とリンクするためのリンクマネージメント３４０と共に備えている。ポート０は、ホスト物理的層３２０を含み、そのホスト物理的層は、受信器及び送信器３２５を含み、送信器は、インターフェイス３５０のシリアルリンクを経て送信するためのシリアライザ３３０を含む。メモリ３５５は、図示されたメモリポート０を含む１つ以上のポート３６０を、ホスト３０５とリンクするためのリンクマネージメント３９０と共に備えている。メモリポート０は、メモリ物理的層３６５を含み、そのメモリ物理的層は、送信器及び受信器３７５を含み、受信器は、インターフェイス３５０のシリアルリンクを経て送信を受け取るためのデシリアライザ３８０を含む。
【００２５】
ある実施形態において、メモリ３５５は、ＤＲＡＭ（ダイナミックランダムアクセスメモリ）であり、特に、シリアルポートＤＲＡＭ（ＳＰＤＲＡＭ）である。ＳＰＤＲＡＭとは、高速シリアルＩＯポートを経てメモリにアクセスできるようにするＤＲＡＭメモリアクセス技術である。ある実施形態では、ホスト３０５は、システムオンチップ（ＳＯＣ）である。動作中に、パラレルデータは、ホスト３０５とメモリ３５５との間の送信の前にシリアル化され、そしてそのシリアル化されたデータは、受信端においてパラレルデータへとデシリアル化される。従って、シリアライザ／デシリアライザ対は、ホスト３０５とメモリ３５５との間の通信チャンネルを形成する。
【００２６】
図４は、ＳＰＤＲＡＭメモリアーキテクチャーの実施形態を示す。この図において、ＳＰＤＲＡＭメモリ４００は、ポートごとに独立したバンクアクセスをもつ４チャンネルシリアルメモリである。ポート４０５は、各々、メモリ物理的層４１０と共に示され、そして各々５Ｇｂｐｓ（ギガビット／秒）まででコマンド又は書き込みデータを送信すると同時に読み取りデータを受信するために４線の差動送信及び受信リンクを含む。メモリ４００は、更に、ここではＤＲＡＭコアバンク０−７として示された１つ以上のメモリバンク４２０にデータを記憶するためポートロジック４１５を備えている。ある実施形態では、メモリ４００のための組込みテスト構造が設けられ、そのテスト構造は、メモリのテスト、及びホスト装置とのインターフェイスのテストに関連して使用される。
【００２７】
図５は、組込み自己テスト構造の実施形態を含む装置のコマンドセット５００を示す。コマンドは、ＤＲＡＭメモリをテストするのにしばしば使用されるメモリコマンドを含み、それらは、プリチャージ（ＰＣＧ）、アクチベートバンク（ＡＢＮＫ）、アクチベート（ＡＣＴ）、書き込み（ＷＲ）及び読み取り（ＲＤ）コマンドを含む。この図において、各コマンドの長さは、送信のためにエンコードされる場合には１７ビット又は２０ビットであり、それらコマンドは、同期コマンド及びメモリコマンドを含む。しかしながら、本発明の実施形態は、特定のコマンドセット又はコマンド構造に限定されない。この図において、同期コマンドは、リンクを確立し、そしてリンクの完全性を回復する。
【００２８】
図６及び７は、１７ビットメモリコマンドが送信のためにどのように変換又はエンコードされるか示す。図６は、各々５ビット対６及び６ビット対５の遷移エンコーディング及びデコーディングの実施形態を示す。図７は、各々６ビット対７及び７ビット対６の遷移エンコーディング及びデコーディングの実施形態を示す。１７ビットコマンド、及び２０ビットのエンコードされたコマンドが、各々、ｄ［１６：０］及びｅ［１９：０］として示されている。コマンドのエンコーディングは、記号間干渉（“ＩＳＩ”として知られている）の問題を克服すると共に、送信されたコマンドを受信器においてより確実に回復するために、エンコードされるコマンドにより多くの遷移を合体させる。ある実施形態では、１７ビットコマンドの６ビット、５ビット及び６ビット区画の各々は、図６及び７に示す変換式を各々使用して、７ビット、６ビット及び７ビット区画へと変換される。例えば、コマンドの５ビット区画が１１０００を含む場合には、それが図６に示すように１０１０１０１へと変換される。オリジナルの５ビット区画における遷移の数は、変換によって６個の遷移に増加されることに注意されたい。コマンドの６ビット区画も、図７に示すように同様に変換することができる。この変換は、変換ビットストリームにおける０及び１の連続数として定義されるラン長さが５以下であることを保証する。従って、変換ビットストリームの６ビットごとに１つ以上の遷移がある。ある実施形態では、エンコードされたコマンドを受信器においてデコードすることは、逆の仕方で行われる。
【００２９】
ある実施形態では、ＳＰＤＲＡＭテスト構造は、同じシリアルＩＯリンクを経て高速シリアルＩＯリンク及びメモリインターフェイスロジックの両方をテストする。図８は、例えば、システムオンチップ（ＳＯＣ）に埋め込むことのできるメモリ及びホストチップ用のＳＰＤＲＡＭテスト構造の一実施形態を示す。
【００３０】
ある実施形態では、上述したように、シリアルＩＯのテストは、メモリインターフェイスのテストと分離される。メモリインターフェイスのテストは、被試験メモリ装置のＳＰＤＲＡＭプロトコルに適合するテストパターンを必要とする。しかしながら、シリアルＩＯインターフェイスのテストは、ＳＰＤＲＡＭプロトコルとは独立している。テストの分離は、全シリアルＩＯインターフェイスのテストが、ＳＰＤＲＡＭプロトコルが許す以上のテストパターンを必要とするという点で好都合である。シリアルＩＯテストの分離を使用して、テストパターン適合制約を除去し、シリアルＩＯテスト中に、より多様なテストパターンを適用できるようにする。多様なテストパターンのリッチセットは、広いテストカバレージを達成する上で重要な要素である。
【００３１】
図８において、シリアルＩＯ及びメモリインターフェイスをターゲットとする組込み自己テスト（ＢＩＳＴ）ハードウェアは、シリアルＩＯテスト構造８１５、及びメモリインターフェイステスト構造８１０を各々含む。シリアルＩＯテスト構造８１５及びメモリインターフェイステスト構造８１０は、集合的に、ＳＰＤＲＡＭテスト構造と称される。図示されたように、テストシステムは、シリアルＩＯインターフェイス８３０によってリンクされたホスト又は他の装置のＳＰＤＲＡＭメモリ８０５及びＰＨＹコア８４０を備えている。ＳＰＤＲＡＭメモリ８０５は、メモリインターフェイステスト構造８１０と、シリアルＩＯテスト構造８１５と、シリアルＩＯインターフェイス８３０を経てＰＨＹコア８４０にリンクするためのシリアライザ８２０及びデシリアライザ８２５とを備えている。ＰＨＹコア８４０は、メモリインターフェイステスト構造８５０と、シリアルＩＯテスト構造８４５と、シリアルＩＯインターフェイス８３０を経てメモリ８０５にリンクするためのシリアライザ８６０及びデシリアライザ８５５とを備えている。
【００３２】
図９は、ＳＰＤＲＡＭインターフェイステストアーキテクチャーの一実施形態を示す。この図において、ＳＰＤＲＡＭメモリ又はホストＰＨＹ層９０５は、ＳＰＤＲＡＭインターフェイステスト構造９１０を含む。この図において、テスト構造９１０は、テストジェネレータ９１５及び４つのエラーチェッカ９２０を含み、各エラーチェッカは、図９にＥＣと示されている。テストジェネレータ９１５は、共有テストパターンソース９４０及び４つのテストプロパティ埋め込み（ＴＰＥ）ユニット９４５を収容する。ある実施形態では、ＴＰＥユニット９４５は、各ＰＨＹチャンネル専用のもので、共有テストソースから発生されたテストパターンを独立して変調し、多様なテストパターンを管理可能なハードウェアオーバーヘッドで全てのＰＨＹチャンネルに与える。ある実施形態では、各ＴＰＥユニット９４５のハードウェアオーバーヘッドは、チップ上の全てのＰＨＹチャンネルにより分担されるテストパターンソース９４０のハードウェアオーバーヘッドより著しく小さい。ある実施形態では、各エラーチェッカ９２０は、ポート９２５の１つに結合され、各ポートは、インターフェイスを経て通信するためのシリアライザ９３０及びデシリアライザ９３５を含む。規範的な具現化において、テストジェネレータ９１５は、２０ビットテストパターンを発生し、その２０ビットテストパターンを８０ビットテストパターンへと拡張し、そして各２０ビットパターンを、４つの全ポート９２４へ直接配布するか又はメモリインターフェイスを経て配布する。各ポートのエラーチェッカ９２０は、デシリアライザにおいて観察されるテストパターン又はテストデータの到来ストリームにおけるエラーを独立してチェックすることができる。
【００３３】
図１０は、被試験ユニットの各ＴＸチャンネルにおけるテストパターン発生の実施形態を示す。この図において、共有テストパターンソース１００５は、２０ビットのテストデータ又はテスト信号を発生する。テストモードに基づき、２０ビット又は１７ビットのデータが、意義のあるテスト情報を含む。１７ビット又は２０ビットのテスト信号が、送信の前に、２０ビットにエンコードされる。共有テストパターンソースは、テストプロパティ埋め込みユニット（ＴＰＥ）１０１０と結合される。このＴＰＥは、２０ビット及び１７ビットテスト信号を変調するようにプログラムされる。又、ＴＰＥは、２０ビットテスト信号をバイパスするようにプログラムされる。共有テストパターンソースは、ＴＰＥを経て、２０ビットテスト信号を遷移エンコーディングユニット（ＴＥ）１０１５に与える。１７ビットテスト信号は、２０ビット信号を発生するように遷移エンコーディングに使用され、そして３ビットテスト信号は、バイパス時に遷移エンコーディングの結果として発生される３ビットに置き換わるように使用される。テストエンコーディングは、バイパス信号の状態に基づいてバイパスされるか又はアクチベートされる。バイパス＝０の場合には、２０ビット出力テスト信号が遷移エンコーディングから発生される。さもなければ、遷移エンコーディングはディスエイブルされ、１７ビット及び３ビット入力テスト信号が合成されて、２０ビット出力テスト信号を発生する。それにより得られる２０ビットのテスト信号は、マルチプレクサ１０２０へ送られ、このマルチプレクサは、又、システムロジック１０２５から第２のテストエンコーディングユニット１０３０を経ての信号も受け取り、テスト信号は、マルチプレクサ１０２０を制御するコントロール信号ｔｅｓｔ１に基づいて選択される。テストパターン（Ｅ［１９：０１］）は、次いで、シリアライザ１０３５によりシリアル化され、インターフェイスを経て送信される。
【００３４】
図１１及び１２は、テストの実施形態において送信器で２０ビットデータを発生しそして受信器で処理するプロセスを詳細に示す。図１１は、テストシステム又は方法の一実施形態の２０ビットテストパターン発生を示す。この図において、発生された１７ビットテストパターン１１０５が遷移エンコーディングロジック１１１０に与えられ、３ビットのテスト信号がマルチプレクサ１１１５に与えられる。ある実施形態では、ジェネレータが２０ビットデータパターンを直接発生するか、或いは遷移エンコーディングユニット（ＴＥ）を経て発生する。例えば、バイパス＝０の場合には、１７ビットデータがＴＥにより２０ビットへと変換される。さもなければ、１７ビット入力がＴＥをバイパスし、テストジェネレータにより与えられる３ビット入力と合流されて、２０ビットを形成する。ある実施形態では、バイパス信号がテストモード信号から導出される。
【００３５】
図１１は、テストシステム又は方法の実施形態に対する２０ビットテストパターン処理を示す。ある実施形態では、変換式で実施される補数化をバイパスでターンオン及びオフする。バイパス＝０の場合には、図１２に示すように、２０ビットデータは、ＴＥにより行われる１７／２０変換から得られ、そしてテストジェネレータからの３ビット入力は、無視される。１７／２０変換は、１７ビットから２０ビットへのデータ変換がＴＥにより実行されることを表す。しかしながら、バイパス＝１の場合には、所与の変換式の左から３番目の列が、テストジェネレータからの３ビット入力の１ビットに置き換えられる。１７ビットデータには３つの区画（即ち、６ビット、５ビット及び６ビット）があるから、３つの対応する列が３ビット入力と置き換えられる。列の置き換えに加えて、変換における補数化がディスエイブルされて、ＴＥの出力にオリジナルデータを発生できるようにする。図１１に示されたマルチプレクサは、送信器に存在するテストジェネレータにおいて列の置き換えを実施する。図１２は、受信器における回復された２０ビットデータをどのようにして同様に処理できるかを示す。デシリアライザ１２０５の後に、バイパス＝１の場合には、変換がディスエイブルされ、そして２０ビットデータがエラーチェッカ１２１５に与えられる。さもなければ、２０ビットデータは、遷移デコーディングユニット（ＴＤ）１２１０を経て１７ビットデータへとデコードされる。デコードされた１７ビットデータは、エラーチェッカ１２１５に与えられ、そして１７／２０変換によって導入される列に対応する３ビットデータは、エラーチェッカ１２１５において無視される。同様に、ＴＤ１２１０によって実行される２０ビットから１７ビットへの変換は、２０／１７変換として表される。
【００３６】
ある実施形態では、ハードウェアのオーバーヘッドを減少しそしてテストの融通性を高めるために、システム又はプロセスは、プロパティ指向のテスト方法を使用する。ある実施形態では、テスト方法は、非ＰＲＢＳ（ＰＲＢＳは擬似ランダムバイナリシーケンス）ベースのテスト方法であり、テストハードウェアのサイズを、ＰＲＢＳベースの従来のＢＩＳＴに比して著しく減少することができる。このようなテストシステム又はプロセスの実施形態は、ＰＲＢＳ多項式とは独立しているので、製造、特徴付け及びシリコンデバッグ段階におけるＳＰＤＲＡＭ装置のテストも、より柔軟性がある。ＰＲＢＳパターン及び非ＰＲＢＳパターンは、両方とも、被試験デバイスに適用することができる。
【００３７】
図１３は、メモリのＳＰＤＲＡＭテスト構造の一実施形態を示し、そして図１４は、ホストチップのＳＰＤＲＡＭテスト構造の一実施形態を示す。図１３に示されたＳＰＤＲＡＭメモリテスト構造は、メモリチップのシリアルＩＯインターフェイスを直接的に、又はメモリロジックを通して、テストするのに使用される。図示されたように、ＳＰＤＲＡＭメモリ１３００は、メモリバンク１３０５と、スイッチ及びポートロジック１３１０と、ＳＰＤＲＡＭテストジェネレータ１３１５と、エラーチェッカ１３２０と、シリアライザ１３２５と、デシリアライザ１３３０とを備えている。この図において、ユーザテストパターン１３５０から生じる、テストジェネレータ１３１５から発生されたテストパターンは、ｔｅｓｔ１、ｔｅｓｔ２及びｔｅｓｔ３として示されたコントロール信号入力に基づいて、シリアルＩＯ又は内部メモリインターフェイスに付与される。この図において、テストジェネレータは、メモリ又はホストチップの全てのＰＨＹ層におけるテスト発生回路間に共有された共有テストパターンソースを含む。ある実施形態では、ＴＰＥは、各ＰＨＹ層のテスト発生回路専用とされる。エラーチェッカ１３２０は、エラーに対する入力テストデータを検査する。デシリアライザ１３３０は、遷移デコーディングユニット１３６０に結合され、これは、マルチプレクサを経てスイッチ及びポートロジック１３１０に結合される。
【００３８】
ある実施形態では、テスト構造は、デシリアライザ１３３０からシリアライザ１３２５へのバイパスループバック経路１３５５を与える。このバイパスは、例えば、ｔｅｓｔ１＝１及びｔｅｓｔ２＝１の場合にアクティブとなる。バイパスループバック経路１３５５は、シリアルＩＯリンクを外部からテストできるようにし、そして診断解像度を向上させるのに使用できる。例えば、シリアルＩＯリンクが内部テスト構造を使用して欠陥となったが、バイパスループバック経路を経て有効とされた場合には、シリアルＩＯリンクは、欠陥の原因ではないという結論になる。欠陥は、むしろ、内部ＢＩＳＴテスト構造を含む内部テスト経路から生じることがある。ある実施形態では、エラーチェッカ１３２０は、バイパステストモード中にイネーブルされる。エラーチェッカ１３２０は、更に、デシリアライザ１３３０へのシリアルＩＯテスト経路の診断解像度を向上させることができる。ある実施形態では、システムは、ＳＰＤＲＡＭメモリに使用される非適合ＢＩＳT回路を収容してもよい。例えば、ボードレベルテストでは、ＰＨＹコア（又はＳＯＣ）におけるＢＩＳＴテスト構造は、内部バイパスループバック経路を通してＳＰＤＲＡＭメモリ装置におけるシリアルＩＯリンクを確認することができる。
【００３９】
同様に、メモリインターフェイステスト構造は、図１４に示すＳＰＤＲＡＭホストにおいて具現化される。図示されたように、ホスト１４００は、ＳＰＤＲＡＭテストジェネレータ１４２０と、受信ユーザテストパターン１４２２と、エラーチェッカ１４１５と、シリアライザ１４２５と、デシリアライザ１４３０とを備え、デシリアライザは、ＦＩＦＯ１４３２に結合され、そしてこのＦＩＦＯは、遷移デコーディングユニット１４８０に結合される。ホスト１４００は、更に、システムロジック１４７５へのリンクを含み、これは、遷移エンコーディングユニット１４８５に結合される。このような装置では、あるテストに対してバイパスループバック１４７０が導入される。ホストチップにメモリインターフェイステスト能力を設けることで、ＳＰＤＲＡＭメモリチップのボードレベルテスト又は製造テストに対する効果が与えられる。ＳＰＤＲＡＭメモリチップは、チップ面積に関して制約があり、従って、完全なメモリインターフェイステスト特徴は、実現できないことがある。そのようなケースでは、メモリインターフェイステスト構造は、ホストチップにおいて具現化され、そしてシステムボード上のＳＰＤＲＡＭメモリのメモリインターフェイスを確認するのに使用される。ある実施形態では、同じテストチップを使用して、ＳＰＤＲＡＭメモリチップのテストを発生することができる。発生されたテストパターンは、シリアルＩＯ接続を経てメモリチップに伝送される。テスト構造は、ｔｅｓｔ５及びｔｅｓｔ６のような信号の設定に基づいて、テストに関与してもよいし、バイパスしてもよい。種々の具現化において、ユーザテストパターンは、オンチップで実施されてもよいしオフチップで実施されてもよい。
【００４０】
図１５は、シリアルＩＯインターフェイスに対する自己ループバックテスト構成の一実施形態を示す。図１５に示すように、例えば、コントロール信号ｔｅｓｔ１及びｔｅｓｔ２が、各々、論理“１”及び“０”にセットされた場合には、シリアルＩＯインターフェイスが自己ループバック接続を経てテストされる。自己ループバックシリアルＩＯテストは、図１５に示されている。この図において、ＳＰＤＲＡＭメモリ１５００は、メモリバンク１３０５と、スイッチ及びポートロジック１３１０とを備えている。シリアルＩＯテスト中に、テストジェネレータ１３１５は、２０ビットテストデータのストリームを与え、そしてシリアライザ１３２５は、発生されたテストパターンを、自己ループバック経路１５５０を経てデシリアライザ１３３０へシリアルに送信する。デシリアライザ１３３０は、受信したシリアルビットストリームを２０ビットテストパターンへと再構成し、そしてエラーチェッカ１３２０は、再構成されたテストパターンが有効であるかどうか決定する。ある実施形態では、テスター１５４０によりテストコントロールが与えられる。
【００４１】
ある実施形態では、メモリインターフェイステスト構造は、メモリ及びメモリインターフェイスロジック、例えば、ポートロジック及びスイッチの物理的欠陥から誘起されるエラーをターゲットとする。図１６は、メモリインターフェイスに対する自己ループバックテスト構成の一実施形態を示す。この図において、ＳＰＤＲＡＭメモリ１６００は、メモリバンク１３０５と、スイッチ及びポートロジック１３１０とを備え、ＳＰＤＲＡＭテストジェネレータ１３１５は、ユーザテストパターン１３５０を受け取る。このメモリは、更に、エラー状態に基づいて出力を発生するＳＰＤＲＡＭエラーチェッカ１３２０も備えている。この図において、テストモード入力ｔｅｓｔ４が“０”にセットされそしてテストモード入力ｔｅｓｔ３が“１”にセットされたときに、メモリインターフェイステストがセットアップされる。メモリインターフェイスをテストするために、発生されたＳＰＤＲＡＭコマンド又はテストパターンのシーケンスがポートロジックに与えられる。テスト応答は、シリアルＩＯ自己ループバックを通らずに直接捕獲されてエラーチェッカ１３２０でチェックされる。この直接的な観察は、メモリ及びメモリインターフェイス回路のテストがシリアルＩＯとは独立して実行できるので、診断解像度を改善する。
【００４２】
ＤＲＡＭメモリテスト能力をテスト構造に直接与えるのではなく、ここに提案するテスト構造は、メモリテストのためのユーザ定義テストパターンを収容するためのハードウェアインターフェイスを提供する。このメモリインターフェイステスト構造は、ユーザ定義メモリテストパターンを、同じテストを実施するのに使用できるＳＰＤＲＡＭコマンドシーケンスへと変換する。種々の実施形態において、ユーザ定義テストパターン１３５０は、例えば、オンチップで実施されてもよいし、又はテストコントロールを行う外部テスターから与えられてもよい。
【００４３】
ある実施形態では、アーキテクチャー上、ＤＲＡＭメモリ製造者がそれら自身のテストパターンを使用して、ターゲットとするメモリインターフェイスを通してそれらのメモリを確認することができる。しかしながら、ある実施形態において、ユーザ定義テストパターンが与えられない場合には、メモリインターフェイステスト構造が、メモリインターフェイスロジックのためのＳＰＤＲＡＭテストパターンを内部で発生することができる。又、外部テスターからメモリインターフェイステスト構造を通して同じメモリインターフェイスロジックをテストすることもできる。
【００４４】
図１７は、ＡＴＥを含むテスターを使用するメモリインターフェイスのためのテスト構成の一実施形態を示す。この図において、ＳＰＤＲＡＭメモリ１７００は、メモリバンク１３０５と、スイッチ及びポートロジック１３１０とを備えると共に、ＳＰＤＲＡＭエラーチェッカ１３２０と、シリアライザ１３２５及びデシリアライザ１３３０も一緒に備えている。更に、テスターは、デシリアライザ１３３０にリンクされ、これは、遷移デコーディングユニット１３６０に結合される。ある実施形態では、図１７に示すように、テストパターンをテスター１５４０から供給することができ、そしてオンチップエラーチェッカ１３２０によりエラーをチェックすることができる。メモリ又はメモリインターフェイステストを構成するために、テストモード信号ｔｅｓｔ３及びｔｅｓｔ４が論理“０”にセットされる。このテストモードでは、メモリをテストするかメモリインターフェイスをテストするかは、テスター１５４０により供給されるテストパターンに依存する。
【００４５】
図１８及び１９は、機能的経路をテストするためのテスト構成を示す。ある実施形態では、ＳＰＤＲＡＭメモリチップは、面積の制約のため構造テストのような標準的デジタルテストを受け容れられないので、機能的経路は、ここに提案するテスト構造でテストすることができる。図１８は、機能的経路に対する外部ループバックテスト構成の一実施形態を示す。この図において、ＳＰＤＲＡＭメモリ１８００は、メモリバンク１３０５と、スイッチ及びポートロジック１３１０とを、テストジェネレータ１３１５及びエラーチェッカ１３２０と共に備えている。更に、このメモリは、シリアライザ１３２５及びデシリアライザ１３３０も備えている。図１８において、メモリインターフェイスの出力から遷移エンコーダユニット１８６０を経てシリアライザ１３２５へ至る機能的経路は、テストモード信号をｔｅｓｔ１＝“０”、ｔｅｓｔ３＝“１”及びｔｅｓｔ４＝“１”にセットすることによりテストされる。このテスト構成では、発生されたテストコマンドは、メモリインターフェイスへ供給され、そしてテスト応答は、試験下の機能的経路及びシリアルＩＯ自己ループバック経路１５５０を経てエラーチェッカ１３２０へ伝送される。
【００４６】
図１９は、機能的経路に対する自己ループバックテスト構成の一実施形態を示す。この図において、ＳＰＤＲＡＭメモリ１９００は、メモリバンク１３０５と、スイッチ及びポートロジック１３１０とを、テストジェネレータ１３１５及びエラーチェッカ１３２０と共に備えている。更に、このメモリは、シリアライザ１３２５及びデシリアライザ１３３０も備え、そのデシリアライザは、遷移デコーディングユニット１３６０に結合される。デシリアライザ１３３０からメモリインターフェイスへの機能的経路のテストは、テストモード信号を、ｔｅｓｔ１＝“１”、ｔｅｓｔ２＝“０”、ｔｅｓｔ３＝“０”及びｔｅｓｔ４＝“０”にセットすることにより確立できる。発生されたテストパターンは、シリアルＩＯ自己ループバック１５５０、試験下の機能的経路及びメモリインターフェイスを通してエラーチェッカ１３２０へ伝送される。
【００４７】
メモリインターフェイステスト構造は、外部テスターのための経済的なテストインターフェイスを提供するのに使用される。テスターは、ここに提案するテスト構造を経てメモリインターフェイスへ希望のテストパターンを付与する。そのテスト構造は、上述したように、テスト解凍ハードウェアとして機能する。テスターが、例えば、ＲＥＡＤ  ＳＰＤＲＡＭテストを行う場合には、メモリテストインターフェイスユニットは、ＲＥＡＤコマンドを、個別のメモリバンクアドレスを伴う４つの同じＲＥＡＤコマンドへとデコードする。拡張されたＲＥＡＤコマンドが４つのメモリバンクへ並列に送られる。
【００４８】
付加的なハードウェア最適化が望まれる場合には、テストジェネレータ及びエラーチェッカが全てのポート間で共有される。図２０は、単一ポートに結合されたテストジェネレータ２０１５及びそのポートのための単一エラーチェッカ２０２０を使用するメモリ又はＰＨＹ層９０５に対するＳＰＤＲＡＭテスト構造のアーキテクチャーの一実施形態を示す。図２０において、全てのシリアルＩＯチャンネルは、シリアルな形態で接続され、第１ポートのシリアライザ９３０は、第２ポートのデシリアライザ９３５に接続され、これは、第２ポートのシリアライザとループにされ、そして第２ポートのシリアライザ９３０は、第３ポートに接続され、等々となる。図２０は、一例を示すが、多数の異なる構成が考えられる。ここに示すシステムでは、発生されたテストデータが、シリアル接続チャンネルの一端２０５０に付与され、そしてその他端２０６０においてテスト応答がチェックされる。図２０に提案されるアーキテクチャーは、ハードウェアオーバーヘッドを減少するために従来のＢＩＳＴシステムに効率的に適用することができる。
【００４９】
ある実施形態では、ＳＰＤＲＡＭシリアルＩＯテスト構造は、シリアルＩＯリンクのエラーをターゲットとする。ある実施形態では、このテスト構造は、例えば、“Interface Test Circuitry and Methods”と題する米国特許出願第１１／７４２，３５８号に開示されたテストのようなテストエンコーディング概念を利用することができる。ある実施形態では、このシリアルＩＯテスト構造は、ＳＰＤＲＡＭコマンドを認識せず、テストエンコード２０ビットテストパターンをシリアルＩＯテストに適用する。図２１は、テストシステムの一実施形態を示す。このシステムは、テストプロパティジェネレータ２１０５及びパターンソース２１１０を含み、これらは、送信側のシリアライザ２１２０に結合される。信号は、チャンネル２１２５を横切って送信され、受信側のデシリアライザ２１３０によりデシリアル化され、そしてテストプロパティチェッカ２１４０により検査されて、エラーを検出する。図示されたように、このシステムは、テストプロパティ２１０５を送信テストパターン２１１０へ埋め込み又はエンコードする。次いで、受信したテストパターンのストリームからテストプロパティが抽出され、テストプロパティチェッカ２１４０によりエラーの存在についてチェックされる。
【００５０】
ある実施形態では、シリアルＩＯテスト構造は、特徴付け、製造テスト及びシリコンデバッグのために送信器（ＴＸ）及び受信器（ＲＸ）の両方にプログラム可能なテストパターンのリッチセットを与えるのに使用される。図２１において、送信器（ＴＸ）及び受信器（ＲＸ）のアクションを示すために大文字及び小文字が各々使用される。ＴＸは、シリアライザ２１２０を含み、そしてＲＸは、デシリアライザ２１３０を含む。記号Ｋ＊は、例えば、同期コマンドＳＹＮＣ又はＳＹＮＣ２の繰り返し数を表す。各テストパターンは、テストパターンの開始に同期させるために同期コマンドのシーケンスがプレフィックスとなる。従って、同期コマンドのプレフィックスシーケンスは、明確に述べない。
【００５１】
ある実施形態では、ＲＸにおけるエラーチェックは、ＴＸのシリアルＩＯテストジェネレータからデカップルされる。即ち、エラーチェッカは、ランダムテストパターンを発生するのに使用されるＰＲＢＳとは独立している。そのようなシステムにおいて、テストプロパティは、被試験デバイス（ＤＵＴ）を確認するためにＲＸにおいてどんな種類のテストパターンをチェックするか特定する。この意味で、テストプロパティは、通信プロトコルと同様に働く。ある実施形態では、システムは、テスト中にチャンネルを経て送信すべきテストパターンの形式を特定する。埋め込まれたプロパティは、テストパターンの到来するストリームから抽出され、そして受信されたテストパターンは、その抽出されたテストプロパティに少なくとも一部分基づいてチェックされて、エラーが存在するかどうか決定することができる。ある実施形態では、テストプロパティは、テストパターンソースへ埋め込まれ又はエンコードされる。テストパターンソースは、ＡＴＥベクトル、ＰＲＢＳパターン、及び他の外部パターンソースを含む。
【００５２】
図２２は、エラー検出プロセスの一実施形態を示す。この図において、意図されたテストプロパティを伴うテストパターン２２０５は、シリアライザ２２１０によりシリアル化され、そしてチャンネル２２１５を経て送信され、受信されたテストパターンは、デシリアライザ２２２５によりデシリアル化されて、パターンｅ２２３０を生じる。エラーチェッカが、送信されたデータストリームに埋め込まれたテストプロパティを無効化できる場合には、受信器においてエラーをチェックし検出することができる。この例では、エラーが発生して（２２２０）、欠陥を含む受信データが生じるか、又は有効コード２２３５が無効コード２２４０へ変換される。
【００５３】
テストパターンは、１７ビット又は２０ビットデータのシーケンスとみなすことができる。テストパターンのシーケンスは、テストパターンシーケンスと称される。テストプロパティは、ある関数の入力及び出力を搬送するｎタプルとして各テストパターンを解釈することによりテストパターンシーケンスから導出することができる。
【００５４】
図２３は、テストシステムの一実施形態に対するテストエンコーディング関数の概念を示す。図２３は、一例として３ビットデータを使用するテストエンコーディングの実施形態を示す。３ビットデータ又はコードワードの場合には、図２３の（ａ）に示すように、８個のコードワードが考えられる。コードワードｅ［２：０］は、ｙ＝ｆ（ａ、ｂ）のようなある関数ｆの入力及び出力を搬送するトリプル（ａ、ｂ、ｙ）として解釈される。任意のブール関数を使用してコードワードを解釈することができる。この例において、図２３の（ｂ）に示すように、２入力ＡＮＤ関数を使用してコードワードを解釈することができる。図２３の（ｃ）に示すように、３ビットコードワードスペースが２つのサブセットに区画され、一方のサブセットは、ｙ＝ｆ（ａ、ｂ）＝ａ＆ｂを満足し、そして他方は、ｙ＝〜ｆ（ａ、ｂ）＝〜（ａ＆ｂ）を満足し、但し、〜ｆは、関数ｆの補数を表す。各列要素がクラスシグネチャーである列Ｓは、関数ｆ（ａ、ｂ）及び所与の出力ｙが補数であるかどうか指示する。即ち、ｙ＝ｆ（ａ、ｂ）の場合には、Ｓ＝０であり、ｙ＝〜ｆ（ａ、ｂ）の場合には、Ｓ＝１である。例えば、Ｅ［２：０］＝０００の場合には、ｙ＝０であり且つｆ（ａ、ｂ）＝０＆０＝０である。ｙ＝ｆ（ａ、ｂ）であるから、Ｓ＝０である。しかしながら、Ｅ［２：０］＝００１の場合には、ｙ＝１であり且つｆ（ａ、ｂ）＝０である。ｙ≠ｆ（ａ、ｂ）であるから、ｙ＝〜ｆ（ａ、ｂ）であり、従って、Ｓ＝１である。テストパターンのクラスシグネチャーシーケンスは、テストプロパティとして定義される。テストパターンが（０００→１１０→０１０→１０１→１００→０１１→１１１→００１）＊より成る場合には、それに対応するシグネチャーシーケンスが（０→１）＊であり、但し、＊は、繰り返しを表す。テストプロパティは、オリジナルのテストパターンよりコンパクトにすることができるので、エラーチェックタスクを著しく簡単化することができる。必要に応じて、複数のテストエンコーディング関数を使用することができる。
【００５５】
以下に示す例として、テストデータストリーム＞．．．ｅ3ｅ2ｅ1＞の各ｅi［１９：０］は、３つの関数の入力及び出力を搬送する２０タプルとして解釈される。記号ｘkは、ｋ＝２、１、０とすれば、関数ｆkの入力を表す。記号ｙkは、テストエンコーディング関数と称される解釈関数ｆkの出力を表す。テストエンコーディング関数は、パターンシーケンスにおける各ｅi［１９：０］の解釈を与える。例えば、ｎビットデータは、ある関数の入力及び出力を搬送するｎタプルベクトルとして解釈することができる。２０ビットのｅi［１９：０］に対して、
ｅi［１９：０］＝（ｘ1、ｘ0ｘ2、ｘ1、ｘ0ｘ2、ｘ1、ｘ0ｘ2、ｘ1、ｘ0ｘ2、ｘ1、ｘ0ｘ2、ｘ1、ｘ0ｙ2、ｙ1、ｙ0）
は、例えば、３つの任意の関数の入力及び出力を含む２０タプルベクトルと考えることができる。入力及び出力は、それらのビット位置のインデックスに適用されるモジュロ３の演算に基づいて区画される。一般的に、モジュロｎ演算は、ｎ個の関数が考えられる場合に適用される。モジュロ３演算に基づく入力及び出力の区画は、次のように要約される。
Ｘ0＝ｅ［１９：０］↑｛３ｋ｜１≦ｋ≦６｝
Ｘ1＝ｅ［１９：０］↑｛３ｋ＋１｜１≦ｋ≦６｝
Ｘ2＝ｅ［１９：０］↑｛３ｋ＋２｜１≦ｋ≦５｝
但し、投影演算子↑は、ｉをｉ∈Ｘとすれば、ｅ［１９：０］からのｅ［ｉ］の選択として定義され、ここで、セットＸは、０≦ｉ≦１９の範囲におけるビット位置の集合を含む。例えば、ｅ［１９：０］↑｛１５、１２、９、６、３、０｝＝ｅ［１５、１２、９、６、３、０］となる。
【００５６】
出力ｆi（Ｘi）を生じるエンコーディング関数ｆkの各入力セットは、ｅ［１９：０］↑Ｉとして定義された投影演算子によって得られ、但し、Ｉはコードワードのインデックスのセットを表す。例えば、前記で示したように、各テストエンコーディング関数の入力及び出力は、テストエンコーディング関数に関連したインデックスにｅ［１９：０］を投影することによって得られる。Ｘiとして表された各エンコーディング関数の入力セットは、前記例と同様に、投影演算子を使用して定義される。関数の入力は、インデックスのモジュロ３に基づいて区画される。モジュロＮベースの区画は、改良されたエラー検出能力を与える。ある実施形態では、ダブルエラーがＮＫビット離れていない場合にはそれらを検出することができ、但し、Ｋ＞０であり、Ｎは、使用するエンコーディング関数の数を表す。例えば、２つのエラーは、３、６、９、１２、１５及び１８ビット離れている。２つのマスクされたエラー間の最小ビット数は、エラーマスク距離δとして定義され、即ちδ＝Ｎである。マスクされたダブル欠陥の数ηは、η＝Ｗ−δとして定義され、但し、記号Ｗは、コードワードの巾を表す。３つのテストエンコーディング関数を伴う２０ビットコードワードの場合には、Ｗ＝２０、δ＝３及びη＝Ｗ−δ＝２０−３＝１７である。エラーは、しばしばバーストで生じるので、一定距離離れた２つのエラーは、普通ない。ある実施形態では、バーストエラーがｅ［１９：０］における連続的な複数ビットエラーとして定義される。例えば、バーストエラーは、ｅ［７：４］として生じる。ある実施形態では、｜ｎ−ｍ｜＋１＝２ＮＫの場合を除き、ｅ［ｎ：ｍ］のバーストエラーを検出することができる。例えば、３つのエンコーディング関数が使用される場合には、６、１２及び１８の連続エラーを除く全てのバーストエラーが検出される。２Ｎの最小バーストエラー長さは、バーストエラーマスキング長さλとして定義され、即ちλ＝２Ｎ又は２δである。より頑健なエラーエイリアシング防止が要求される場合には、増加された数のテストエンコーディング関数を導入することができるか、又はハイアラーキー構成のテストエンコーディング関数を考慮することができる。
【００５７】
ある実施形態では、テストエンコーディング関数は、組み合わせ又は順次のものでよい［２］。説明を簡単にするため、この章では、組み合わせのテストエンコーディング関数を仮定する。図２４は、組み合わせテストエンコーディング関数の一実施形態を示す。この図において、３つのテストエンコーディング関数ｆ0２４１０、ｆ1２４２０及びｆ2２４３０がある。これら関数は、同じである必要はない。図１５において、エンコーディング関数ｆ0、ｆ1及びｆ2の出力又はそれらの補数が計算されてｅ［２：０］に入れられ、望ましい２０ビットコードワードを形成する。ある実施形態では、取り扱うエラーの形式に基づいてテストエンコーディング関数が使用される。
【００５８】
テストエンコーディング関数の出力が補数であるかどうか識別するために、ここに述べるクラスシグネチャーがシステムに導入される。図２５は、テストシステム又はプロセスの実施形態に使用されるテストデータのクラスシグネチャーを示す。図示されたように、関数ｆ0２５１０、ｆ1２５２０及びｆ2２５３０の出力がクラスシグネチャー関数２５４０により処理されて、考えられるクラスシグネチャー２５５０を生じる。
【００５９】
ある実施形態では、クラスシグネチャーは、関数ｆ（Ｘ2）、ｆ（Ｘ1）及びｆ（Ｘ0）の計算された出力がｅ［２：０］＝（ｙ2、ｙ1、ｙ0）にどのように関連するか指示するのに使用される。意図される関係を導出するために、ある関数を使用して、それらの関係を解釈することができる。それらの関数は、クラスシグネチャー関数と称される。この例では、ＸＯＲ関数を使用して、クラスシグネチャーが計算される。この場合には、クラスシグネチャー関数出力の論理０及び１は、各々、ｙi＝ｆ（Ｘi）及びｙi＝¬ｆ（Ｘi）を指示する。記号¬は、論理的否定又は補数を表す。クラスシグネチャー関数は、次のように要約される。
【数１】
0005651171.tif 000002
【００６０】
クラスシグネチャー関数は、次のように表される。
【数２】
0005651171.tif 000003
ＸＯＲ演算は、関数の出力と、コードワードにおける対応ビットコンテンツとの間の関係を指示する。Ｓ［ｉ］＝０は、ｅ［ｉ］がテストエンコーディング関数の出力を含み、即ちｅ［ｉ］＝ｆi（Ｘi）であることを指示する。さもなければ、ｅ［ｉ］は、エンコーディング関数の補数出力を含む。
【００６１】
図２６は、テスト構造の実施形態に対するクラスシグネチャーを示す。上述した例のクラスシグネチャー関数に基づいて、８個のクラスシグネチャーがあり、シグネチャー２６０５−２６４０として示されている。いかなるコードワード又はテストパターンもこれら８個のシグネチャーの１つを生じなければならない。換言すれば、クラスシグネチャー関数は、全ての考えられるコードワードのセットを多数のサブセットへと区画する。この例では、サブセットの数は、２Nであり、但し、Ｎは、テストエンコーディング関数又はクラスシグネチャー関数の数である。この例では、図２６に示すように、Ｓ［２：０］として表された３つのクラスシグネチャー関数があり、それ故、８（２3）のクラスシグネチャーがある。
【００６２】
テストパターンは、希望のテストを実施するテストデータの順序付けされたリストとみなすことができる。テストパターンシーケンスは、対応するクラスシグネチャーシーケンスにより表される。図２７は、クラスシグネチャーシーケンスの実施形態を示す。一例において、２つのコードワードｅ［１９：０］＝１００００００００００００１００００００及び１００１１１１１１１１１１１１１１１１１がテストパターンにおいて繰り返される。従って、テストエンコーディング関数の出力は、第１のコードワードに対して００１であり、そして第２のコードワードに対して１１０である。各テストデータに対するクラスシグネチャーは、ｋ＝２、１、０とすれば、ｆk（Ｘk）及びｅ［ｋ］に対してビット単位のＸＯＲ関数を解くことによって計算される。それにより得られるクラスシグネチャーシーケンスは、図２７に示すように（００１→１００）＊である。記号＊は、繰り返し数を表す。図中、関数出力ｆ2（Ｘ2）、ｆ1（Ｘ1）及びｆ0（Ｘ0）は、ｆ210（Ｘ210）として表される。第２の規範的テストパターンのＳ［２：０］シーケンスも、同様に得ることができる。
【００６３】
ある実施形態では、クラスシグネチャー関数は、同等関係として考えることもできる。各クラスシグネチャーは、各クラスを表すものと考えられる。例えば、図２６において、ｅ［２：０］により表される各クラスには、２17個のコードワードがある。同じクラスシグネチャーを有する２つのテストパターンは、同等である。
【００６４】
同様に、テストパターンシーケンスは、それらのクラスシグネチャーシーケンスにより表される。このため、クラスシグネチャーシーケンスは、テストパターンのクラスを特定する。ここに提案する解決策では、クラスシグネチャーシーケンスを使用してテストプロパティが表される。ある実施形態において、システムは、ダウンサイドで従来のＰＲＢＳベースのテスト方法に比してエラーマスクを増加して、減少ハードウェアオーバーヘッドで使用可能なテストパターンのセットを増加することができる。エラーは、有効なテストパターンシーケンスを、同じシグネチャーシーケンスを発生する非有効シーケンスへ変化させるおそれがある。ここに述べるテストエンコーディング関数に基づき、マスクされるエラーは、例えば、２０ビットコードワードにおいて厳密にＮＫ離れた２つのエラーと、先に述べた２ＮＫバーストエラーとを含み、但し、Ｎは、使用されるテストエンコーディング関数の数を表し、そして整数Ｋ＞０である。
【００６５】
ターゲットとするテストアプリケーションに対してエラーマスキングが受け容れられない場合には、ある実施形態では、システム要件を満足するためにテストエンコーディング関数の異なるセットを使用することができる。例えば、テストパターンにテストプロパティを埋め込むために、奇数及び偶数のテストエンコーディング関数の２セットをハイアラーキー的に編成することができる。図２８は、ハイアラーキーテストエンコーディング関数の実施形態を示す。ハイアラーキー的なテストエンコーディング関数及びそれらの解釈が、関数ｇ（奇数及び偶数入力を伴う）及びｆを用いた一例を使用して、図２８に要約される。テストエンコーディング関数ｆ2、1、0２８２０を使用する［２：０］の解釈と同様に、ｅ［３］及びｅ［４］も、各々、独立したテストエンコーディング関数ｇ1及びｇ0２８１０を使用して解釈される。ｇ1及びｇ0の入力は、ｅ［１７：５］のモジュロ２の仕切りにより得ることができる。即ち、ｇ1の入力は、ｅ［１７、１５、１３、１１、９、７、５］であり、そしてｇ0の入力は、ｅ［１６、１４、１２、１０、８、６］である。テストエンコーディング関数の各セットは、テスト中に独立して操作することができる。コードワードの部分ｅ［１７：３］に対して個別のクラスシグネチャーを定義することもできる。ハイアラーキー的なテストエンコーディングスキームは、ＴＥ（Ｗ、Ｎ１、Ｎ２・・・Ｎｍ）と表すことができ、但し、Ｗ及びＮｉは、各々、コードワードの巾、及びハイアラーキーレベルｉにおけるテストエンコーディング関数の数を表す。例えば、図２８のテストエンコーディングスキームは、ＴＥ（２０、３、２）として表すことができる。ハイアラーキーレベルは、考慮中のテストエンコーディングに組み込まれるコードワードの巾から決定される。Ｗ（ｉ＋１）で表される（ｉ＋１）番目のハイアラーキーレベルにおけるコードワードの巾は、Ｗ（ｉ＋１）＝Ｗ（ｉ）−Ｎｉとして繰り返し決定することができ、但し、Ｗ（１）＝Ｗ及びｉ＞０である。ＣＷ（ｉ＋１）として表されるコードワードの（ｉ＋１）番目のレベルは、除去されたテストエンコーディング情報を搬送するビットを伴うコードワードとして定義される。例えば、図２８に示すテストエンコーディングの第１及び第２レベルのコードワード巾は、各々、Ｗ（１）＝２０及びＷ（２）＝２０−３＝１７である。ハイアラーキーコードワードも、同様に、ＣＷ（１）＝Ｅ［１９：０］及びＣＷ（２）＝Ｅ［１９：３］として得ることができる。エラーは、各ハイアラーキーレベルで独立して観察されるので、エラーマスキングは、次の場合、即ち、
0005651171.tif 000004
図２８では、例えば、ＣＷ（２）においてδ＝Ｎ１ｘＮ２＝３ｘ２＝６ビット離れ、η＝１７−６＝１１であり、λ＝２δ＝１２である。δ＝５、η＝１５及びλ＝２δ＝１０の場合に、ＴＥ（２０、５）として表される非ハイアラーキー的テストエンコーディングと比較して、ハイアラーキー的エンコーディングは、改善されたエラーマスキング能力を与えることができる。ダブルエラーマスキングが可能であるから、ｎ＝２、３、等とすれば、ＣＷ（ｍａｘ（ｉ））において２n個のエラーを伴うエラーマスキングも可能となる。ダブルエラーマスキングを回避するために、テストエンコーディングスキームは、ＴＥ（２０、５、３）へ向上させることができる。このエンコーディングスキームでは、ＣＷ（２）＝Ｅ［１９：５］及びＷ（２）＝１５である。マスクされるエラーは、１５ビット離れて生じ、これは、ＣＷ［２］の外部である。というのは、Ｅ［１９：５］における最初と最後のビットが１４ビット離れているからである。従って、エラーをマスクすることができない。エラーマスキング寛容度を保証するために、テストエンコーディングスキームは、次のことを満足させる。テストエンコーディングスキームＴＥ（Ｗ、Ｎ１、Ｎ２、・・・Ｎｍ）の場合に、
１．ｉ≠ｊとすれば、ＮｉとＮｊとの間に共通の除数がない；
２．ｍｉｎ（ｘ）がｘの最小値を表すとすれば、ｍｉｎ（Ｎｉ）＝Ｎｍ；
３．テストエンコーディングスキームにおけるハイアラーキーの数は、テストエンコーディング関数の全数、即ちＮから、
0005651171.tif 000005
となり且つ
0005651171.tif 000006
が最大となるように、決定することができる。
例えば、１０個のテストエンコーディング関数を２０ビットコードワードにおいてエンコーディングスキームに合体すべき場合には、エンコーディングスキームＴＥ（２０、６，４）は、ＴＥ（２０、７、３）ほど効率的でない。これは、６及び４の共通の除数（即ち、２）が、エラーマスキング距離を、２４ではなく、１２に減少するからである。エラーマスキング距離がＷ（２）＝１４の場合より小さいので、マスクされるダブルエラーが２つとなる。他方、ＴＥ（２０、７、３）では、７と３との間に共通の除数がなく、２１のエラーマスキング距離が維持される。エラーマスキング距離が、Ｗ（２）＝１３又はＷ（２）−２１＝−８（ゼロより小さい）を越えるので、ＴＥ（２０、７、３）ではエラーマスキングを行うことができない。ハイアラーキーの最低レベルにおけるコードワードの巾、例えば、Ｗ（ｍ）は、エラー検出能力に影響を及ぼす。Ｗ（ｍ）−エラーマスキング距離＜０のときにはエラーをマスクすることができないので、Ｗ（ｍ）は、全てのＷ（Ｎｉ）間で最も小さくなければならない。全数のテストエンコーディング関数の区画を改善することでも、エラーマスキングの機会を減少するか、又はエラー検出能力を高めることができる。例えば、３０ビットコードワードにおける１０個のエンコーディング関数は、第１レベルの５つのエンコーディング関数、第２レベルの３つの関数及び第３レベルの２つの関数より成るハイアラーキーの３つのレベルで実施されて、ＴＥ（３０、５、３、２）を得ることができる。ＴＥ（３０、５、３、２）は、例えば、ＴＥ（３０、７、３）より多くのエラーを検出することができる。これは、エラーマスキング距離ＴＥ（３０、５、３、２）＝５ｘ３ｘ２＝３０であり、Ｗ（３）＝３０−５−３＝２２であって、Ｗ（３）−３０＝−８となり、エラーマスキングが行えないことを指示するからである。しかしながら、ＴＥ（３０、７、３）におけるマスクされるダブルエラーの数は、Ｗ（２）−２１＝２３−２１＝２となって、２つのマスクされたダブルエラーが２１ビット離れていることを指示する。エラーマスキングを許さない２０ビットのＳＰＤＲＡＭコードワードのテストエンコーディングスキームは、ＴＥ（２０、５、３、２）である。ＴＥ（２０、５、３、２）では、ダブルエラーをマスクすることができない。というのは、δ＝３０が、Ｗ（３）＝１２より著しく大きいからである。バーストエラーマスキング長さλは、λ＝２δ＝６０であるから、バーストエラーマスキングを行うことはできない。ハイアラーキーの各レベルのテストエンコーディング関数により奇数のエラーを検出することができる。エラーなしビットで分離された小さなバーストエラーのグループとして生じる偶数のエラーは、テストエンコーディングハイアラーキーの異なるレベルにおいて検出することができる。例えば、ＣＷ（３）＝ｅ［１１：０］内のエラーなしビットにより分離される多数のエラーグループを、テストエンコーディングハイアラーキーの１つ以上のレベルにおいて検出することができる。Ｎ１−Ｎ２＝２つのエラーなしビット離れたＮ２（又は３）個のエラーは、レベル３のテストエンコーディングスキームにより検出することができる。Ｎ２−Ｎ３＝���つのエラーなしビット離れたＮ２個のエラーは、レベル１のテストエンコーディングスキームにより検出することができる。
【００６６】
実際に、ハイアラーキー的テストエンコーディングシステム又はプロセスの実施形態は、同じコードワードについて異なるそして独立した解釈を発生することがある。従って、１つの解釈によりマスクされたエラーが別の解釈により検出されることがある。このように、ハイアラーキー的テストエンコーディングは、エラーマスキングの見込みを低減することがある。
【００６７】
ハイアラーキー的テストエンコーディングプロセスの実施形態は、非ハイアラーキー的プロセスと同様に適用できるので、非ハイアラーキー的テストエンコーディングプロセスは、ここでは、基礎的な概念を説明するためのものと仮定する。ハイアラーキー的エンコーディングシステム又はプロセスは、この説明において、必要又は適当であるがハイアラーキー的プロセスも使用できるところでのみ個別に述べる。
【００６８】
テストパターンのクラスシグネチャーシーケンスで表されるテストプロパティを以下に要約する。
0005651171.tif 000007
【００６９】
テストプロパティは、テストパターンを特定するものとして理解されたい。テストプロパティは、テストパターンシーケンスのクラス又はタイプを特定し、特別なテストパターンシーケンスを特定するものではない。意味合いを伴う論理式は、テストパターンシーケンスが、対応するクラスシグネチャーシーケンスを実施するもの（又はメンバー）であることを示す。クラスシグネチャーに対して合成演算が定義される。クラスシグネチャーのサイズは、クラスシグネチャーを発生するためのエンコーディング関数の数に依存する。例えば、本書では３ビットシグネチャーが考えられるが、その実施形態は、特定のビット数に限定されない。特定の実施例において、ＴＥ（２０、５、３、２）のハイアラーキー的エンコーディング実施が適用される場合には、対応するテストエンコーディング関数を使用して解釈することから得られる５ビット、３ビット及び２ビットのハイアラーキー的クラスシグネチャーシーケンスより成る１０ビットシグネチャーシーケンスを満足することも必要となる。
【００７０】
テストパターンのストリームにテストプロパティを埋め込み又はそれをチェックするために、クラスシグネチャーの望ましいシーケンスは、操作を要求する。ある実施形態では、クラス発生関数を使用してテストパターンシーケンスに望ましいクラスシグネチャーが埋め込まれる。図２９は、クラス発生関数の実施形態を示す。関数ｆ0２９１０、ｆ1２９２０及びｆ2２９３０の出力は、クラスシグネチャージェネレータ２９４０により処理される。一例として、ＸＯＲゲートを使用してクラス発生関数を実施することが図２９に示されている。更に、シグネチャーＳ［２：０］を操作するためにコントロール入力Ｃ［２：０］が使用される。
【数３】
0005651171.tif 000008
任意であるが、２０ビットデータＥ［１９：０］のパリティも、実際の２０ビットデータを考慮せずに以下に示すようにＣ［２：０］から計算することができる。テストエンコーディングは、計算の有効性を保証する。
【数４】
0005651171.tif 000009
【００７１】
図２９は、クラスシグネチャーＳ［２：０］をＣ［２：０］から直接制御できることを示している。ある実施形態では、Ｃ［２：０］は、選択されたクラス発生関数に対してＳ［２：０］を直接制御するのに使用されるので、同じＳ［２：０］をＣ［２：０］に適用することによって望ましいＳ［２：０］を発生することができる。この説明では、例示の目的で、クラス発生関数のＸＯＲ実施を仮定している。しかしながら、他の関数を使用して、テストアプリケーションに基づきクラスシグネチャーを発生してもよい。
【００７２】
図３０及び３１は、ハイアラーキーエンコーディングを使用してテストデータストリームにテストプロパティを埋め込むためのプロセスの実施形態を示す。図３０は、テストプロパティジェネレータ３００５に結合されたパターンソース３０１０を示す。この図において、テストプロパティジェネレータ３００５は、関数ｇ0,1３０２０及びＣE［４：３］ジェネレータ３０２５を使用するハイアラーキーエンコーディング３０１５と、ＣE［２：０］ジェネレータ３０３５と、関数ｆ2,1,0３０３０とを備えている。テストプロパティの埋め込みは、通常、送信器ＴＸにより与えられるアクションであるから、大文字の添え字Ｅが使用される。図３０に示すように、Ｅ［１７：５］は、関数ｇ0,1３０２０により解釈される。関数の出力は、必要なクラスシグネチャーシーケンスｓｅｑ（ＳE［４：３］）を発生するためにＣE［４：３］ジェネレータ３０２５によりＸＯＲロジックを経て与えられるクラスシグネチャーによって変更される。ＣE［４：３］ジェネレータ３０３５は、有限状態マシン（ＦＳＭ）であり、必要なｓｅｑ（ＳE［４：３］）を発生するようにプログラムされる。発生されたクラスシグネチャーシーケンスは、Ｅ［４：３］に埋め込まれる。Ｅ［１７：５］及びＳE［４：３］は、関数ｆ2,1,0３０３０によって同様に解釈され、そしてシグネチャーシーケンスｓｅｑ（ＳE［２：０］）も、Ｅ［２：０］に埋め込まれる。又、ｅ［１９：０］のパリティも、ＸＯＲ関数及びインバータを使用してクラスシグネチャーから計算することができる。
【００７３】
図３１は、図３０と同様であるが、ＣE［４：３］ジェネレータ３０２５及びＣE［２：０］ジェネレータ３０３５をもたない構造３１０５を示す。ある実施形態では、図３１に示すように、発生されたテストパターンからシグネチャーシーケンスが抽出される。抽出されたクラスシグネチャーシーケンスは、エラーチェックに使用できるようにされる。この方法は、例えば、被試験デバイスがシリアライザ及びデシリアライザの両方を含むときに使用することができる。送信されるべきテストパターンが発生されるときには、受信されるべきテストパターンの予想されるクラスシグネチャーも発生される。テストパターンソース及びエラーチェッカは、クラスシグネチャーシーケンスに対して同期される。
【００７４】
図３２は、受信器においてテストプロパティ埋め込みテストパターンをチェックするプロセスの一実施形態を示す。この図において、テストプロパティチェッカ３２０５は、関数ｇ0,1３２２０及びＣe［４：３］ジェネレータ３２２５として示されたハイアラーキー的エンコーディングと、関数ｆ0,1３２３０と、Ｃe［４：３］ジェネレータ３２２５と、エラーチェッカ３２５０とを備えている。埋め込まれたテストプロパティは、到来するテストデータのストリームから抽出され、そして予想されるシグネチャーシーケンスに対してチェックされる。ｓｅｑ（Ｓrx［２：０］）として表されたクラスシグネチャーの受信シーケンスは、受信器においてテストエンコーディング関数により構成される。その構成されたＳrx［２：０］は、パリティを計算するのに使用され、そして予想されるクラスシグネチャーと比較されて、エラーの存在を決定する。
【００７５】
ある実施形態では、予想されるクラスシグネチャーｓｅｑ（ＳRX［２：０］）のシーケンスが、Ｃe［２：０］ジェネレータ３２３５から発生される。抽出されたｓｅｑ（Ｓrx［２：０］）は、ｓｅｑ（ＳRX［２：０］）に対してチェックされて、エラーを検出する。上述したように、ｓｅｑ（Ｃe［２：０］）が、ｓｅｑ（ＣE［２：０］）と同じである場合には、ｓｅｑ（Ｓe［２：０］）は、エラーが存在しなければ、ゼロクラスシグネチャーのシーケンスを含み、即ちｓｅｑ（Ｓe［２：０］）＝＜（０００）（０００）（０００）．．．＜となる。換言すれば、非ゼロのクラスシグネチャーは、エラーと考えられる。従って、エラーは、クラスシグネチャービットをＯＲすることにより検出される。
【００７６】
ハイアラーキー的テストエンコーディングが使用される場合には、図２４に示すように、同じエラーチェックプロセスが、ハイアラーキー的エンコーディングに部分的にパラレルに適用される。テストエンコーディング関数及びクラスジェネレータ関数は、パターンソースの関数と同じである必要はない。それらは、一般的に独立しており、異なるテストエンコーディング関数及びクラスジェネレータ関数が好ましい最適化を与える場合には、異なるものでよい。
【数５】
0005651171.tif 000010
ＳRXは、予想されるクラスシグネチャーを表す。
【００７７】
エラー検出器は、検出されたエラーにフラグを立てる。図３３は、エラー検出器の一実施形態を示す。エラー検出器は、エラー関数ブロック３３１０及びエラーインジケータ３３２０より成る。エラー関数ブロック３３１０は、Ｓｅ［４：０］に基づきエラーをチェックするのに使用される。エラーが検出された場合に、検出器は、出力ｅｒｒSにフラグを立て、これがエラーインジケータに入力されて、エラーにフラグを立てる。
【００７８】
ある実施形態では、エラーインジケータは、有限状態マシン（ＦＳＭ）であり、ｂｉｓｔ＿ｇｏ信号がアサートされた場合にアクチベートされる。エラーインジケータは、ｆｒａｍｅ＿ｌｏｃｋ信号がアサートされるのを待機する。ｆｒａｍｅ＿ｌｏｃｋ信号は、被試験シリアルＩＯリンク間にリンクが確立されたことを指示する。ｆｒａｍｅ＿ｌｏｃｋ信号は、テストパターンにおけるプレフィックス同期コマンドのシーケンスによりアサートされる。エラーインジケータは、クラスシグネチャー発生を開始するためにｆｒａｍｅ＿ｌｏｃｋ信号に基づきｅｎＣｌａｓｓＥｎをアサートする。ｓｙｎｃＤｅｔ信号は、同期コマンドの受信を指示する。
【００７９】
エラー関数ブロックは、次のような組み合わせでよい。
【数６】
0005651171.tif 000011
【００８０】
ゼロクラスシグネチャーシーケンスをチェックすべき場合には、ＯＲ関数を使用して、エラー関数ｅｒｒSで指示される受信２０ビットテストパターンにおけるエラーを計算することができる。
【００８１】
図３４は、エラーインジケータの一実施形態の振舞いを示す。この図において、エラーインジケータは、同期エラー検出を取り扱い、そしてエラーの振舞いの連続的及び非中断観察のためにエラーから回復させる。ｂｉｓｔ＿ｇｏ＝１をアサートすることによりエラーインジケータがアクチベートされた場合に、エラーインジケータは、ｆｒａｍｅ＿ｌｏｃｋ＝１を待機し、そして他の全ての入力を無視する。ｆｒａｍｅ＿ｌｏｃｋ＝１の後に同期コマンドが受け取られた場合には、状態エラーインジケータがｗｄ状態へと変化して非同期テストパターンを待機する。非同期テストパターンが与えられた場合には、ｗｄ状態からｄｃｈｋ状態へと変化し、非同期テストパターンをチェックする。ｗｄ状態又はｄｃｈｋ状態において、受け取ったテストパターンに基づいて状態変化が生じる。ｆｒａｍｅ＿ｌｏｃｋがセットされた後の状態においてエラーが検出された場合には、エラー状態が生じ、エラーを報告する。エラーが報告された後に有効テストデータ又は同期コマンドが受け取られた場合には、状態がｄｃｈｋ状態又はｗｄ状態へ各々変化し、エラーチェックを再開する。
【００８２】
ＴＸで述べたシリアルＩＯテストジェネレータ及びＲＸにおけるエラーチェッカは、被試験シリアルＩＯインターフェイスを経て接続され、シリアルＩＯテスト構造を形成する。図３５は、シリアルＩＯテスト構造の一実施形態を示す。この構造は、パターンソース３５０２と、クラス関数ジェネレータ３５０４と、テスト信号を発生するように動作する関数ｆ2,1,0３５０６とを備え、テスト信号は、シリアライザ３５０８によってシリアル化されて、チャンネル３５１０を横切ってデシリアライザ３５１２へ送信される。受信器は、クラス関数ジェネレータ３５１４と、エラーチェッカ３５２０の信号を発生するための関数ｆ2,1,0３５１８とを備えている。送信器側では、図３５に示すように、テストエンコーディング関数及びクラス関数ジェネレータ（ＣE［２：０］）３５０４を使用してテストプロパティがテストパターンに埋め込まれるか、或いはテストプロパティがテストパターンのストリームから抽出されてＲＸへ送信される。ＴＭ［１：０］によって表されたテストモードは、好ましい具現化を選択するようにコントロールされる。被試験シリアルＩＯは、ＴＸ及びＲＸを同じ装置に含んでもよいし又は異なる装置に含んでもよい。ここに提案する具現化は、同じ装置又は異なる装置からのクラスシグネチャーをエラーチェックに合体できるようにするために使用される。内部のクラスシグネチャーを合体するだけでよい場合には、外部経路を除去できる。抽出されたクラスシグネチャーＳE［２：０］は、ＦＩＦＯ３５１６又はバッファへ直結される。
【００８３】
図３６及び３７は、テストモードの実施形態を示す。テストモードＴＭ［１：０］＝０１の場合には、テストエンコーディング関数及びクラス発生関数を使用してテストプロパティが埋め込まれる。図３６において、この構造は、パターンソース３５０２と、クラス関数ジェネレータ３５０４と、テスト信号を発生するように動作する関数ｆ2,1,0３５０６とを備え、テスト信号は、シリアライザ３５０８によってシリアル化されて、チャンネル３５１０を横切ってデシリアライザ３５１２へ送信される。受信器は、クラス関数ジェネレータ３５１４と、エラーチェッカ３５２０によって検出される信号を発生するための関数ｆ2,1,0３５１８とを備えている。パターンソースから発生されたテストパターンのストリームは、テストエンコードされ、シリアル化され、そしてチャンネル３５１０を経て送信される。受信器において、テストパターンの送信ストリームが回復され、解釈され、そして予想されるクラスシグネチャーシーケンスに対してチェックされる。エラーがクラスシグネチャーシーケンス又はテストパターンのテストプロパティを変化させる場合には、エラーにフラグが立てられる。
【００８４】
ある実施形態では、システムは、テストデータのシーケンスからテストプロパティを抽出するように動作する。図３７に示すシリアルＩＯテスト構造の実施形態は、エラー検出器の設計を複雑にすることなく、任意のテストパターンをシリアルＩＯテストに使用できるようにする。図３７において、この構造は、パターンソース３５０２と、テスト信号を発生するように動作する関数ｆ2,1,0３５０６とを備え、テスト信号は、シリアライザ３５０８によってシリアル化されて、チャンネル３５１０を横切ってデシリアライザ３５１２へ送信される。受信器は、エラーチェッカ３５２０によって検出される信号を発生するための関数ｆ2,1,0３５１８を備えている。パターンソースから発生されたテストパターンのストリームは、テストエンコードされ、シリアル化され、そしてチャンネル３５１０を経て送信される。クラスシグネチャーＳE［２：０］は、送信されるテストデータのシーケンスから抽出される。クラスシグネチャーＳE［０：１］は、ＦＩＦＯ又はバッファ３５１６を経てＣe［０１］に与えられる。ＦＩＦＯ３５１６は、ＲＸにおいてテストデータをそのクラスシグネチャーと同期させる。例えば、発生されるクラスシグネチャーと、それに対応する送信されるテストデータとの間に待ち時間がある場合には、その待ち時間を許容するためにクラスシグネチャーがバッファに入れられる。テストデータ及びそのクラスシグネチャーが同期された場合には、それにより得られるｓｅｑ（Ｓ’e［２：０］）が常にゼロのシーケンスとなる。ある実施形態では、クラスシグネチャーをバッファすることで、テストデータに勝るハードウェア上の効果が与えられる。というのは、クラスシグネチャーのサイズを、１０ビット、即ちＴＥ（２０、５、３、２）以下にすることができ、これは、２０ビットテストデータの直接的な比較より著しく小さいからである。
【００８５】
図３８は、メモリインターフェイステストユニット（ＭＩＴＵ）３８１０と称される共有テストパターンソースの一実施形態を示す。このＭＩＴＵは、受信器ごとにエラーチェッカに結合されるＳＰＤＲＡＭテストジェネレータに共有される。ＭＩＴＵ３８１０は、シリアルＩＯテストジェネレータ３８１５を備え、ユーザメモリテストパターンジェネレータ３８０５に結合されて示されている。ＭＩＴＵ３８１０は、メモリ読み取り及び書き込みオペレーションを実行してメモリ及びインターフェイスをテストするのに必要な２０ビットＳＰＤＲＡＭテストを発生する。その発生されたＳＰＤＲＡＭテストは、必要に応じて、４つ全部のチャンネルにパラレルに送出される。
【００８６】
例えば、構成コントロール信号ｃｏｎｆｉｇ［１：０］の状態に基づいて、ＭＩＴＵ３８１０は、シリアルＩＯテスト、擬似ランダムアドレス読み取り・書き込みを伴うメモリインターフェイステスト、ユーザ定義テストパターン及び自動テスト装置（ＡＴＥ）のようなテスターからの外部テストパターンを使用するメモリテスト、を遂行するように構成される。図３８にＡＴＥ［Ｌ：０］と示されたテスター入力は、テスターからテストパターンを直接適用できるようにテスターへのインターフェイスをなす。入力ＦｕｎｃＳｉｇ［Ｋ：０］は、システムロジックからの関数信号を利用して融通性及びハードウェアオーバーヘッドを最適化するのに使用される。例えば、長い待機を実施すべきか又はリンクの完全性をチェックすべき場合には、関数回路から望ましい関数を与えることができる。ｆｒａｍｅ＿ｌｏｃｋは、図３４に示すエラーインジケータの例に使用された関数信号である。
【００８７】
ある実施形態では、ユーザ定義メモリテストジェネレータは、ユーザ定義テストパターンをテストに使用できるようにＭＩＴＵに合体される。ユーザメモリテストパターンソースは、例えば、１２ビットアドレス及び１６ビットデータを発生する。シリアルＩＯテストジェネレータのレジスタは、メモリインターフェイステストユニットに対して共有される。メモリインターフェイス又はメモリをオンチップユーザテストパターンジェネレータではなく外部テスターからテストする必要がある場合には、テスターは、ＳＰＤＲＡＭテストをＭＩＴＵに直接与える。
【００８８】
Ｌ＞２０の場合にＡＴＥ［Ｌ：０］によって与えられるコントロールインターフェイスは、テスターチャンネルの必要数及びテストデータの量を下げるのに使用される。というのは、テストデータは、内部で拡張されてＭＩＴＵにより全てのポートロジックへ配布され、多数のメモリバンクをパラレルにテストできるからである。ＭＩＴＵは、圧縮されたテストデータとしてのＭＩＴＵの入力及びテストデータを解凍するハードウェアであると考えられる。
【００８９】
ある実施形態では、エラーチェッカは、メモリからの有効な読み取りデータ及び同期コマンドをチェックする。ユーザメモリテストパターンが与えられない場合には、ＭＩＴＵは、擬似ランダムデータ及びアドレスを使用してメモリコマンドを発生する。例えば、擬似ランダムデータは、擬似ランダムアドレスに書き込まれ、そして同じ擬似ランダムアドレスから読み取られる。
【００９０】
図３９は、メモリインターフェイステストユニットの一実施形態を示す。ＭＩＴＵ３９０５は、コマンドジェネレータ３９１０、データ及びアドレスジェネレータ３９１５、並びにコマンドエキスパンダー３９２０より成る。コマンドジェネレータ３９１０は、データ及びアドレスジェネレータ３９１５と共に、例えば、２０ビットのＳＰＤＲＡＭテストパターンを発生する。ＳＰＤＲＡＭコマンドは、コマンドジェネレータ３９１０から発生され、そして書き込まれるべきデータ又はアドレスを含むコマンド引数は、データ及びアドレスジェネレータから得られる。データ及びアドレスジェネレータ３９１５は、アドレス及びデータについてコマンドジェネレータへ１７ビット入力を与えると共に、シリアルＩＯテストパターンについてコマンドエキスパンダーへ３ビット入力を与える。１７ビット入力は、書き込みデータコマンドのための１６ビットデータと、書き込み及び読み取りコマンドのためのアドレスとを含む。シリアルＩＯテストパターンを発生すべき場合には、Ｇｄａｔａ［１６：０］がその出力Ｅ’［１６：０］へバイパスされる。提示された信号は、発生されたコマンドがメモリをアドレスすることを指示する。コマンドエキスパンダー３９２０は、複数のコマンドを生成し、そしてそれらを全てのポートへパラレルに配布する。発生されたコマンドは、この例では、最大８までの、任意の数のコマンドへと拡張される。
【００９１】
又、ＭＩＴＵ３９０５は、外部テスター及びユーザテストパターンジェネレータに対する経済的なテストインターフェイスも果たす。ユーザ定義テストパターンは、データ、アドレス及び読み取り／書き込み（ｒ／ｗ）コントロール信号を与える。ｒ／ｗコントロール信号の状態に基づいて、読み取り又は書き込みオペレーションを遂行するためのＳＰＤＲＡＭコマンドのシーケンスが発生されるか、或いはメモリインターフェイスロジックを確認するために同じアドレスからのリード・アフタ・ライト(read after write)が遂行される。
【００９２】
データ及びアドレスジェネレータ３９１５は、上述したシリアルＩＯパターンジェネレータを含む。又、これは、シリアルＩＯパターンジェネレータを使用して、１６ビットメモリデータ及びアドレスを内部で発生することもできる。
【００９３】
ある実施形態では、コマンド発生は、テスターによりＡＴＥ［Ｌ：０］インターフェイスを経て編成される。テスターは、ＳＰＤＲＡＭコマンドを、付随するデータ又はアドレスと共に、ＭＩＴＵ３９０５に与える。データ及びアドレスが内部で発生される場合には、発生されたデータがデータ及びアドレスの両方に対して使用される。コマンドは、データ及びアドレスジェネレータ３９１５が、要求されたデータ又はアドレスを発生できるようにする。コマンドがデータ又はアドレスに関与しない場合には、それらは、コマンドジェネレータ３９１０から発生される。
【００９４】
ある実施形態では、コマンドエキスパンダー３９２０は、２０ビットテストデータを、８倍（８ｘ）の２０ビットテストデータへとデコードする。説明上、この説明は、一般的に、４ｘテストデータエキスパンダーを使用するシステム又はプロセスについて述べる。システムの実施形態は、４ｘ拡張について言えることが８ｘ拡張についても有効であるという点で拡張可能である。４ｘテストデータエキスパンダーの構造が図３９に一例として示されている。拡張されたテストデータの各２０ビットは、ＳＰＤＲＡＭメモリチップ内の各シリアルＩＯポート又はポートロジックに分配される。図３９は、ＳＰＤＲＡＭコマンドが、ａｄｄｒＣｍｄ＝１により指示されたアドレスを搬送し、従って、コマンドが、ブランクアドレスを除いて、４回複写されるというテストデータエキスパンダーの実施形態を示す。１１から８までのビット位置、即ちＥ’［１１：８］を占有するブランクアドレスは、メモリテストをパラレルに遂行するために、４つの異なる相互に排他的なブランクアドレスへと変換される。
【００９５】
図４０は、テストデータエキスパンダーの一実施形態を示す。図４０を参照してバンクアドレス計算ユニット４００５を使用するバンクアドレス変換について述べる。例えば、ａｄｄｒＣｍｄ＝０の場合には、変換がおこなわれず、コマンドが４回複写され（４０２０）、そしてポートロジック又はシリアライザへ配布される。さもなければ、Ｅ’［８］に基づいて４つの非重畳バンクアドレスを計算するメモリバンク計算ユニットによりバンクアドレスが変換される。例えば、Ｅ’［８］＝１の場合には、メモリバンク１、３、５及び７のバンクアドレスが発生され、さもなければ、０、２、４及び６のバンクアドレスが発生される。発生されたコマンドは、メモリバンクをパラレルにアクセスするために全てのポートへ送られる。
【００９６】
図４１は、バンクアドレス計算ユニット４１２０の一実施形態を示す。図４１に示す例では、パラレルにアクセスされるべきバンク４１３０組み合わせをエンコードするためにバンクアドレスが使用される。例えば、Ｅ’［８］の値を使用して、同じコマンドをパラレルに実行するのは偶数アドレスをもつバンク４１３０であるか奇数アドレスをもつバンクであるか決定する。残りのバンクアドレスフィールドＥ［９：８］は、望ましいメモリアクセスの異なるシナリオを受け容れるために使用される。例えば、パワーを考慮するために一度に２つのメモリバンクにアクセスする必要がある場合には、Ｅ’［９：８］を使用して、バンクアドレスをデコードしてもよい。メモリバンクをアクチベートしないポートには同期コマンドが送られる。
【００９７】
エンコーディングシステムの一実施形態において、プライオリティプロセスの機能をチェックするためにメモリアクセス競合状態を容易に生成することができる。メモリアクセス競合は、２つ以上のホストが同時に同じメモリ位置に書き込みを試みるときに生じる。ＳＰＤＲＡＭポートロジックは、プライオリティに基づいてホストの一方を阻止することにより競合を解消する。ＳＰＤＲＡＭでは、ＡＢＮＫコマンドを受け取るポートによってプライオリティが決定される。プライオリティは、ポート番号に基づいて指定され、ポート番号が増加するにつれて低くなる。例えば、ポート０及び１から同じメモリバンクアクチベーションコマンドが受け取られた場合には、ポート０でなされた要求の方が、プライオリティが高い。
【００９８】
図４２は、プライオリティの機能をチェックするためのコマンド発生の一実施形態を示す。この図は、バンクアドレス計算ユニット４２２０を含む。ある実施形態では、図４２において指定された同じメモリバンクをオープンするために全てのポートから４つのＡＢＮＫコマンドを同時に発生することによりプライオリティの機能がテストされる。例えば、ＡＢＮＫコマンドが全てのポートからパラレルに発生される場合には、ポート０に対するメモリバンクがオープンされ、そして他の全てのポートからのコマンドは、保留される。ＡＢＮＫコマンドが保留になると、ポート０を除く全てのポートにＮＡＣＫコマンドが送られる。プライオリティ機能を有効とするために、ポート０は、通常の機能テストに対してチェックを行い、そして他の全ては、ＮＡＣＫに対してチェックを行う。
【００９９】
ある実施形態では、ＳＰＤＲＡＭテストジェネレータは、多様化したテストアプリケーションに対するテスト解決策を与えるように構成される。図４３ないし４７は、ＳＰＤＲＡＭテストジェネレータの実施形態を示す。ある実施形態では、ＳＰＤＲＡＭテストジェネレータは、外部入力のサイズを減少するためにコマンドデコーダを備えている。メモリインターフェイスロジックをテストするのに少数の異なるＳＰＤＲＡＭコマンドしか要求されないので、外部入力は、エンコードされたものであると考えられる。減少された数の外部ＩＯは、テストパターンがテスターから与えられるときに、特に有益である。
【０１００】
図４３は、メモリテストのためのＳＰＤＲＡＭコマンド発生を示す。この図において、テスター（ＡＴＥ）４３１０は、ＳＰＤＲＡＭコマンド発生４３２０のための入力を与える。図示されたように、コマンドＰＣＧ、ＡＢＮＫ及びＡＣＴは、常に、データ読み取り又は書き込みの前に発生される。メモリテスト中に、データ読み取り及び書き込みは、テスト時間を最適化するために最大バースト長さをもつバーストで行われる。テストデータを書き込む場合には、ｎ個のデータエレメントのバーストが、ａｄｄｒiでスタートするアドレスに書き込まれる。データを読み取る場合には、同じｎ個のデータエレメントがバーストで読み取られる。データが読み取られる間に、コマンドジェネレータは、ｎ個のＳＹＮＣ２コマンドを発生する。表記ＤＡＴＡn（ｘ）及び（ＳＹＮＣ２）nは、各々、ｎ個の連続するＤＡＴＡ及びＳＹＮＣ２コマンドの発生を表す。ある実施形態では、バーストデータ解決策を使用することで、ユーザメモリテストパターンソースのアドレスビットサイズを（９−ｌｏｇ2ｎ）に減少し、ひいては、ハードウェアオーバーヘッドを減少することができる。
【０１０１】
ユーザテストパターンジェネレータを合体する簡単なＳＰＤＲＡＭテストジェネレータが図４４及び４５に示されている。図４４において、テスター４４１０は、ＳＰＤＲＡＭコマンドジェネレータアーキテクチャー（ＭＩＴＵ）４４２０に結合されて示され、これは、ユーザメモリテストパターンジェネレータ４４４０及びメモリコマンドジェネレータ４４５０を備えている。テスター４４１０は、メモリテストを開始したり休止したりするために"ｇｅｎＣｍｄ"と称されるコマンド発生信号を与える。ｇｅｎＣｍｄ信号が発生されるときには、コマンドＥ［１９：０］及びａｄｄｒＣｍｄ信号がテストジェネレータから発生される。ＳＰＤＲＡＭコマンド発生モードの間に、ＭＩＴＵ４４２０は、メモリコマンド又は同期コマンドのいずれかを発生する。ＭＩＴＵ４４２０は、ユーザメモリテストパターンジェネレータからのｒ／ｗ（読み取り／書き込み）信号に基づいて読み取り／書き込み判断を行う。ｇｅｎＣｍｄ信号は、シンクロナイザーを通してシステムクロックに同期される。ｇｅｎＣｍｄ信号により与えられる非同期インターフェイスを使用して、テスター４４１０は、いつでも開始及び休止することができる。与えられるユーザテストは、ＭＩＴＵ４４２０のコントロールのもとで動作することができる。ある実施形態では、ＭＩＴＵ４４２０は、メモリテストパターンジェネレータのクロックをコントロールすることによりユーザメモリテストパターンジェネレータを進める。
【０１０２】
同じ非同期インターフェイスを使用し、テスターは、ユーザ定義テストパターンジェネレータを使用してテストを編成する。図４５は、そのようなＳＰＤＲＡＭメモリテストジェネレータを示す。この図において、テスター４５１０は、コマンドジェネレータ４５３５及びデコーダ４５４０を含むコマンドジェネレータモジュール４５２５に結合される。コマンドジェネレータ４５２５は、シリアルＩＯテストジェネレータ４５３０を含むデータ及びアドレスジェネレータモジュール４５２０と、ユーザメモリテストパターンジェネレータ４５１５とに結合される。望ましいテストシーケンスは、例えば、エンコード型コマンドジェネレータにおいて実施される。このエンコード型コマンドジェネレータは、メモリインターフェイステストを実施するためのコマンドのシーケンスを発生する有限状態マシンである。例えば、ｇｅｎＣｍｄ＝１をアサートすると、上述したコマンドが発生される。データ又はアドレスコマンドを発生する必要がある場合には、コマンドジェネレータが、ユーザ定義パターンソースと対話する。発生されたユーザパターンは、登録されそしてコマンドデコーダに与えられる。このモードでは、シリアルＩＯは、バッファとして働くようにセットされる。
【０１０３】
ユーザパターンが消費されると、コマンドジェネレータは、クロックパルスを与えて、ユーザメモリテストパターンジェネレータを進ませ、次のメモリアドレス及びデータを得ることができる。ｇｅｎＣｍｄがｇｅｎＣｍｄ＝０にアサートされた場合には不定の時間中ユーザパターンソースが休止される。ｇｅｎＣｍｄ＝０のときには、コマンドジェネレータは、ＳＹＮＣキャラクタを発生する。
【０１０４】
外部テストパターンソースが与えられない場合には、シリアルＩＯジェネレータを使用してメモリ及びメモリインターフェイスのためのテストパターンを内部で発生することができる。図４６は、そのようなＳＰＤＲＡＭメモリテストジェネレータを示す。メモリテストデータは、繰り返し性が高く且つ相補的な性質であるので、シリアルＩＯテストジェネレータ４６３０から供給することができる。例えば、１つのテストデータ例は、全てのメモリ位置に１を書き込むのに続いて、全ての位置において１の値を読み取り、それに続いて、全ての位置にゼロを書き込み、等々である。この図において、Ｇ［１６：９］の値を使用して、必要なテストデータパターンを与えることができる。デコーダは、Ｇ［１６：９］のコンテンツに基づいて望ましいテストデータパターンを発生することができる。従って、相補的なテストデータは、同じシリアルＩＯテストジェネレータから発生することもできるし、又はパターンコントロール入力（ｐａｔＣｔｒ）を使用して対応テストデータの補数をとることから得ることもできる。又、読み取り／書き込みコントロール信号も、ＡＴＥ４６１０から与えることができる。テストデータパターンフィールドＧ［１６：９］は、必要に応じて増加することができる。というのは、アドレスビットのバーストテストデータ発生数が、上述したように、Ｇ［８：０］の９ビットより少ないからである。
【０１０５】
メモリインターフェイスをテストする場合には、擬似ランダムデータ及びアドレスをテストに使用することができる。図４６は、擬似ランダムデータ及びアドレスを使用するコマンド発生を示す。この図において、テスター４６１０は、シリアルＩＯテストジェネレータ４６３０を含むデータ及びアドレスジェネレータモジュール４６２０に結合されると共に、コマンドジェネレータ４６３５及びデコーダ４６４０を含むコマンドジェネレータモジュール４６２５に結合される。テストにおいて、書き込みコマンドが読み取りコマンドに先行し、そして書き込み及び読み下りの両コマンドが同じアドレスにアクセスする。更に、テストデータがアドレスから導出され、アドレスは、シリアルＩＯ擬似ランダムテストパターンから得られる。ＳＰＤＲＡＭテストコマンド発生中に、発生されるアドレスは、共有パターンソースであり、そして書き込み及び読み取りの両コマンドに対して安定している。しかしながら、テストデータは、ＴＰＥ（テストプロパティ埋め込みユニット）により変化させることができる。ある実施形態では、テストデータは、アドレスと同じでもよいし、又はアドレスの補数でもよい。
【０１０６】
図４７は、メモリテストの一実施形態に対する擬似ランダムテストジェネレータを示す。図示されたように、テスター４７１０は、擬似ランダムコマンド発生４７２０がデータＥ［１９：０］及びアドレスａｄｄｒＣｍｄを発生するための入力を与える。シリアルＩＯテストジェネレータを使用して擬似ランダムデータ及びアドレスを内部で発生する場合には、コマンドジェネレータは、必要なテストパターンを与えるためにシリアルＩＯテストジェネレータもコントロールする。この図において、コマンドジェネレータは、進みコントロール信号を使用して、データ及びアドレスをシーケンシングする。例えば、進み＝１の場合には、シリアルＩＯテストジェネレータから次のデータ又はアドレスが与えられる。
【０１０７】
ここに提案するエラーチェッカは、シリアルＩＯテストパターン及びＳＰＤＲＡＭコマンドベーステストパターンの両方を取り扱う。図４８は、エラーチェックの一実施形態を示す。この図において、同期検出器４８１０がエラーチェッカ４８３０に結合され、このエラーチェッカは、ＰＨＹエラー検出器４８２０及び比較ロジック４８４０を備えている。ＳＰＤＲＡＭコマンドを必要とするテストの場合に、エラーチェッカは、ＤＡＴＡコマンド及び全ての同期コマンドを認識するのに使用される。ある実施形態では、メモリのエラーチェックは、１７ビットデータドメインにおいて実行することができる。テスト中に、例えば、ｄ［１６：０］は、ＤＡＴＡコマンド又はＳＹＮＣコマンドで占有される。ｄ［１６：０］が意図されたコマンド以外のものを搬送するか、無効の読み取りデータがｄ［１５：０］にある場合には、エラーチェッカが動作してエラーにフラグを立てる。
【０１０８】
ＤＡＴＡコマンドは、１７ビットデータドメインにおける２バイト（ｄ［１５：０］）のデータと、１ビットコマンドフィールド（ｄ［１６］）とで構成される。ｄ［１６］は、１９ビットエンコード型データドメインのｅ［１９］に等しく、即ちｄ［１６］＝ｅ［１９］である。ＤＡＴＡコマンドの検出は、ＥＣＥｎ式においてｅ［１９］＝１によりフラグが立てられ、そしてエラーチェッカをイネーブルするのに使用される。エラーチェッカは、ＳＹＮＣコマンドを検出すると、手前の状態を維持するように動作する。
【０１０９】
上述したように、メモリテストパターンは、繰り返し性である。上位及び下位バイトのコンテンツは、しばしば、同じである。例えば、メモリテストパターンは、全てのメモリ位置に０（又は１）を書き込むのに続いて、０（又は１）を読み取るものである。或いは又、テストデータ及びその補数が全ての偶数及び奇数メモリ位置に各々書き込まれてもよい。ある実施形態では、システムは、既存の繰り返しテストパターンからテストプロパティを効率的に抽出することができる。又、テストプロパティを擬似ランダムメモリテストパターンに埋め込むこともできる。
【０１１０】
図４９及び５０は、シリアルＩＯエラーチェッカの実施形態を示す。ある実施形態において、図４９に示すシリアルＩＯエラーチェッカは、ＳＰＤＲＡＭテストに関するテストのためのハードウェアオーバーヘッドを減少することができる。この図において、エラーチェッカは、ＰＨＹエラーチェッカ４９１０及び比較ロジック４９２０を備えている。ある実施形態では、信号ｓｙｎｃＤｅｔは、ｄ［１６：０］又はｅ［１９：０］信号における同期コマンドの検出を指示する。次いで、コントロール信号ＰｈｙＴｅｓｔは、シリアルＩＯエラー検出器に利用できるエラー関数をイネーブルする。ＰｈｙＴｅｓｔは、メモリテスト中にイネーブルされる。コントロール信号ＤａｔａＤｅｔＥｎは、ＳＰＤＲＡＭコマンドに関連するテスト中に無効コマンドの検出をアクチベートする。イネーブルされた場合には、受け取られた入力がＲＥＡＤコマンドでも同期コマンドでもない場合にエラーが発生される。ＳＰＤＲＡＭにおいて、ｅ［１９］＝１であるか又はｄ［１６］＝１である場合には、受け取られた入力がＤＡＴＡコマンドである。同期コマンドが検出された場合には、ｓｙｎｃＤｅｔがｓｙｎｃＤｅｔ＝１にアサートされる。メモリテストモード中に、読み取りコマンドが検出された場合には、データフィールドｄ［１５：０］がシリアルＩＯエラーチェッカによりチェックされる。任意であるが、同時に、下位バイト及び上位バイトが比較されて、エラーが検出される。シリアルＩＯエラー検出器は、テストプロパティを抽出し、そして比較ロジックがミスしたかもしれないエラーを検出する。ここに提案するエラーチェックは、エラーを決定するのに必要な全ての情報がＤＡＴＡコマンドに含まれるので、設計を簡単化することができる。エラーチェックは、エラーを決定するために予想されるメモリテストデータの知識を必要とせず、又、予想されるメモリテストデータとの同期も必要でない。
【０１１１】
或いは又、予想される読み取りデータがオンチップで発生されて比較ロジックに送られてもよい。図５０は、ＰＨＹエラーチェッカ５０１０及び比較ロジック５０２０を、予想ｄx［１５：０］ジェネレータ５０３０と共に示している。図５０に示すように、ＤＡＴＡコマンドが検出されると、予想ｄx［１５：０］ジェネレータ５０３０は、予想される読み取りデータを比較ロジック５０２０に与え、このロジックは、読み取りデータの有効性を決定するのに使用される。ＴＥ（２０、５、３、２）のようなエラーマスキングがないことを許すテストエンコーディングスキームがシリアルＩＯエラーチェッカに装備された場合には、ｅｒｒ［１］を発生するためのエラー検出が任意となる。
【０１１２】
図４９及び５０のエラー関数ｅ［１：０］は、次のように要約される。
【数７】
0005651171.tif 000012
【０１１３】
ある実施形態では、ＰｈｙＴｅｓｔ及びＤａｔａＤｅｔＥｎの両信号は、ＰｈｙＴｅｓｔ＝１及びＤａｔａＤｅｔＥｎ＝１にアサートされる。このモードでは、エラー関数ｅｒｒsは、テストプロパティに違反することから生じるエラーを検出するのに使用される。ｉｎｖａｌＣｍｄ信号は、無効コマンドの存在を指示する。エラー関数ｅ［１］は、比較ロジックによりなされる比較の結果を指示する。メモリインターフェイステスト中に、図４９及び５０のエラー関数ｅ［１］は、各々、上位バイトと下位バイトとの間、及び受信テストデータと予想テストデータとの間のビットごとの比較を遂行する。従って、ＳＰＤＲＡＭテストからエラーが誘起される場合には、エラーを検出することができる。
【０１１４】
図５１は、ボードテストのためのシステムの一実施形態を示す。図示されたように、ボード５１００は、システムオンチップ（ＳＯＣ）５１１０を備え、その物理的層（ＰＨＹ）５１２０がインターフェイス５１３０を経てＳＰＤＲＡＭメモリ５１４０にリンクされている。ＳＰＤＲＡＭメモリ及びＳＯＣチップが、図５１に示すように、システムボードに配置されたときには、ＳＯＣチップに埋め込まれたＰＨＹコアがＳＰＤＲＡＭメモリと対話して、ＳＰＤＲＡＭインターフェイスをテストする。機能的経路は、システムボード上の意図された機能を確認するように作用する。
【０１１５】
図５２は、ボードレベルテスト構造の一実施形態を示す。図示されたように、システム５２００は、シリアルＩＯインターフェイス５２３０によってリンクされたＳＰＤＲＡＭメモリ５２０５及びＰＨＹコア５２４０を備えている。ＳＰＤＲＡＭメモリ５２０５は、メモリインターフェイステスト構造５２１０及びシリアルＩＯテスト構造５２１５と、シリアルＩＯインターフェイス５２３０を経てＰＨＹコア５２４０にリンクするシリアライザ５２２０及びデシリアライザ５２２５とを備えている。一例において、メモリは、４つのシリアライザ及び４つのデシリアライザを有する４つのポートを含む。この図において、ＰＨＹコア５２４０は、メモリインターフェイステスト構造５２５０及びシリアルＩＯテスト構造５２５２と、シリアルＩＯインターフェイス５２３０を経てメモリ５２０５にリンクするシリアライザ５２６０及びデシリアライザ５２５５とを備えている。この図において、ＳＰＤＲＡＭメモリ及びＰＨＹコアに使用されるテスト構造は、ボードレベルテスト構造を形成するように結合される。ある実施形態では、２つのテストデータフローがあり、それらデータフローは、ＳＰＤＲＡＭメモリからＰＨＹコアへそしてＰＨＹコアからＳＰＤＲＡＭメモリへ流れる。ある実施形態では、テストデータは、ＳＰＤＲＡＭメモリ及びＰＨＹコアにおいて独立して発生される。ある実施形態では、受信されるテストデータも、通信の両端で独立してチェックされる。特定のテストアプリケーションに基づいて、ＳＰＤＲＡＭメモリ及びＳＯＣ  ＰＨＹコアに対して異なるＳＰＤＲＡＭテストジェネレータが使用されてもよい。
【０１１６】
図５３は、シリアルＩＯ相互接続テスト構造の一実施形態を示す。ある実施形態では、このテスト構造は、“Fault Testing for Interconnections”と題する米国特許出願第１２／３５９，０２５号に開示されたテスト構造に係るものである。ある実施形態では、このシリアルＩＯ相互接続テスト構造は、テストを行ってオープン欠陥やブリッジ欠陥のような欠陥を探索するためのテスト経路を与えることができる。ある実施形態では、トランジスタにより図５３に示されたスイッチ機能をコントロール入力でターンオン又はオフすることにより、テスト経路を設定することができる。しかしながら、トランジスタの図は、概念的な図であり、スイッチング機能は、用途に基づいて種々の仕方で実施することができる。ある実施形態では、スイッチング機能は、シリアルＩＯ経路に直接影響がないように機能的コントロールロジックに追加することができる。
【０１１７】
図示されたように、システムは、ホストＰＨＹ層５３５０に結合されたメモリＰＨＹ層５３０５を備えている。メモリＰＨＹ層は、共有テストジェネレータ５３１５、及び１つ以上のテストプロパティ埋め込み（ＴＰＥ）ユニット５３２０を備え、これは、シリアライザ／デシリアライザ（ＳＥＲＤＥＳ）５３１０のシリアライザに結合される。ＳＥＲＤＥＳ５３１０のシリアライザは、インターフェイス５３４０を経て、ホストＰＨＹ層５３５０のＳＥＲＤＥＳ５３５５のデシリアライザにリンクされ、このデシリアライザは、ホストＰＨＹ層５３５０のエラーチェッカ５３６５に結合される。ホストＰＨＹ層５３５０は、更に、共有テストジェネレータ５３６０及び１つ以上のＴＰＥユニット５３７０を備え、これは、ＳＥＲＤＥＳ５３５５のシリアライザに結合され、これは、インターフェイス５３４０を経て、メモリＰＨＹ層５３０５のＳＥＲＤＥＳ５３１０のデシリアライザにリンクされ、ついで、これは、メモリＰＨＹ層５３０５のエラーチェッカに結合される。
【０１１８】
ある実施形態では、スイッチング機能の振舞いは、次の通りである。コントロール入力、例えば、ｓｅｒ［ｍ、０］＝１が与えられると、それに対応するスイッチが閉じ、接続が確立される。しかしながら、ｓｅｒ［ｍ、０］＝０の場合には、スイッチが開であり、信号は通過しない。ある実施形態では、ＳＥＲＤＥＳ５３１０及びＳＥＲＤＥＳ５３５５のスイッチ機能は、インターフェイス５３４０のリンクを通してテスト信号を導くように必要に応じてセットされる。
【０１１９】
図５４は、オープン欠陥検出の一実施形態を示す。図５４は、図５３に対して設けられたコンポーネントを有するメモリＰＨＹ層５４０５及びホストＰＨＹ層５４５０を示している。この図において、オープン欠陥は、正及び負の相互接続と称されるインターフェイス５３４０の差動相互接続の一方又は両方を切断する。差動シグナリングを使用するシリアルＩＯの通常言及される問題は、接続の一方にオープン欠陥が存在するときシリアルＩＯは必ずしも欠陥とならないことである。ある実施形態では、相互接続テスト構造は、オープン欠陥を検出するために図５４に示すテスト経路を設定する。ある実施形態では、オープン欠陥の検出について、メモリＰＨＹ層５４０５のテストジェネレータ５３１５は、ＳＥＲＤＥＳのスイッチ機能により確立された被試験経路を通して１０１０・・・１０のテストパターンを送信することができる。例えば、図５４は、正の相互接続を通してメモリＰＨＹ層５４０５からホストＰＨＹ層５４５０へ至るテスト経路と、負の相互接続を経てホストＰＨＹ層５４５０からメモリＰＨＹ層５４０５へ至るテスト経路とを示している。オープンが存在する場合には、データが受信されず、従って、エラーが検出される。さもなければ、データが受信され、オープン欠陥はないと結論付けることができる。
【０１２０】
図５５は、ブリッジ欠陥検出の一実施形態を示す。図５５は、図５３に対して設けられたコンポーネントを有するメモリＰＨＹ層５５０５及びホストＰＨＹ層５５５０を示している。ブリッジ欠陥は、相互接続に交差する非機能的信号経路を生成する。ある実施形態では、非機能的信号経路は、１つ以上のブリッジ欠陥を検出するように設定することができる。図５５に示すように、機能的に接続されない差動接続は、ターゲットとする欠陥を検出するためのテスト経路を形成するようにイネーブルされる。ブリッジ欠陥で２つの接続が短絡される場合には、送信テストパターンが非機能的テスト経路を経て受信される。さもなければ、テストパターンは受信されず、ブリッジ欠陥はないと結論付けることができる。例えば、図５５に示すように、正の相互接続が短絡され、ユニットの１つから同じユニットへ戻る信号経路が許される。
【０１２１】
図５６は、シリアルＩＯボードテストの一実施形態を示す。ある実施形態では、ボード上でのシリアルＩＯ相互接続テストについて、スイッチ機能を経てテスト経路が構成され、そしてＭＩＴＵは、例えば、１０１０・・・１０１０のテストパターンを内部で発生する。ＭＩＴＵ及びスイッチ機能のためのコントロールは、ＩＥＥＥ  ＳＴＤ  １１４９．１境界スキャンインターフェイスを経てプログラムすることができる。テストパターンは、ＴＸから送信し、そしてＲＸにおいてテスト経路を経て受信することができる。受信したテストパターンが予想とは異なる場合には、被試験シリアルＩＯ相互接続が欠陥であると結論付けられる。ボードレベルテストのある実施形態では、シリアルＩＯインターフェイステストに続いて、メモリインターフェイステストが行われる。シリアルＩＯテストの間に、図５６に示すように、８０ビットのテストデータが、ＳＰＤＲＡＭメモリ及びホストから独立して発生され、そして４つのチャンネルを経てパラレルに送信される。各チャンネルで受信された２０ビットテストパターンは、シリアルＩＯインターフェイスにおけるエラーを検出するために独立してチェックされる。この図において、メモリバンク、スイッチ及びポートロジック５６１０を含むＳＰＤＲＡＭ５６０５は、ホスト５６５０に結合される。ＳＰＤＲＡＭ５６０５の第１のシリアルＩＯジェネレータ５６１５は、テスト信号Ｅ［７９：０］を発生し、これは、シリアライザ５６２０によってシリアル化されて、ホスト５６５０のデシリアライザ５６５５へ送信される。受信したデータは、デシリアル化され、そして複数のシリアルＩＯエラーチェッカ５６６５によりチェックされる。同様に、ホスト５６５０の第２のシリアルＩＯジェネレータ５６７０は、テスト信号Ｅ［７９：０］を発生し、これは、シリアライザ５６６０によりシリアル化されて、ＳＰＤＲＡＭ５６０５のデシリアライザ５６２５へ送信される。受信したデータは、デシリアル化され、そして複数のシリアルＩＯエラーチェッカ５６３０によりチェックされる。シリアルＩＯテストにおいてエラーが検出されない場合には、メモリインターフェイステストが開始される。
【０１２２】
メモリ又はホストバイパスループバック経路を経て同じ相互接続テストを行うことができる。図５７は、ホストバイパスループバック経路を通しての相互接続テストを示す。このテスト構成では、ホストテスト構造がバイパスされる。この図において、メモリバンク、スイッチ及びポートロジック５６１０を含むＳＰＤＲＡＭ５７０５がホスト５７０５に結合される。ＳＰＤＲＡＭ５７０５の第１のシリアルＩＯジェネレータ５６１５がテスト信号Ｅ［７９：０］を発生し、これは、シリアライザ５６２０によりシリアル化されて、ホスト５７５０のデシリアライザ５６５５へ送られる。受信したデータは、デシリアル化されて、フィードバックループ５７６５を経てフィードバックされる。このデータは、シリアライザ５６６０によりシリアル化されて、ＳＰＤＲＡＭ５７０５のデシリアライザ５６２５へ送信される。受信されたデータは、デシリアル化されて、複数のシリアルＩＯエラーチェッカ５６３０によりチェックされる。シリアルＩＯテストでエラーが検出されない場合には、メモリインターフェイステストが開始される。従って、ＳＰＤＲＡＭメモリのテスト構造からテストパターンが発生されて、そこでチェックがなされる。このテスト構成は、例えば、結合されるＳＰＤＲＡＭ及びホストが不適合なテスト構造を含む場合に有益である。
【０１２３】
ある実施形態において、シリアルＩＯテストの後、図５６に示すように、ＳＰＤＲＡＭテストジェネレータ及びエラーチェッカを含むＳＰＤＲＡＭテスト構造は、ホストからのメモリインターフェイスをテストするように構成される。図５８は、ホストにおいてテストパターンを発信する状態でのメモリインターフェイステストの一実施形態を示す。この図において、テスト構造は、メモリバンク、スイッチ及びポートロジック５６１０を含むＳＰＤＲＡＭメモリ５８０５を備え、これは、ＰＨＹコアを含むシステムオンチップのようなホスト５８５０に結合される。ある実施形態では、ホスト５８５０のＳＰＤＲＡＭテストジェネレータ５６７０は、メモリチップのテスト構造をバイパスするようにしてメモリインターフェイスにＳＰＤＲＡＭテストパターンを与えるようにプログラムされる。ユーザメモリテストジェネレータがホスト上で実施される場合には、ユーザテストパターンがメモリ又はメモリインターフェイステストに受け容れられる。さもなければ、ＳＰＤＲＡＭテストパターンは、内部で発生されて、擬似ランダムアドレスに書き込まれ及びそこから読み取られる。この図において、メモリテストパターンＥ［７９：０］がホストテストジェネレータ５６７０により発生され、ホスト５８５０のシリアライザ５６６０に送られる。別の実施形態では、ユーザメモリテストが、ホスト、例えば、メモリテストインターフェイスユニットに与えられ、これは、テストパターンＥ［７９：０］をホスト５８５０のシリアライザ５６６０に与える。シリアル化されたデータは、デシリアライザ５６２５によりデシリアル化され、そのデシリアル化されたテストパターン（ｅ［７９：０］）を、メモリアクセスのために遷移デコーダを経てポートロジック（図示されたメモリバンク、スイッチ及びポートロジック５６１０内の）に与える。テストデータは、ポートロジック５６１０によって読み取られ、ＳＰＤＲＡＭシリアライザ５６２０に与えられる。シリアル化されたデータは、ＰＨＹコアデシリアライザ５６５５により受信されてデシリアル化され、そのデシリアル化されたデータは、ホスト５８５０のエラーチェッカ５６６５によってチェックされる。テストコントロール信号（コマンドを発生するｇｅｎＣｍｄのような）は、メモリインターフェイステストを編成するのに使用されると共に、例えば、ＩＥＥＥ規格１１４９．１境界スキャンインターフェイスを経て与えられる。
【０１２４】
又、ある実施形態において、メモリバイパスループバック経路は、メモリインターフェイスをバイパスして、デシリアライザの出力をシリアライザへ直接接続することにより、シリアルＩＯをテストするのにも使用される。シリアルＩＯは、リンクの完全性を保証するためにメモリインターフェイスの前にテストされる。図５８に示す構造は、適合しない第３者の組込み自己テスト（ＢＩＳＴ）回路が存在するときでもシリアルＩＯをテストできるようにする。
【０１２５】
図５９は、メモリにおいてテストパターンを発信する状態での自己ループバック経路を通るメモリインターフェイステストの一実施形態を示す。図５９に示すように、メモリインターフェイスは、ＳＰＤＲＡＭメモリチップにおけるＳＰＤＲＡＭコマンドジェネレータ及びエラーチェッカを使用してテストされる。図示されたように、テスト構造は、メモリバンク、スイッチ及びポートロジック５６１０を含むＳＰＤＲＡＭメモリ５９０５を備え、これは、ホスト５９５０に結合される。シリアルＩＯテストについては、ＳＰＤＲＡＭテストジェネレータ５６１５は、シリアルＩＯテストパターンをシリアライザに直接供給するのに使用される。シリアルＩＯループバック経路を経て受信されたテストパターンがエラーについてチェックされる。この図において、テストジェネレータ５６１５は、メモリ５９０５のスイッチ及びポートロジック５６１０を通してメモリバンクへテストパターンＥ［７９：０］を与える。テストパターンは、次いで、シリアライザ５６２０へ送られてシリアル化される。そのシリアル化されたデータは、ホスト５９５０のデシリアライザ５６５５によりデシリアル化され、そしてシリアルＩＯバイパスループバック５７６５によりホスト５９５０のシリアライザ５６６０にフィードバックされる。データは、ＳＰＤＲＡＭデシリアライザ５６２５によりデシリアル化され、そしてテストパターンｅ［７９：０］は、エラーチェッカ５６３０によりチェックされる。又、シリアルＩＯバイパスループバック５７６５は、不適合のＢＩＳＴがホストにおいて実施された場合にも使用される。
【０１２６】
図６０は、本発明の一実施形態に使用されるコンピューティング装置の一実施形態を示す。この図において、ここでの説明に関係のない標準的で且つ良く知られたコンポーネントは、図示されておらず、又、図示された幾つかの要素は、特定装置の実施形態には含まれない。幾つかの実施形態のもとで、装置６０００は、相互接続又はクロスバー６００５、或いは高速データトランスポートを含む他の情報通信手段を備えている。更に、装置６０００は、情報を処理するために相互接続６００５に結合された１つ以上のプロセッサ６０１０のような処理手段も備えている。プロセッサ６０１０は、１つ以上の物理的プロセッサ及び１つ以上の論理的プロセッサを含む。更に、プロセッサ６０１０の各々は、複数のプロセッサコアを含む。相互接続６００５は、簡単化のため単一の相互接続として示されているが、複数の異なる相互接続又はバスを表してもよく、そしてそのような相互接続へのコンポーネント接続は、変化してもよい。図６０に示す相互接続６００５は、抽象的であり、１つ以上の個別の物理的なバス、ポイント対ポイント接続、又はその両方が適当なブリッジ、アダプタ又はコントローラにより接続されたものを表す。相互接続６００５は、例えば、システムバス、ＰＣＩ又はＰＣＩｅバス、ハイパートランスポート又は工業規格アーキテクチャー（ＩＳＡ）バス、小型コンピュータシステムインターフェイス（ＳＣＳＩ）バス、ＩＩＣ（Ｉ２Ｃ）バス、或いはインスティテュートオブエレクトリカルアンドエレクトロニックスエンジニアズ（ＩＥＥＥ）規格１３９４バス、時々「ファイアウォール」とも称される、を含む。（「高性能シリアルバスの規格」１３９４−１９９５、ＩＥＥＥ、１９９６年８月３０日出版、及び補足）装置６０００は、更に、ＵＳＢバス６０７０のようなシリアルバスも備え、これには、装置Ａ  ６０７５及び装置Ｂ  ６０８０のような１つ以上のＵＳＢ適合装置が取り付けられる。
【０１２７】
ある実施形態において、プロセッサ６０１０は、１つ以上のバーチャルマシンをサポートするのに使用される。ある実施形態において、装置６０００は、更に、プロセッサ６０１０により実行されるべきインストラクション及び情報を記憶するためのメインメモリ６０２０としてランダムアクセスメモリ（ＲＡＭ）又は他のダイナミック記憶装置を備えている。又、メインメモリ６０２０は、プロセッサ６０１０によるインストラクションの実行中に一時的変数又は他の中間情報を記憶するのにも使用される。ＲＡＭメモリは、ＳＰＤＲＡＭを含む。ＲＡＭメモリは、更に、メモリコンテンツのリフレッシュを必要とする他のダイナミックランダムアクセスメモリ（ＤＲＡＭ）と、コンテンツのリフレッシュは必要でないがコストが高いスタティックランダムアクセスメモリ（ＳＲＡＭ）とを含む。ＤＲＡＭメモリは、信号を制御するためにクロック信号を含む同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）と、拡張データアウトダイナミックランダムアクセスメモリ（ＥＤＯ  ＤＲＡＭ）とを含む。ある実施形態では、システムのメモリは、装置の複数のエージェントによってアクセスできる共有ＢＩＯＳ／ＯＳメモリのような共有メモリを含む。又、装置６０００は、プロセッサ６０１０のためのスタティック情報及びインストラクションを記憶するためのリードオンリメモリ（ＲＯＭ）６０２５又は他のスタティック記憶装置も備えている。又、装置６０００は、これに限定されないがシステムＢＩＯＳ及び１つ以上のプレＯＳアプリケーションを含む幾つかの要素を記憶するために、１つ以上の不揮発性メモリ装置６０３０も備えている。
【０１２８】
情報及びインストラクションを記憶するために装置６０００の相互接続６００５には、データ記憶装置６０３５も結合される。このデータ記憶装置６０３５は、磁気ディスク、光学的ディスク及びそれに対応するドライブ、或いは他のメモリ装置を含む。このような要素は、一緒に結合されてもよいし又は個別のコンポーネントでもよく、そして装置６０００の他の要素の部分を利用してもよい。特定の実施形態では、データ記憶装置６０３５は、ハードドライブ６０３６を含む。
【０１２９】
又、装置６０００は、バス６００５を経て、ディスプレイ６０４０、例えば、陰極線管（ＣＲＴ）ディスプレイ、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、或いはエンドユーザに情報を表示する他の表示技術に結合される。ある実施形態では、ディスプレイ６０４０は、テレビ番組を表示するのに使用される。ある環境においては、ディスプレイ６０４０は、入力装置の少なくとも一部分としても利用されるタッチスクリーンを含む。又、ある環境においては、ディスプレイ６０４０は、テレビ番組のオーディオ部分を含むオーディオ情報を発生するスピーカのようなオーディオ装置でもよいし、又はそれを含んでもよい。プロセッサ６０１０に情報及び／又はコマンドの選択を通信するため相互接続６００５には入力装置６０４５が結合される。種々の具現化において、入力装置６０４５は、キーボード、キーパッド、タッチスクリーン及びスタイラス、ボイスアクチベートシステム、又は他の入力装置、或いはそのような装置の組み合わせである。含まれるユーザ入力装置の別の形式は、１つ以上のプロセッサ６０１０に方向情報及びコマンド選択を通信すると共にディスプレイ６０４０上でカーソルの移動をコントロールするためのカーソルコントロール装置６０５０、例えば、マウス、トラックボール、又はカーソル方向キーである。
【０１３０】
相互接続６００５には、１つ以上の通信要素６０５５も結合される。特定の具現化に基づいて、通信要素６０５５は、トランシーバ、ワイヤレスモデム、ネットワークインターフェイスカード、マザーボード上のＬＡＮ（ローカルエリアネットワーク）、又は他のインターフェイス装置を含む。通信要素６０５５は、イーサネット（登録商標）データのようなネットワークデータを送信するためにネットワーク６０６５への接続を与える。通信装置６０５５の使用は、ワイヤレス装置から信号を受信することを含む。無線通信の場合に、通信装置６０５５は、必要に応じて、ダイポール又はモノポールアンテナを含めて、１つ以上のアンテナ６０５８を備えている。一実施形態では、通信要素６０５５は、装置６０００を不適切なアクセスから保護するためのファイアウォールを含む。又、装置６０００は、電源装置又はシステム６０６０も備え、これは、電源、バッテリ、ソーラーセル、燃料電池、或いは電力を供給又は発生する他のシステム又は装置で構成される。電源装置又はシステム６０６０により供給される電力は、必要に応じて、装置６０００の要素に分電される。
【０１３１】
以上の説明において、説明上、本発明を充分に理解するために多数の特定の細部について述べた。しかしながら、当業者であれば、本発明は、これら特定の細部の幾つかがなくても実施できることが明らかであろう。他の点では、良く知られた構造及び装置は、ブロック図の形態で示した。図示されたコンポーネント間には中間構造もある。ここに述べた又は図示したコンポーネントは、図示又は説明されていない付加的な入力又は出力を有してもよい。
【０１３２】
本発明は、種々のプロセスを含む。本発明のプロセスは、ハードウェアコンポーネントにより遂行されてもよいし、或いはプロセスを遂行するためのインストラクションで汎用又は特殊目的プロセッサ或いはロジック回路をプログラムさせるために使用されるマシン実行可能なインストラクションで実施されてもよい。或いは又、プロセスは、ハードウェア及びソフトウェアの組み合わせで遂行されてもよい。
【０１３３】
本発明の一部分は、プロセッサによって実行されるべきコンピュータプログラムインストラクションであって、本発明によるプロセスを遂行するためにコンピュータ（又は他の電子装置）をプログラムするのに使用されるインストラクションが記憶されたコンピュータ読み取り可能な媒体を含むコンピュータプログラム製品として提供されてもよい。コンピュータ読み取り可能な媒体は、フロッピー（登録商標）ディスケット、光学的ディスク、ＣＤ−ＲＯＭ（コンパクトディスクリードオンリメモリ）、及び磁気光学的ディスク、ＲＯＭ（リードオンリメモリ）、ＲＡＭ（ランダムアクセスメモリ）、ＥＰＲＯＭ（消去可能なプログラマブルリードオンリメモリ）、ＥＥＰＲＯＭ（電気的に消去可能なプログラマブルリードオンリメモリ）、磁石又は光学的カード、フラッシュメモリ、或いは電子的インストラクションを記憶するのに適した他の形式の有形媒体／コンピュータ読み取り可能な媒体を含むが、これらに限定されない。
【０１３４】
多数の方法がそれらの最も基本的な形態で説明されたが、本発明の基本的な範囲から逸脱せずに、それらの方法にプロセスを追加したり削除したりできると共に、上述したメッセージに情報を追加したり削除したりすることもできる。又、当業者であれば、多数の更に別の変更や適応がなされることも明らかであろう。上述した特定の実施形態は、本発明を限定するものではなく、例示するものに過ぎない。本発明の範囲は、上述した特定の実施例により決定されるのではなく、特許請求の範囲のみによって決定される。
【０１３５】
要素“Ａ”が要素“Ｂ”に結合されると言える場合には、要素Ａは、要素Ｂに直結されるか、又は例えば、要素Ｃを介して間接的に結合される。明細書又は特許請求の範囲に、成分、特徴、構造、プロセス又は特性Ａが、成分、特徴、構造、プロセス又は特性Ｂを「引き起こす」と述べられているときには、“Ａ”は、“Ｂ”の少なくとも部分的な原因であるが、“Ｂ”を引き起こす上で助けとなる少なくとも１つの他の成分、特徴、構造、プロセス又は特性もあることを意味する。又、明細書に、成分、特徴、構造、プロセス又は特性が含まれ得る(may)、又は含まれるかもしれない(might)、又は含むことができる(could)と示されている場合には、その特定の成分、特徴、構造、プロセス又は特性を含むことが要求されない。明細書又は特許請求の範囲に、「一(“a”又は“an”)」要素と示された場合には、記述される要素が１つしかないことを意味するものではない。
【０１３６】
実施形態は、本発明の具現化又は実施例である。明細書において「一実施形態」「１つの実施形態」「ある実施形態」又は「他の実施形態」を言及するときは、その実施形態に関連して述べた特定の特徴、構造又は特性が、少なくとも幾つかの実施形態には含まれるが、必ずしも全ての実施形態に含まれるのではないことを意味する。又、「一実施形態」「１つの実施形態」又は「ある実施形態」が種々現れることは、必ずしも、全てが同じ実施形態を指していない。本発明の規範的な実施形態の以上の説明において、開示を合理化すると共に、本発明の１つ以上の種々の態様の理解を助けるために、本発明の種々の特徴は、時々、１つの実施形態、図面又はその説明において一緒にグループ化されている。しかしながら、このような開示方法は、請求される発明が、各請求項に明確に述べられたものより多くの特徴を要求するという意図を反映するものと解釈されるべきではない。むしろ、請求項が反映する発明の態様は、以上に開示された単一の実施形態の全ての特徴より少ない特徴にある。従って、各請求項がそれ自身本発明の個別の実施形態であるようにして、請求項がこの説明に明確に組み込まれる。
【符号の説明】
【０１３７】
１０５：メモリ装置
１１０：装置
１１５、１２０、１２５、１３０：ポート
１３５：シリアライザ
１４０：デシリアライザ
３００：システム
３０５：ホスト
３２０：ホスト物理的層
３２５：送信器
３３０：シリアライザ
３５０：インターフェイス
３５５：メモリ
３６０：ポート
３６５：メモリ物理的層
３４０、３９０：リンクマネージメント
３５５：メモリ
３７５：受信器
３８０：デシリアライザ
４００：ＳＰＤＲＡＭメモリ
４１０：メモリ物理的層
４２０：メモリバンク
８０５：ＳＰＤＲＡＭメモリ
８１０：メモリインターフェイステスト構造
８１５：シリアルＩＯテスト構造
８２０：シリアライザ
８２５：デシリアライザ
８３０：シリアルＩＯインターフェイス
８４０：ＰＨＹコア
８４５：シリアルＩＯテスト構造
８５０：メモリインターフェイステスト構造
８５５：デシリアライザ
８６０：シリアライザ
１００５：共有テストパターンソース
１０１０：テストプロパティ埋め込みユニット
１０１５：遷移エンコーディング（ＴＥ）
１０２５：システムロジック
【図１】
0005651171.tif 000013
【図２】
0005651171.tif 000014
【図３】
0005651171.tif 000015
【図４】
0005651171.tif 000016
【図５】
0005651171.tif 000017
【図６】
0005651171.tif 000018
【図７】
0005651171.tif 000019
【図８】
0005651171.tif 000020
【図９】
0005651171.tif 000021
【図１０】
0005651171.tif 000022
【図１１】
0005651171.tif 000023
【図１２】
0005651171.tif 000024
【図１３】
0005651171.tif 000025
【図１４】
0005651171.tif 000026
【図１５】
0005651171.tif 000027
【図１６】
0005651171.tif 000028
【図１７】
0005651171.tif 000029
【図１８】
0005651171.tif 000030
【図１９】
0005651171.tif 000031
【図２０】
0005651171.tif 000032
【図２１】
0005651171.tif 000033
【図２２】
0005651171.tif 000034
【図２３】
0005651171.tif 000035
【図２４】
0005651171.tif 000036
【図２５】
0005651171.tif 000037
【図２６】
0005651171.tif 000038
【図２７】
0005651171.tif 000039
【図２８】
0005651171.tif 000040
【図２９】
0005651171.tif 000041
【図３０】
0005651171.tif 000042
【図３１】
0005651171.tif 000043
【図３２】
0005651171.tif 000044
【図３３】
0005651171.tif 000045
【図３４】
0005651171.tif 000046
【図３５】
0005651171.tif 000047
【図３６】
0005651171.tif 000048
【図３７】
0005651171.tif 000049
【図３８】
0005651171.tif 000050
【図３９】
0005651171.tif 000051
【図４０】
0005651171.tif 000052
【図４１】
0005651171.tif 000053
【図４２】
0005651171.tif 000054
【図４３】
0005651171.tif 000055
【図４４】
0005651171.tif 000056
【図４５】
0005651171.tif 000057
【図４６】
0005651171.tif 000058
【図４７】
0005651171.tif 000059
【図４８】
0005651171.tif 000060
【図４９】
0005651171.tif 000061
【図５０】
0005651171.tif 000062
【図５１】
0005651171.tif 000063
【図５２】
0005651171.tif 000064
【図５３】
0005651171.tif 000065
【図５４】
0005651171.tif 000066
【図５５】
0005651171.tif 000067
【図５６】
0005651171.tif 000068
【図５７】
0005651171.tif 000069
【図５８】
0005651171.tif 000070
【図５９】
0005651171.tif 000071
【図６０】
0005651171.tif 000072