(57)【要約】【課題】  マルチポート・メモリ・アレイの走査メモリ・テスト方法を提供する。【解決手段】  機能性クロック速度でのマルチポート・メモリの連続走査アレイ内蔵自己テスト（ＡＢＩＳＴ）のためのシステムが開示される。ＡＢＩＳＴテスト中に、第１のポートからの機能性アドレス指定ラッチが、第２のポートのアドレス指定ラッチに対するシャドー・ラッチとして用いられる。この配置は、チップ上のテスト・オンリーのハードウェアの量を低減し、複雑なテスト用ソフトウェアを書く必要性を低減する。より高レベルの機能をシャドー・ラッチとアドレス指定ラッチとの間に挿入して、反転等の機能を自動的に提供するようにすることができる。【選択図】      図５
2007109372.tif 000002
【特許請求の範囲】
【請求項１】
第１のポートと、
第２のポートと、
メモリ・アレイの非テスト動作中に第１のメモリ・アレイのアドレスを保持する第１の機能性ラッチ・バンクと、
メモリ・アレイの非テスト動作中に第２のメモリ・アレイのアドレスを保持し、テスト動作中に前記第１の機能性ラッチ・バンクからの第１の複数のラッチが第２の機能性ラッチ・バンクからの第２の複数のラッチに対するシャドー・ラッチとして機能するようにインターリーブされる、第２の機能性ラッチ・バンクとを備えるメモリ・アレイ。
【請求項２】
前記メモリ・アレイが、
コントローラと、
前記コントローラと、前記第１の機能性ラッチ・バンクからの複数のラッチのうちの１つと、に結合されたテスト・オンリーのシャドー・ラッチとを更に備える、請求項１に記載のメモリ・アレイ。
【請求項３】
前記メモリ・アレイが、
コントローラへの第１の入力を更に備え、前記入力は第３のラッチ・バンクの第１の出力に動作可能なように結合され、該第３のラッチ・バンクが前記第１の機能性ラッチ・バンクに動作可能なように結合された、請求項２に記載のメモリ・アレイ。
【請求項４】
前記メモリ・アレイが、
前記第３のラッチ・バンクへの第２の入力を更に備え、前記第２の入力が第４のラッチ・バンクの第２の出力に動作可能なように結合された、請求項３に記載のメモリ・アレイ。
【請求項５】
前記テスト動作が、前記非テスト動作の第２のクロック速度に実質的に等しい第１のクロック速度で行なわれる、請求項１に記載のメモリ・アレイ。
【請求項６】
前記メモリ・アレイが、
前記テスト動作中に複数の信号を変更するために、前記第１の機能性ラッチ・バンクと前記第２の機能性ラッチ・バンクとに動作可能なように結合される回路バンクを更に備える、請求項４に記載のメモリ・アレイ。
【請求項７】
前記回路バンクが複数のインバータを含む、請求項６に記載のメモリ・アレイ。
【請求項８】
前記回路バンクが複数の線形フィードバック・シフト・レジスタを含む、請求項６に記載のメモリ・アレイ。
【請求項９】
前記メモリ・アレイが浮動小数点レジスタである、請求項２に記載のメモリ・アレイ。
【請求項１０】
前記メモリ・アレイがランダム・アクセス・メモリ（ＲＡＭ）である、請求項２に記載のメモリ・アレイ。
【請求項１１】
メモリ・アレイをテストするための方法であって、前記方法が、
非テスト動作と連動して、第１の機能性ラッチ・バンク内で第１のメモリのアドレスを保持するステップと、
非テスト動作と連動して、第２の機能性ラッチ・バンク内で第２のメモリのアドレスを保持するステップと、
前記第１の機能性ラッチ・バンクからの第１の複数のラッチを、前記第２の機能性ラッチ・バンクからの第２の複数のラッチとインターリーブして、前記第１の複数のラッチがテスト動作と連動して前記第２の複数のラッチに対するシャドー・ラッチとして機能するようにするステップとを含む方法。
【請求項１２】
前記方法が、テスト・オンリーのシャドー・ラッチを、コントローラと、前記複数のラッチのうちの１つとに結合するステップを更に含む、請求項１１に記載の方法。
【請求項１３】
前記方法が、
第３のラッチ・バンクを前記第１の機能性ラッチ・バンクに結合するステップと、
前記コントローラの第１の入力を前記第３のラッチ・バンクの出力に結合するステップとを更に含む、請求項１２に記載の方法。
【請求項１４】
前記方法が、
前記第３のラッチ・バンクの第２の入力を第４のラッチ・バンクの第２の入力に結合するステップを更に含む、請求項１３に記載の方法。
【請求項１５】
前記テスト動作が、前記非テスト動作の第２のクロック速度と実質的に等しい第１のクロック速度で行われる、請求項１１に記載の方法。
【請求項１６】
前記方法が、回路バンクを前記第１の機能性ラッチ・バンクと前記第２の機能性ラッチ・バンクとに結合して、前記テスト動作中に複数の信号を変更するステップを更に含む、請求項１４に記載の方法。
【請求項１７】
第１のラッチ・バンクに動作可能なように結合される第１のポートと、
第２のラッチ・バンクに動作可能なように結合される第２のポートと、
第３のラッチ・バンクを通して前記第１のラッチ・バンクに動作可能なように結合されるコントローラと、
前記第３のラッチ・バンク及び前記第２のポートに動作可能なように結合される第４のラッチ・バンクと、
前記第１のラッチ・バンクに結合される第１のアドレス・ラインと、
前記第２のラッチ・バンクに結合される第２のアドレス・ラインと、
前記コントローラ及び前記第１のラッチ・バンクに動作可能なように結合されるシャドー・ラッチと
を備え、機能性クロック速度で実行されるテスト動作に関連して、前記第１のラッチ・バンクからの第１の複数のラッチが、前記第２のラッチ・バンク内の第２の複数のラッチに対するシャドー・ラッチとして機能する、マルチポート浮動小数点レジスタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはＡＳＩＣの設計及び製造性の分野に関し、具体的にはメモリの内蔵自己テスト機構に関する。
【背景技術】
【０００２】
多くの集積回路は、内蔵自己テスト（ＢＩＳＴ:Built-In Self Test）機構を用いて欠陥同定を容易にする。「ＢＩＳＴ」という用語は、回路の部分（チップ、基板、又はシステム）を用いて回路自体をテストするテスト技術を指すことができる。ＢＩＳＴ回路は、テストを必要とする集積回路及び他の回路コンポーネントを形成する際に、同じチップ上に直接に形成することができる。こうしたＢＩＳＴ方式は、ウェハ・レベルの製造テストの際に欠陥を排除するために用いることができる。或いは、ＢＩＳＴ方式は、回路の自己チェックを行うために各々の電源投入後に用いることができる。「ＡＢＩＳＴ」という用語は、「アレイＢＩＳＴ」即ち、埋め込まれた（内蔵された）メモリ・デバイスをテストするように設計されたＢＩＳＴシステムを意味することができる。マルチポート・メモリ（例えばプロセッサ内蔵レジスタ・メモリ・アレイ）のテストは、どうしたら大量の余分なテスト・オンリーのハードウェアを必要とせずにポートの相互作用を十分にテストできるかというような、厄介な問題を提起する場合がある。マルチポート・メモリは、アーキテクチュラル・ベリフィケーション・プログラム（ＡＶＰ）等のマイクロ・アーキテクチャ特有のプログラムを用いてテストすることができる。ＡＶＰは、チップ内で、チップの設計された機能を検証するように実行することを目的とする何らかのソフトウェア・プログラム又はファームウェア・プログラムとすることができる。マルチポート・メモリの場合には、ＡＶＰは、特定の埋め込まれたメモリを十分に検証するように設計することができる。しかしながら、メモリが異なるチップに後で埋め込まれる場合や、或いは若干異なる実装を有する場合には、ＡＶＰプログラムを変更しなければならない。更に、ＡＶＰは、典型的にはハードウェアが形成された後など、設計プロセスにおいて一般的に遅い段階で作成され、また、メモリ・アレイ・セルの特性をテストするのは複雑なプロセスである。こうしたＡＶＰプログラムを作成し保持することは、多大な労働力を要し負担が大きくなる可能性があるので、設計プロセスの遅い段階で、スケジュールの遅れ又は品質低下を引き起こさずに達成することは困難である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＡＢＩＳＴシステムの実装には、ＡＢＩＳＴハードウェアを組み込むために貴重なチップ面積の使用を要する可能性がある。従って、ＡＢＩＳＴ方式を最適化するために、ＡＢＩＳＴシステムに必要な「テスト・オンリー（テストのみ）」のハードウェアの量を低減することが望ましいであろう。テスト・オンリーのハードウェアは、ＡＢＩＳＴテストのためには必要であるが通常の機能性には不必要な任意のハードウェアであると考えることができる。こうしたテスト・オンリーのハードウェアは、チップ上の貴重なスペースを占有するので最小化されるべきである。また、ＡＢＩＳＴシステムの最適化は、機能性条件をシミュレートし且つメモリ回路の動的特性を発揮させる速度でのテストを必要とする可能性もある。更に、メモリの連続読取り、連続読取り／書込み、又は連続書込みに関する走査（scanned）ＡＢＩＳＴテストは、典型的には、アドレス指定のための一組のシャドー・ラッチとして構成された付加的なロジック回路を必要とする。
【０００４】
要約すると、ＡＢＩＳＴテストに必要とされるテスト・オンリーのハードウェアの量を最小化し、スケジュールの遅れが生じる可能性を低減すると同時に、機能性速度におけるマルチポート・メモリ・アレイの走査メモリＡＢＩＳＴテストを可能にする発明が必要である。
【課題を解決するための手段】
【０００５】
本発明は、マルチポート・メモリの機能性速度におけるテストを達成するために、ＡＢＩＳＴテスト中に１つのポートからの機能性データ・ラッチを別のポートのシャドー・ラッチとして用いる、走査メモリ・テストのための機構を提供することによって上記の課題に対処する。
【０００６】
本発明の一実施形態は、第１及び第２のポートを含むメモリ・アレイである。メモリ・アレイは、第１の機能性ラッチ・バンク（latch bank）を含む。メモリ・アレイの通常の（非テスト）動作中に、第１の機能性ラッチ・バンクは第１のメモリ・アレイのアドレスを保持する。メモリ・アレイは、第２の機能性ラッチ・バンクを含む。メモリ・アレイの通常動作中に、第２の機能性ラッチ・バンクは第２のメモリ・アレイのアドレスを保持する。テスト動作中に第１の機能性ラッチ・バンクからの第１の複数のラッチが第２の機能性ラッチ・バンクからの第２の複数のラッチに対して複数のシャドー・ラッチとして機能するように、インターリーブ（interleave）される。本発明の一実施形態は、コントローラと、コントローラ及び機能性ラッチの第１のバンクの第１のラッチに結合された付加的なテスト・オンリーのシャドー・ラッチとを含む。
【発明を実施するための最良の形態】
【０００７】
本発明及び本発明の利点についてより完全に理解するために、添付の図面と併せて、以下に記述された説明を参照されたい。
【０００８】
以下の説明において、本発明を徹底的に理解できるように、特定のデータ・ビット長、アドレスの長さ、データ・ラインの幅、及びアレイ・サイズ等のような多数の具体的な詳細が示される。しかしながら、こうした特定の詳細がなくても本発明を実施することができるということは、当業者には明白であろう。他の場合、不必要な細部で本発明を不明瞭にしないように、周知の回路はブロック図の形で示されている。タイミングの考察、検出ロジック、特定のＡＢＩＳＴソフトウェア・コード及び同様のものに関する幾つかの詳細は、本発明を完全に理解するためには必要がなく、関連する技術分野の当業者の技術の範囲内にあるので除外されている。ここで、描かれている要素は必ずしも一定の尺度で示されているわけではなく、また、幾つかの図にわたって、同様の又は類似の要素が同じ参照番号で示されている図を参照する。
【０００９】
図１はＣＰＵ１０１の主要なコンポーネントを示すが、ＣＰＵ１０１は複数のＣＰＵを含むデータ処理システムの一部であってもよい。ＣＰＵ１０１の示されているコンポーネントは、単一の半導体チップ上にパッケージされる。ＣＰＵ１０１は、複数命令の発行、並びに、複数命令及び複数スレッドを同時に実行することによるハードウェアのマルチスレッド化を実施することができる。複数命令の実行及びハードウェアのマルチスレッド化をサポートするために、浮動小数点レジスタ２１６等のプロセッサ内蔵メモリ・アレイは、各々のスレッド毎の各々の命令発行パイプ（pipe）に対して、複数の読取りポート及び１つの書込みポートを備えた複数のポートを有することができる。従って、本発明の一実施形態においては、浮動小数点レジスタ２１６は、ＡＢＩＳＴ走査テストを受けるマルチポート・メモリ・アレイである。
【００１０】
図１の他のコンポーネントに関しては、ＣＰＵ１０１は命令ユニット部２００、実行ユニット部２１０及び２１２、並びにストレージ制御部２２０を含む。命令ユニット２００は、Ｌ１Ｉキャッシュ１０６から命令を取得して、命令をデコードして実行する動作を決定し、分岐条件を解決してプログラムの流れを制御する。実行ユニット２１０は、レジスタ内のデータに対して算術及び論理演算を実行し、データをロード又は格納する。ストレージ制御ユニット２２０は、Ｌ１データ・キャッシュ２２１内のデータにアクセスするか、或いは、命令又はデータを取り出す又は格納することができるＣＰＵの外部メモリとインターフェース（接続）する。
【００１１】
命令ユニット２００は、分岐ユニット２０２、バッファ２０３、２０４、２０５、及びデコード／ディスパッチ・ユニット２０６を備える。Ｌ１Ｉキャッシュ１０６からの命令は、Ｌ１Ｉキャッシュ命令バス２３２によって３つのバッファのうちの１つへロードされる。順次バッファ２０３は、１６個の命令を現行の実行順序で格納することができる。分岐バッファ２０５は、分岐先からの８個の命令を格納することができる。これらの命令は、分岐が起きる場合には、分岐評価の前にバッファ２０５に推測的にロードされる。スレッド切替えバッファ２０４は、非アクティブ・スレッドに対する８個の命令を格納する。現在アクティブなスレッドから非アクティブなスレッドへのスレッド切替えが要求される場合には、これらの命令が直ちに利用できるであろう。デコード／ディスパッチ・ユニット２０６は、バッファの１つから実行されるべき現行命令を受け取り、該命令をデコードして実行されるべき動作又は分岐条件を決定する。分岐ユニット２０２は、分岐条件を評価することによってプログラムの流れを制御し、所望される命令の有効アドレスをＬ１Ｉキャッシュのアドレス・バス２３１上で送信することによって、Ｌ１Ｉキャッシュ１０６からバッファを再び満たす（refill）。
【００１２】
実行ユニット２１０は、Ｓパイプ２１３、Ｍパイプ２１４、Ｒパイプ２１５、及び汎用レジスタ２１７のバンクを含む。レジスタ２１７は、各々のスレッドに対して１つずつで、２つの組に分割される。Ｒパイプ２１５は、一部の整数演算及び単純な整数に関する論理関数を実行するための、パイプライン型演算ユニットである。Ｍパイプ２１４は、より複雑でより大きな部分の算術及び論理関数を実行するためのパイプライン型演算ユニットである。Ｓパイプ２１３は、ロード及び格納動作を実行するためのパイプライン型ユニットである。浮動小数点ユニット２１２及び関連する浮動小数点レジスタ２１６は、典型的には多重サイクルを必要とする特定の複雑な浮動小数点演算のために用いられる。汎用レジスタ２１７と同様に、浮動小数点レジスタ２１６は、各々のスレッドに対して１つずつで、２つの組に分割される。
【００１３】
ストレージ制御ユニット２２０は、メモリ管理ユニット２２２、Ｌ２キャッシュ・ディレクトリ２２３、Ｌ２キャッシュ・インタフェース２２４、Ｌ１データ・キャッシュ（Ｄキャッシュ）２２１、及びメモリ・バス・インタフェース２２５を含む。Ｌ１Ｄキャッシュ２２１は、データ（命令に対立するものとして）のために用いられるオン・チップ・キャッシュである。Ｌ２キャッシュ・ディレクトリ２２３は、ＣＰＵ１０１のＬ２キャッシュ（図示せず）のコンテンツのディレクトリである。Ｌ２キャッシュ・インタフェース２２４は、Ｌ２キャッシュ（図示せず）との間の直接のデータ転送を処理する。メモリ・バス・インタフェース２２５は、メモリ・バス（図示せず）全体にわたってデータ転送を処理するが、該データ転送は主メモリ（図示せず）、又は他のＣＰＵ（図示せず）と関連したＬ２キャッシュ・ユニット（図示せず）への転送とすることができる。メモリ管理ユニット２２２は、種々のユニットへのデータ・アクセスの経路（routing）設定の役割を受け持つ。例えば、Ｓパイプ２１３がロード命令を処理して、レジスタにロードされるべきデータを要求する場合には、メモリ管理ユニットはＬ１Ｄキャッシュ２２１、Ｌ２キャッシュ（図示せず）、又は主メモリ（図示せず）から該データを取り出す（フェッチする）ことができる。メモリ管理ユニット２２２は、どこでデータ及び命令を取得すべきかを決定する。Ｌ２キャッシュ・ディレクトリ２２３と同様に、Ｌ１Ｄキャッシュ２２１は直接にアクセス可能であり、メモリ管理ユニット２２２が、該データがＬ１Ｄキャッシュ２２１又はＬ２キャッシュ（図示せず）のどちらかにあるかどうかを判断できるようにする。該データがオン・チップのＬ１Ｄキャッシュ中にもＬ２キャッシュ（図示せず）中にもない場合には、該データは、メモリ・インタフェース２２５を用いて、メモリ・バス（図示せず）から取り出される。同様に、該命令がＬ１Ｉキャッシュ１０６中にない場合には、該命令は、パス２３３を通してＬ２キャッシュ（図示せず）又は主メモリから取り出される。
【００１４】
図１は、ＣＰＵ内に実装される本発明の一実施形態を示すが、本発明はこのような実施形態に限定されるものではない。本発明はまた、データ処理システム内のＩ／Ｏ（入力／出力）アダプタ内におけるように、同じ半導体チップ上に埋め込まれたロジック回路及びメモリを有する他のデバイスにおいて具体化することもできる。更に、本発明の実施形態は、汎用レジスタ２１７（図１）等の他のマルチポート・アレイと併せて実装することができる。
【００１５】
図２は、本発明の一実施形態による、浮動小数点レジスタ２１６とＡＢＩＳＴコントローラ１７０の相互接続を示す。示されるように、ＡＢＩＳＴコントローラ１７０は、図１の浮動小数点レジスタ２１６をテストするように構成される。ＡＢＩＳＴコントローラ１７０は、外部ソース（図示せず）からＯＮ信号１７２を受信する。それに応答して、ＡＢＩＳＴコントローラ１７０はＯＮ状態になり、テスト・データをテスト・データ・ライン１６８によって浮動小数点レジスタ２１６へ送信する。コントローラ１７０は、テスト・データをライン１７６上で外部のパターン発生器から受信するか、或いは１７０内の内蔵パターン発生器（図示せず）が共通のテスト・パターンを発生できる可能性もある。テスト・データは、ソリッド“１”、ソリッド“０”、格子模様のボード（チェッカーボード）、横列のストライプ又は縦列のストライプを含む、幾つかの共通のテスト・パターンのどれかにすることができる。ＡＢＩＳＴコントローラ１７０は、応答データを浮動小数点レジスタ２１６からライン１６６により受信する。ライン１６６から取り出されるテスト・データは、ＡＢＩＳＴコントローラ１７０内のデータ比較器（図示せず）で処理して、ライン１６６上で受信されたデータを期待されるデータ値と比較することができる。コントローラ１７０は、ＡＢＩＳＴコントローラ１７０内の比較器からの情報を用いて、浮動小数点レジスタ２１６がＡＢＩＳＴテストに合格であるか又は不合格であるかを決定することができる。テスト結果は、テスト結果ライン１７４によって、ＡＢＩＳＴコントローラ１７０から外部ソース（図示せず）へ送信することができる。
【００１６】
浮動小数点レジスタ２１６等のメモリをテストする場合、ＡＢＩＳＴコントローラ１７０が、典型的なＡＢＩＳＴ方式のようにデータを並列的に走査するよりも、データの直列的な走査を行なう方が有用である可能性がある。走査ＡＢＩＳＴテストは、一般に、配線、ロジック回路スペース及び同様のもの等のより少ないリソースを必要とするので、走査ＡＢＩＳＴテストを用いるデータの直列的な走査は有用であり得る。従って、ＡＢＩＳＴテストが並列的ではなく直列的に行なわれる場合、新しいアレイを追加するのにより少ない付加的な配線及び他のリソースを必要とするので、システムに新しいアレイを追加することがより簡単となり得る。
【００１７】
ここで図３を参照すると、回路２５０が示されている。回路２５０は、単一ポートＲＡＭ（ランダム・アクセス・メモリ）２５２を有する。読取り及び書込みアドレスは共有され、ＲＡＭアドレス２５７を通じて供給される。図３は、アドレス／データ・ラッチ・バンク２５６及びシャドー・ラッチ・バンク２５４を用いてＲＡＭ２５２のメモリ・テストを実行することを示す。ＲＡＭ２５２は、浮動小数点レジスタ２１６（図１）の単一ポート版、又は何らかの他の単一ポートＲＡＭに対応させることができる。動作中に、ラッチ・バンク２５６は、ＲＡＭ２５２の入力に与えられたアドレスに関するタイミング要求に応ずるのに十分な時間の間、機能性アドレスを安定化させて保持する。テスト・データ及びアドレスは、ライン１６８上で、ＡＢＩＳＴコントローラ１７０からラッチ・バンク２５６内の機能性保持ラッチへ送信することができる。出力データは、ライン１６６を通じてＡＢＩＳＴコントローラに送り返えされる。
【００１８】
図３に示されるように、ＲＡＭ２５２は、ＡＢＩＳＴコントローラ１７０によって制御される走査ＡＢＩＳＴを用いてテストすることができる単一ポートＲＡＭである。機能性モードのためには、ＲＡＭアドレス２５７及びＲＡＭデータ・イン２５８は、ラッチ・バンク２５６に供給されてＲＡＭ２５２に書き込まれる。或いは、ＲＡＭアドレス２５７がラッチ・バンク２５６に供給されて、ＲＡＭ２５２が読み取られる。機能性読取りのためには、ＲＡＭ出力が出力ラッチ・バンク２５３によって取り込まれる。走査ＡＢＩＳＴのためには、シャドー・ラッチ・バンク２５４が必要である。シャドー・ラッチ・バンク２５４は、テスト・オンリーのシャドー・ラッチで形成される。シャドー・ラッチ・バンク２５４は、機能性クロック速度で作動する機能性クロック（図示せず）の連続するアプリケーション上で、２つの異なるアドレスに対して、次に別のＲＥＡＤ動作が続くＲＥＡＤ動作を実行するというような、よりストレスの多い条件の下でデバイスをテストするテスト環境を可能にする。図３に示されるように、回路２５０は、各々の機能性保持ラッチに対して１つの付加的なシャドー・ラッチを必要とする。シャドー・ラッチ・バンク２５４内のシャドー・ラッチは、動作中、機能性の目的には用いられないので、付加的なテスト・オンリーのオーバーヘッドに相当する。
【００１９】
図４は、ラッチ・バンク２６４内のテスト・オンリーのハードウェア・ラッチをラッチ・バンク２６１及び２６２内の機能性ラッチに対するシャドー・ラッチとして用いてＡＢＩＳＴテストを実行するためのハードウェア環境２６０を示す。ＲＡＭ２６５は、ポートＡ及びポートＢを有するマルチポートＲＡＭを示す。簡単明瞭にするために、データ・ポート等のコンポーネントは、当業者によって通常は理解されているので、図のようにＲＡＭ２６５から省略されている。
【００２０】
ポートＡのテストのためには、ＡＢＩＳＴコントローラ１７０は、シャドー・ラッチ・バンク２６４、保持ラッチ・バンク２６１、保持ラッチ・バンク２６２、ポートＡ、及びポートＢに対して、テスト・アドレス・データをライン１６８によって送信する。機能性モードにおいては、ＲＡＭアドレスＡ２６６及びＲＡＭアドレスＢ２６７がラッチ・バンク２６１及び２６２によってラッチされ、出力ラッチ・バンク２６８及び出力ラッチ・バンク２６９はＲＡＭ２６５の出力を取り込む。テスト中に、ＲＡＭ２６５の出力は、テスト及び検証のために、走査データ・パス１６６を通してＡＢＩＳＴコントローラ１７０へ送信される。ラッチ・バンク２６４は、本発明の原理によって低減しようとする種類のオーバーヘッドを示す。
【００２１】
図５は、本発明の一実施形態による、マルチポート・メモリ３１４のＡＢＩＳＴテストを実行するための代表的な回路３１２を示す。メモリ３１４は、図１の浮動小数点レジスタ２１６と対応させることができる。示されるように、メモリ３１４は２つのポートを備えるが、しかしながら、メモリ３１４内に２つだけのポートを示していることは、本発明の範囲を限定することを意味するものではなく、本発明の原理は、レジスタ、ＲＡＭ、或いは、３つ又はそれ以上のポートを有する他のメモリに拡大適用することができる。実際には、マルチ発行及びマルチスレッドに適合するように、６個の読取り／３個の書込みポート、又はそれ以上のポートを有する浮動小数点（ＦＰ）レジスタを実装することができる。動作中に、機能性ラッチ・バンク３２０はポートＡのためにＲＡＭアドレスＡ３４０を保持する。同様に、動作中に、機能性ラッチ・バンク３２２はポートＢのためにＲＡＭアドレスＢ３５０を保持する。従って、機能性ラッチ・バンク３２２及び３２０は、メモリ３１４のタイミング要求に応じるようにアドレスを保持する。しかしながら、ＡＢＩＳＴテストに際して、機能性ラッチ・バンク３２２内のラッチは、ラッチ・バンク３２０に対するシャドー・ラッチとして機能するようにインターリーブ（交互配置）される。ラッチ・バンク３２２内の機能性保持ラッチをシャドー・ラッチとして用いることは、ＡＢＩＳＴテストに必要なテスト・オンリーのハードウェアの量を制限するのに役立つ。
【００２２】
ポートＡのＡＢＩＳＴテスト中に（図５）、ＡＢＩＳＴコントローラ３７０は、テスト・データを機能性ラッチ・バンク３２０へ送る。ラッチ３２４は、ラッチ３２６に対するシャドー・ラッチとして機能する。同様に、ラッチ３２８はラッチ３３０に対するシャドー・ラッチとして機能する。図５に示されるように、ラッチ３２４は、ポートＡのテストのために必要なただ１つのテスト・オンリーのラッチである。従って、図５に示されるＡＢＩＳＴ方式を用いることは、図４に示されるＡＢＩＳＴ方式と比較すると、必要なテスト・オンリーのハードウェアの量を低減する。ポートＡのテスト中にポートＢの機能性ラッチ・バンク３２２を用いることは、シャドー・ラッチ・バンク２６４内のシャドー・ラッチ（図４）のような専用のシャドー・ラッチをもつ必要性を低減する。シャドー・ラッチ・バンク２５４又は２６４（図３及び図４）等のシャドー・ラッチの全バンクをもつ代わりに、回路３１２はシャドー・ラッチ３２４を利用する。テスト中、連続的なクロック・サイクルで生じる読取り／書込み動作に際して、シャドー・ラッチ３２４は、機能性保持ラッチ３２６に対して直前の値を提供することができる。こうした連続の（back-to-back）読取り及び／又は書込みのサイクルを用いるテストは、メモリ・デバイスにストレスを与えて、さもなければ検出されないままとなる欠陥を顕在化させることができる。従って、シャドー・ラッチ３２４は、連続的なクロック・サイクルでＲＡＭ３１４をテストする機能を提供するが、このことはＲＡＭ３１４内に存在し得る特定の欠陥を検出する場合に好都合である。シャドー・ラッチ３２４に加えて、本発明の実施形態は他のラッチ（図示せず）を利用することもできる。例えば、アドレス・ポートとデータ・ポートの間、又はデータと制御の間のように、異なる型のメモリ・ポートの間の走査パス中のラッチを利用できる。
【００２３】
図５は、テスト中に別のポートに対するシャドー・ラッチを提供するように、１つのポートからの機能的ラッチ・バンクをインターリーブするための方式を示す。本発明の一実施形態においては、図５に示される原理は２つより多いポートを有するＲＡＭに拡張することができる。奇数のポートのためには、同様のＡＢＩＳＴ方式は必要に応じて３つのポートをインターリーブすることができる。このタイプの方法は、機能的速度で作動する共通の走査可能なＡＢＩＳＴエンジン（ＡＢＩＳＴコントローラ３７０等）をサポートする。機能性速度での実行は、より低い速度での実行によっては検出されない可能性がある過渡的欠陥を観測する際に有用となり得る。更に、ＡＢＩＳＴテストのための専用のシャドー・ラッチを必要としないことにより、本発明の実施形態は、ＡＢＩＳＴテストを遂行するために、より少ないロジック回路、オーバーヘッド、及び労働力を必要とすることになる。このことは、より少ないチップ面積及び電力を用いる設計に帰着する。従って、こうした設計において、他の走査可能なＡＢＩＳＴソリューションより速く且つより低温で作動することができる。
【００２４】
図６は、本発明の原理を実装するハードウェア環境を示す。図５及び図６において同じ番号付けされた要素は一致するので、同じ番号付けされた部材の説明は反復しない。図５と比較すると、図６は回路バンク４０２内に示される回路要素を追加している。ＡＢＩＳＴテスト中に、回路バンク４０２は、シャドー・ラッチ・バンク３２２と機能性ラッチ・バンク３２０との間の信号を変更するように機能する。本発明の一実施形態においては、回路バンク４０２は、反転機能等のＡＢＩＳＴ制御可能機能を含むが、しかしながら、回路バンク４０２のコンポーネントは、ラッチ・バンク３２０に対して数列を増加したり減少したりするような上位動作を自動的に可能にすることができる、線形フィードバック・シフト・レジスタ（ＬＦＳＲ）等のより高機能のロジック回路とすることもできる。
【００２５】
本発明及び本発明の利点が詳細に説明されてきたが、添付の特許請求の範囲で規定される通りの本発明の精神及び範囲から逸脱することなく、種々の変更、置換え及び改変をここで行なうことができるということが理解されるべきである。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態による、走査メモリ・テストを組み込んだ中央演算処理装置（ＣＰＵ）の一部分を示す。
【図２】マルチポート・メモリ・アレイに動作可能なように結合されたＡＢＩＳＴコントローラを示す。
【図３】テスト・オンリー・ラッチのシャドー・ラッチ・バンクを用いる、単一ポートＲＡＭをテストするためのハードウェア環境を示す。
【図４】テスト・オンリー・ラッチのシャドー・ラッチ・バンクを用いる、マルチポートＲＡＭをテストするためのハードウェア環境を示す。
【図５】ポートＡのシャドー・ラッチとして、ポートＢからの機能性ラッチを用いる、マルチポートＲＡＭをテストするためのハードウェア環境を示す。
【図６】シャドー・ラッチと機能性ラッチとの間の信号を変更するための付加的な回路を有し、ポートＡのシャドー・ラッチとしてポートＢからの機能性ラッチを用いる、マルチポートＲＡＭをテストするためのハードウェア環境を示す。
【符号の説明】
【００２７】
１０１：ＣＰＵ
１０６：Ｌ１Ｉキャッシュ
１６６、１６８：ライン
１７０、３７０：ＡＢＩＳＴコントローラ
２００：命令ユニット
２１０：実行ユニット
２１６：浮動小数点レジスタ
２２０：ストレージ制御ユニット
２２２：メモリ管理ユニット
２５０、３１２：回路
２５２：単一ポートＲＡＭ
２５４、２６４：シャドー・ラッチ・バンク
２５６、２６１、２６２：保持ラッチ・バンク
２６０：ハードウェア環境
２６５、３１４：マルチポートＲＡＭ
３２４：シャドー・ラッチ
３２６：保持ラッチ
４０２：回路バンク
【図１】
2007109372.tif 000003
【図２】
2007109372.tif 000004
【図３】
2007109372.tif 000005
【図４】
2007109372.tif 000006
【図５】
2007109372.tif 000007
【図６】
2007109372.tif 000008