(57)【要約】  2つまたはそれ以上の書き込みポートを介してアレイにデータを同時に書き込むこと、および／または2つまたはそれ以上の読み出しポートを介してアレイからデータを同時に読み出すことによる「内蔵自己テスト」（ＢＩＳＴ）コントローラによって、マルチポートのメモリアレイがプロセッサの動作周波数でテストされる。アレイから読み出されたデータとアレイに書き込まれたデータとの比較は、直列的に実施されてもよいし、並列的に実施されてもよい。比較回路は、プロセッサの通常の動作の間、効果的に動作不能にされる。マルチポートを介したデータの書き込みおよび／または読み出しを同時に行うことによって、従来のテスト方法に比べて、潜んでいた電気的マージナリティをあらわにすることができ、テスト時間を減縮することができる。
2009528641.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ内の、複数の書き込みポートを有するメモリアレイをテストする方法であって、
第一のデータパターンを第一の書き込みポートを介して前記アレイの第一のアドレスに書き込むこと、
第二のデータパターンを第二の書き込みポートを介して前記アレイの第二のアドレスに同時に書き込むこと、
前記アレイから前記第一および第二のデータパターンを読み出すこと、および
前記アレイから読み出された前記第一および第二のデータパターンを前記アレイに書き込まれた前記第一および第二のデータパターンとそれぞれ比較すること、
を備える、メモリアレイをテストする方法。      
【請求項２】
前記第一および第二のデータパターンの書き込みに先立って、背景データパターンを少なくとも前記アレイの第一および第二のアドレスに書き込むことをさらに備える、請求項１に記載の方法。         
【請求項３】
前記第一および第二のデータパターンが同じである、請求項１に記載の方法。
【請求項４】
前記第一および第二のデータパターンが異なる、請求項１に記載の方法。    
【請求項５】
前記第一および第二のアドレスが隣接している、請求項１に記載の方法。
【請求項６】
前記第一および第二のアドレスが隣接していない、請求項１に記載の方法。
【請求項７】
テストパターンの前記書き込みおよび読み出しが集積回路の動作周波数で行われる、請求項１に記載の方法。
【請求項８】
プロセッサ内の、複数の読み出しポートを有するメモリアレイをテストする方法であって、
第一のデータパターンを前記アレイの第一のアドレスに書き込むこと、
第二のデータパターンを前記アレイの第二のアドレスに書き込むこと、
第一の読み出しポートを介して前記アレイから前記第一のデータパターンを読み出すこと、
第二の読み出しポートを介して前記アレイから前記第二のデータパターンを同時に読み出すこと、および
前記アレイから読み出された前記第一および第二のデータパターンを前記アレイに書き込まれた前記第一および第二のデータパターンとそれぞれ比較すること、
を備える、メモリアレイをテストする方法。      
【請求項９】
前記第一および第二のデータパターンの書き込みに先立って、背景データパターンを前記アレイの少なくとも第一および第二のアドレスに書き込むことをさらに備える、請求項８に記載の方法。
【請求項１０】
前記第一および第二のデータパターンが同じである、請求項８に記載の方法。
【請求項１１】
前記第一および第二のデータパターンが異なる、請求項８に記載の方法。    
【請求項１２】
前記第一および第二のアドレスが同じである、請求項８に記載の方法。
【請求項１３】
前記第一および第二のアドレスが異なる、請求項８に記載の方法。
【請求項１４】
テストパターンの前記書き込みおよび読み出しがプロセッサの動作周波数で行われる、請求項８に記載の方法。
【請求項１５】
前記アレイから読み出された前記第一および第二のデータパターンを前記アレイに書き込まれた前記第一および第二のデータパターンと比較することは、前記アレイから読み出された前記第一および第二のデータパターンを前記アレイに書き込まれた前記第一および第二のデータパターンと同時に比較することを備える、請求項８に記載の方法。         
【請求項１６】
第三のデータパターンを前記アレイの第三のアドレスに書き込むこと、
前記第一および第二のデータパターンを読み出すのと同時に、第三の読み出しポートを介して前記アレイから前記第三のデータパターンを読み出すこと、および         
前記アレイから読み出した前記第三のデータパターンを前記アレイに書き込まれた前記第三のデータパターンと比較すること、
をさらに備える、請求項８に記載の方法。
【請求項１７】
前記データパターンを比較することは、
前記アレイから読み出された前記第一および前記第二のデータパターンを前記アレイに書き込まれた前記第一および第二のデータパターンと同時に比較すること、および
その後、前記アレイから読み出された第三のデータパターンを前記アレイに書き込まれた前記第三のデータパターンと比較すること、
を備える、請求項１６に記載の方法。
【請求項１８】
プロセッサ内のメモリアレイをテストする方法であって、    
１つまたはそれ以上の所定のデータパターンを前記アレイに書き込むこと、
２つまたはそれ以上の読み出しポートを介して前記アレイからデータパターンを同時に読み出し、それによって、１度に１つの読み出しポートを介してデータを読み出すことによってはあらわにならない、前記アレイおよび／または読み出しポートの電気的マージナリティをあらわにすること、
を備える、プロセッサ内のメモリアレイをテストする方法。
【請求項１９】
１つまたはそれ以上の所定のデータパターンを前記アレイに書き込むことは、所定のデータパターンを２つまたはそれ以上の書き込みポートを介して前記アレイに同時に書き込み、そのことによって、１度に１つの書き込みポートを介してデータを書き込むことによってはあらわにならない、前記アレイおよび／または書き込みポートの電気的マージナリティをあらわにすることを備える、請求項１８に記載の方法。
【請求項２０】
前記アレイの書き込みおよび読み出しが前記プロセッサの動作周波数で行われる、請求項１８に記載の方法。
【請求項２１】
少なくとも１つの書き込みポートと複数のラッチ読み出しポートを備えたメモリアレイ、
読み込みデータ入力と比較データ入力を有し、読み込みデータと比較データパターンが一致するかどうかの表示を出力する、第一のデータ比較器、
２つまたはそれ以上の第一読み出しポートから前記第一の比較器の読み込みデータ入力へデータを選択的に送る第一の選択器、および
前記書き込みポート、前記第一の読み出しポート、および前記第一の選択器を制御し、書き込みデータを前記書き込みポートに供給し、比較データを前記第一の比較器の比較データ入力に供給し、前記第一の比較器の出力を受信する、内蔵自己テストコントローラであって、該内蔵自己テストコントローラの動作は、
１つまたはそれ以上の所定のデータパターンを前記書き込みポートを介して前記アレイに書き込むこと、
２つまたはそれ以上の第一の読み込みポートを介して前記アレイから前記書き込みデータを同時に読み出すこと、および
前記第一の選択器を順次制御し、第一の読み出しポートの各々から第一比較器にデータを送り、対応する比較データを前記第一の比較器に供給し、前記第一の比較器の出力を検査することによって前記アレイを検証すること、
を含む該内蔵自己テストコントローラを備えるプロセッサ。
【請求項２２】
前記内蔵自己テストコントローラの動作は、複数のデータパターンを前記アレイの異なるアドレスに書き込むこと、および２つまたはそれ以上の第一の読み出しポートを介して前記異なるアドレスから前記書き込みデータを同時に読み出すことを含む、請求項２１に記載のプロセッサ。
【請求項２３】
前記内蔵自己テストコントローラの動作は、データパターンを前記アレイの１つのアドレスに書き込むこと、および２つまたはそれ以上の第一の読み出しポートを介して該アドレスから前記書き込みデータを同時に読み出すことを含む、請求項２１に記載のプロセッサ。
【請求項２４】
前記内蔵自己テストコントローラは、前記プロセッサの動作周波数で、前記メモリアレイの書き込みおよび読み出しを行う、請求項２１に記載の方法。
【請求項２５】
前記第一の選択器はさらに固定データパターンを前記第一の比較器のデータ入力に選択的に送り、
前記内蔵自己テストコントローラはシステムリセットを受信し、前記内蔵自己テストコントローラは第１の選択器を制御して、リセットに続いて前記固定データパターンを前記第一の比較器に送る動作をさらに備える、請求項２１に記載のプロセッサ。 
【請求項２６】
読み込みデータ入力と比較データ入力を有し、読み込みデータと比較データパターンが一致するかどうかの表示を出力する、第二のデータ比較器、
２つまたはそれ以上の第二読み出しポートから前記第二の比較器の読み込みデータ入力へデータを選択的に送る第二の選択器、および
ここにおいて前記内蔵自己テストコントローラはさらに、前記第二の読み出しポートおよび前記第二の選択器を制御し、比較データを前記第二の比較器の比較データ入力に供給し、前記第二の比較器の出力を受信し、該内蔵自己テストコントローラの動作は、
１つまたはそれ以上の所定のデータパターンを前記書き込みポートを介して前記アレイに書き込むこと、
２つまたはそれ以上の第一の読み込みポートおよび２つまたはそれ以上の読み出しポートを介して前記アレイから前記書き込みデータを同時に読み出すこと、および
並列する前記第一および第二の選択器を順次制御して第一および第二の読み出しポートの各々から前記それぞれの比較器にデータを送り、対応する比較データをそれぞれの比較器に供給し、および前記第一および第二の比較器の出力を検査することによって前記アレイを検証すること、
をさらに含む該内蔵自己テストコントローラ、
をさらに備える、請求項２１に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本件開示は、一般にプロセッサの分野に関し、より詳細にはマルチポートのメモリアレイをプロセッサの動作周波数（クロック速度）でテストする方法に関する。
【背景技術】
【０００２】
マイクロプロセッサは、広い様々な応用分野においてコンピュータ動作を実行する。プロセッサは、サーバまたはデスクトップコンピュータ等の固定型コンピュータシステムの中央のまたは主要な処理ユニットとしての役割を果たすことができる。そのようなデスクトッププロセッサに求められる第一の考慮事項は、実行速度の高速性である。またプロセッサは、ラップトップやＰＤＡ（Personal Digital Assistants）等の移動型コンピュータにおいて、また携帯電話、ＧＰＳ(Global Positioning System)受信機、携帯型のe-メールクライアント等の組み込みアプリケーションにおいて、ますます用いられるようになっている。このような移動型のアプリケーションにおいては、実行速度の高速性にくわえ、低消費電力性とサイズの小型化が望まれる。
【０００３】
多くのプログラムは、それらを実行するコンピュータが大容量の（理想的には無限の）高速メモリを有しているかのように書かれる。近年の一般的プロセッサは、異なる速度と異なる価格の特性を有する様々なタイプのメモリを階層的に利用することによって、無限容量の高速メモリという理想の状態をシミュレートする。階層構造におけるメモリの各タイプは、上層の高速・高価格のメモリから、下層の低速・低価格のものまで段階的に変化する。一般的プロセッサのメモリの階層構造は、最上層ではプロセッサ内部のレジスタ（ゲート）を備え、それはスタティックＲＡＭ(ＳＲＡＭ)を備える1つまたはそれ以上のオンチップのキャッシュによってバックアップされ、そしておそらくはオフチップのキャッシュ(ＳＲＡＭ)、メインメモリのダイナミックＲＡＭ(ＤＲＡＭ)、ディスク型記憶装置（電子機械式アクセスの磁気記録媒体）を有し、そして最下層ではテープまたはＣＤ（磁気または光学式記録媒体）を備えるという構成のものであってよい。たいていの持ち運び可能な電子デバイスは、持っていたとしても、限られた容量のディスク記憶装置しか持っていなくて、したがってメインメモリは、しばしばサイズが小さく、メモリの階層構造における最下層のものである。
【０００４】
プロセッサのメモリの階層構造の最上層を構成するのは、高速・オンチップのレジスタである。ディスクリートのレジスタおよび／またはラッチ回路は、プログラム命令の実行のパイプライン処理における記憶要素として用いられる。たいていのＲＩＳＣ命令セットのアーキテクチュアは、命令ＯＰコード、アドレス、オフセット、被演算子、および直近の最後の算術論理演算操作の結果など、多種多様なデータを記憶するためにプロセッサによって使用される汎用レジスタ（General Purpose Register、ＧＰＲ）の集合を含んでいる。
【０００５】
いくつかのプロセッサでは、論理ＧＰＲは物理的記憶要素に対応する。その他のプロセッサでは、各々の論理ＧＰＲ識別名を記憶場所（storage locations）または物理的レジスタの大きな集合の1つに動的に割り当てること（当該分野ではレジスタ・リネーミングとして周知の手法である）によってパフォーマンスが改善される。いずれの場合でも、論理ＧＰＲ識別名によってアクセスされる記憶要素は、ディスクリートのレジスタとしてではなく、むしろメモリアレイ内の記憶場所として実装される。論理ＧＰＲを実装するレジスタまたはメモリアレイの記憶要素は、マルチポート化される。すなわち、それらは、様々なパイプラインステージ、ＡＬＵ（算術論理演算ユニット）、キャッシュメモリ等々の複数の異なるプロセッサに書き込まれ、および／または当該複数の異なるプロセッサによってその内容が読み出されることができる。
【０００６】
テストは、欠陥のある部品や標準以下の部品を特定し、取り除くための、ＩＣの製造におけるもっとも重要な部分の１つである。メモリアレイのテストは、特に問題がある。自動テストパターン生成（ＡＴＰＧ）という方法は、励起パターンを走査してスキャンチェーン（scan-chained）のレジスタまたはラッチ回路に取り込む工程と、そのパターンを適用してランダムロジックを動かす工程と、その結果をもう１つのスキャンチェーンのレジスタまたはラッチ回路の集合に取り込む工程と、および取り込まれた結果を期待値との比較のために走査して出力する工程とを備える。メモリアレイは、アレイにおけるテストパターンの中間的記憶の必要のために、ＡＴＰＧ技法を使っては効率的にテストすることができない。
【０００７】
プロセッサにおけるメモリアレイは、機能性テストによってテストすることができる。機能性テストにおいては、テストパターンをアレイに(たとえば、論理ＰＧＲに)書き込み、次にその値を読み出して期待値と比較するために、コードがプロセッサのパイプラインにおいて実行される。機能性テストは、時間を消費し、かつ非効率である。なぜなら、プロセッサが初期化されなくてはならないし、テストの実行に先立って、テストのコードがキャッシュメモリに読み込まれなくてはならないからである。くわえて、制御および観察の地点（パイプラインの内）が、テストされている記憶場所から離れていて、その間にある回路から未発見の欠陥を分離することが難しいかもしれない。
【０００８】
したがって、組み込みメモリを備えた従来の多くのプロセッサは、テストモードのときにメモリアレイをテストする「内蔵自己テスト」（Built-in Self-Test、ＢＩＳＴ）回路を含んでいる。ＢＩＳＴコントローラは、データパターンをメモリアレイに書き込み、そのデータパターンを読み出し、その読み出されたデータを期待値と比較する。機能モードにあるときは、ＢＩＳＴコントローラは動かないようにされていて、メモリアレイは、プロセッサのコントローラによって制御される。従来のＢＩＳＴシステムは、テストの最中にアレイへの書き込みおよび／またはアレイからの読み出しを実行するための専用のテストポートをメモリアレイの中に設けている。このことは、メモリアクセスの帯域幅を制限することによって、テスト時間（test duration）を一定の値以下にすることができないという下限を設定する；このため、機能的読み出しおよび書き込みポートを含む、メモリ入出力回路のテストに失敗する；そして、2つまたはそれ以上のポートがアレイに同時にアクセスするときだけあらわになる電気的マージナリティ（限界）を発見することに失敗する可能性がある。
【発明の開示】
【発明の概要】
【０００９】
1つ又はそれ以上の実施形態にしたがって、2つまたはそれ以上の書き込みポートを介してアレイにデータを同時に書き込むこと、および／または2つまたはそれ以上の読み出しポートを介してアレイからデータを同時に読み出すことによる「内蔵自己テスト」（ＢＩＳＴ）コントローラによって、マルチポートのメモリアレイがプロセッサの動作周波数でテストされる。アレイから読み出されたデータとアレイに書き込まれたデータとの比較は、直列的に実施されてもよいし、並列的に実施されてもよい。比較回路は、プロセッサの通常の動作の間、効果的に動作不能にされる。マルチポートを介したデータの書き込みおよび／または読み出しを同時に行うことによって、従来のテスト方法に比べて、潜んでいた電気的マージナリティをあらわにすることができ、テスト時間を減縮することができる。
【発明の実施の形態】
【００１０】
１つの実施形態は、プロセッサ内の、複数の書き込みポートを有するメモリアレイのテスト方法に関する。第一のデータパターンが第一の書き込みポートを介してアレイの第一のアドレスに書き込まれる。第二のデータパターンが第二の書き込みポートを介してアレイの第二のアドレスに同時に書き込まれる。第一および第二のデータパターンがアレイから読み出される。アレイから読み出された第一および第二のデータパターンがそれぞれ、アレイに書き込まれた第一および第二のデータパターンと比較される。
【００１１】
もう１つの実施形態は、プロセッサ内の、複数の読み出しポートを有するメモリアレイのテスト方法に関する。第一のデータパターンがアレイの第一のアドレスに書き込まれる。第二のデータパターンがアレイの第二のアドレスに書き込まれる。第一のデータパターンが第一の読み出しポートを介してアレイから読み出される。第二のデータパターンが第二の読み出しポートを介してアレイから同時に読み出される。アレイから読み出された第一および第二のデータパターンはそれぞれ、アレイに書き込まれた第一および第二のデータパターンと比較される。
【００１２】
その他の実施例は、プロセッサ内のメモリアレイのテスト方法に関する。1つまたはそれ以上の所定のデータパターンがアレイに書き込まれる。これらのデータパターンは2つまたはそれ以上の読み出しポートを介してアレイから同時に読み出される。このことによって、１つの読み出しポートを介して1回ずつデータを読み出すことによってはあらわにされない、アレイおよび／または読み出しポートにおける電気的マージナリティをあらわにすることができる。
【００１３】
さらにその他の実施形態は、プロセッサに関する。プロセッサは、少なくとも1つの書き込みポートと複数のラッチ読み出しポートを有するメモリアレイと；読み出しデータと比較データを入力とし、読み出しデータと比較データパターンが一致するかどうかを示す表示を出力する第一のデータ比較器と；2つまたはそれ以上の第一の読み出しポートから第一の比較器の読み出しデータ入力へデータを送る第一の選択器とを備える。プロセッサはまた、ＢＩＳＴコントローラを含む。該ＢＩＳＴコントローラは、書き込みポート、第一の読み出しポート、および第一の選択器を制御し、書き込みデータを書き込みポートに送り、比較データを第一の比較器の比較データ入力に送り、および第一の比較器の出力を受信する。ＢＩＳＴコントローラは以下の動作をする。1つまたはそれ以上の所定のデータパターンを書き込みポートを介してアレイに書き込む；2つまたはそれ以上の第一の読み出しポートを介してアレイから書き込みデータを同時に読み出す；および第一の選択器を順次制御して、各々の第一の読み出しから第一の比較器へデータを送り、対応する比較データを第一の比較器に送り、そして第一の比較器の出力を検査することによってアレイを検証する。
【００１４】
図1は、プロセッサ１０の機能的ブロック図を示す。プロセッサ１０は、コントロールロジック１４にしたがって、命令実行パイプライン１２の中の命令を実行する。パイプライン１２は、１２ａおよび１２ｂのような複数の並列型パイプラインを備えたスーパー・スカラー設計であってよい。パイプライン１２ａおよび１２ｂは、パイプステージ構造の様々なレジスタまたはラッチ回路１６と、１またはそれ以上の算術論理演算ユニット（ＡＬＵ）１８を含む。メモリアレイ２０は、論理ＧＰＲにマップされる複数の記憶場所を提供する。
【００１５】
パイプライン１２ａ、１２ｂは、命令キャッシュ（I-キャッシュ）から命令を取り出す。I-キャッシュのメモリアドレッシングとパーミッションは、命令側の索引変換バッファ（Instruction-side Translation Look-aside Buffer、ＩＴＬＢ）２４によって管理される。データはデータキャッシュ（Ｄキャッシュ）２６からアクセスされる。Ｄキャッシュのメモリアドレッシングとパーミッションは、メインの索引変換バッファ（ＴＬＢ）２８によって管理される。様々な実施形態において、ＩＴＬＢはＴＬＢの部分のコピーとして構成することも可能である。代替的に、ＩＴＬＢとＴＬＢを集積化することもできる。同様に、プロセッサ１０の様々な実施形態において、Ｉキャッシュ２２とＤキャッシュ２６を集積化または一体的化することもできる。Ｉキャッシュ２２および／またはＤキャッシュ２６におけるミスは、メモリインタフェイス３０の制御下にあるメインの（オフチップの）メモリ３２へのアクセスを生じる。プロセッサ１０は、様々な周辺端末装置３６へのアクセスを制御するＩ／Ｏインターフェイス３４を含んでもよい。この分野の当業者であれば、プロセッサ１０には無数の変形実施形態がありうることを理解するであろう。例えば、プロセッサ１０は、ＩキャッシュとＤキャッシュの一方または双方のために、二次キャッシュを含んでもよい。さらに、プロセッサ１０に図示される1つまたはそれ以上の機能ブロック図は、特定の実施形態から省くこともできる。
【００１６】
図2は、論理GPRの集合と内蔵自己テスト（ＢＩＳＴ）コントローラ４０を実装するマルチポートのメモリアレイ２０を図示する。メモリアレイ２０は、１６ビット毎の１２８ビットとして構造化される。ただし、本明細書において開示されるテスト方法および装置は、任意の構造のマルチポート型メモリに適用可能である。メモリアレイ２０における各々の１２８ビットの記憶場所は、ワード単位で読み出し可能である。アレイ２０は、論理的にも物理的にもワード（３２ビット）の境界でセグメント化される。メモリアレイ２０の中央には、共有のプリチャージ・電力配分回路が置かれる。
【００１７】
図2に示される特定のメモリアレイ２０は、３つの書き込みポート４２と５つの読み出しポート４４を含んでいて、３つの読み出しポート４４はメモリアレイ２０の一方の側に沿って配置され、２つの読み出しポート４４は反対側に配置される。この構造は単なる代表例である。ラベルA、B、Cが付されている３つの読み出しポート４４は、例えば、多重化装置のような選択器４６に接続される。ＢＩＳＴコントローラ４０は、信号線５６を介して選択器４６を制御し、読み出しポートA、BまたはCの１つによってメモリアレイ２０から読み出されたデータを比較器４８のデータ端子に送る。ＢＩＳＴコントローラはさらに、信号線５８に沿って比較器４８の比較データ入力にデータパターンを送る。読み出しポート４４のDおよびEによって読み出されたデータは、同様に、選択器５０を通って第二の比較器５２に送られる。ＢＩＳＴコントローラ４０は、選択器５０を制御し、比較器５２に比較データを送る。比較器４８、５２の出力は、信号線６０に沿ってＢＩＳＴコントローラ４０に送られる。
【００１８】
テストモードでは、ＢＩＳＴコントローラ４０は、書き込みポート４２のA、Bおよび／またはCを介して、背景データパターンをメモリアレイ２０に書き込む。ＢＩＳＴコントローラ４０はつぎに、書き込みポート４２のA、Bおよび／またはCを介して、テストデータパターンを1つまたはそれ以上のメモリアレイ２０の記憶場所に書き込む。少なくともいくつかのテストにおいては、ＢＩＳＴコントローラ４０は、３つの書き込みポート４０のすべてを介してテストデータパターンを同時に書き込む。このことによって、一度にただ１つの書き込みポート４２からデータを書き込むときには観察できないようなメモリアレイ２２の電気的マージナリティをあらわにすることができる。
【００１９】
ＢＩＳＴコントローラ４０はつぎに、少なくとも２つの読み出しポート４４を介して、メモリアレイ２０からテストデータパターンを同時に読み出す。メモリアレイ２０に最大の負荷を加えて、あらゆる潜在的な電気的マージナリティをあらわにするために、くわえてテスト時間を最小限にするために、ＢＩＳＴコントローラ４０は、すべての利用可能な読み出しポート４４（すなわち、図２の実施形態では５つの読み出しポートのすべて）を介して同時にデータを読み出す。ＢＩＳＴコントローラはつぎに、読み出しポート４４の各々から比較器４８、５２へデータを順次送り、比較器４８、５２に、対応する期待データパターンを同時に供給し、比較器４８、５２の出力を検査して、メモリアレイ２０から適切なデータパターンが読み出されたことを検証する。ＢＩＳＴコントローラ４０は、プロセッサ１０のコンポーネントの中に在るので、すべてのテストは、「at-speed」で、すなわち、プロセッサ１０の動作周波数(クロック速度)で行われる。
【００２０】
図2の実施形態において、1回のテストにおいて、ＢＩＳＴコントローラ４０は、５つの読み出しポートのすべてを介して複数のテストパターンを同時に読み取ることによって、メモリアレイ２０に最大の負荷を加え、テスト時間を最小限にする。読み出しポート４４のAとDからのデータはつぎに、それぞれの比較器４８、５２に同時に送られ、適当な比較パターンが供給されて、比較器の出力が検証される。その次のサイクルにおいて、読み出しポート４４のBとEからのデータが同時に検証される。最後に、読み出しポート４４のCからのデータが比較器４８において検証される。５つの読み出しポート４４のすべてを使ってメモリアレイ２０からのデータを同時に読み出すことによって、メモリアレイ２０に圧力を加え、潜んでいる電気的マージナリティをあらわにする。比較器４８、５２を使用して、読み出しポート４４からのデータを同時に検証することは、テスト時間を最小限にする。
【００２１】
この分野の当業者であれば、比較器４８、５２の数を増やしてデータ比較を並列的に行うことによってテスト時間をさらに短縮することができるということは容易にわかるであろう。読み出しポート４４のそれぞれについて比較器４８、５２を用意することによってテスト時間を最小限にすることができる（選択器４６、５０の必要性をなくす）。しかし、このことはシリコン領域を増やし、プロセッサの通常の動作の最中には使用されないテスト回路のための結線をいたずらに輻輳化する。他方の極端な事例では、単一の比較器４８、５２が用意されて、すべての読み出しポート４４からのデータが単一の選択器４６、５０を通って送られる。これはテスト回路を最小化するが、メモリアレイ２０の各ワードが順次比較されなくてはならないので、テスト時間を一定の時間以下にすることができなくなる。しかし、比較器４８、５２がたとえ１つであったとしても、2つまたはそれ以上の（最大限利用な数まで）読み出しポート４４を介して同時にデータを読み出すことによって、メモリアレイ２０は、従来のテスト方法によって行うことができることに比べて、もっと完全で現実的にテストを行うことができる。
【００２２】
本明細書において開示されるテスト装置および方法はさらに、従来のテストシステムより詳細で診断的である。従来のテストシステムの多くは、最低限の機能性テスト（すなわち、ＧＯ／ＮＯ−ＧＯ判定）に限られている。ＢＩＳＴコントローラ４０は、３つの書き込みポート４２を介して3つの異なる記憶場所にテストデータパターンを同時に書き込むことによって、そして５つの読み出しポートを介して５つの異なる記憶場所からデータを同時に読み出すことによって、テスト時間を最小限にすることができる。代替的に、ＢＩＳＴコントローラ４０は、すべての利用可能なそれぞれのポートを利用して１つの記憶場所に対してデータの書き込みおよび／または読み出しを行うことによって、個々の記憶場所（および関連するＩ／Ｏ回路）に圧力を加えることができる。
【００２３】
本テスト方法は、2つまたはそれ以上の書き込みポート４２および／または2つまたはそれ以上の読み出しポート４４を有する任意のメモリアレイに対して適用可能である。図3は、読み出しポート４４または比較器４８、５２の数に関係なく、少なくとも２つの書き込みポートを有するメモリアレイに対するＢＩＳＴ方法を示す。背景パターンが1つまたはそれ以上の書き込みポートを介してメモリアレイ２０の少なくとも第一および第二のアドレスに書き込まれる(ブロック６０)。第一のデータパターンが第一の書き込みポート４２を介してメモリアレイ２０の第一のアドレスに書き込まれる(ブロック６２)。同時に、第二のデータパターンが第二の書き込みポート４２を介してメモリアレイ２０の第二のアドレスに書き込まれる(ブロック６４)。第一および第二のデータパターンは同じであってもよく、異なったものでもよい。同様に、第一および第二のアドレスは隣接するアドレスでもよく、遠く離れたアドレスもでもよい。第一および第二のデータパターンはアレイ２０から読み込まれる(ブロック６６)。もしマルチプルの読み出しポート４４が利用可能であれば、データの読み出し動作は同時に行うことができる。代替的に、単一の読み出しポート４４を使用して読み出し動作を順次行うこともできる。アレイ２０から読み出された第一および第二のデータパターンの各々は、アレイ２０に書き込まれているそれぞれのデータパターンと比較される（ブロック６８）。もしデータパターンが一致し（ブロック７０）、かつすべてのアドレスのテストが終了していなければ（ブロック７１）、アドレスが変更されて（ブロック７２）、テストはさらに進む。もしデータパターンが一致し（ブロック７０）、かつすべてのアドレスのテストが終了したならば（ブロック７１）、ＢＩＳＴは完了する(ブロック７３)。もしデータパターンが不一致であれば（ブロック７０）、エラーがフラッグされる(ブロック７４)。それは、さらなるテストが必要であること、すなわち、メモリアレイ２０および／または関連する書き込みポート４２および／または読み出しポート４４に欠陥があることを示す。
【００２４】
図４は、書き込みポート４２または比較器４８、５２の数に関係なく、少なくとも２つの読み出しみポートを有するメモリアレイに対するＢＩＳＴ方法を示す。好ましくは、背景パターンがメモリアレイ２０の少なくとも第一および第二のアドレスに書き込まれる(ブロック８０)。第一のデータパターンがアレイ２０の第一のアドレスに書き込まれ(ブロック８２)、第二のデータパターンがアレイ２０の第二のアドレスに書き込まれる（ブロック８４）。もしマルチプルの書き込みポート４２が利用可能であれば、第一および第二のデータパターンは同時に書き込まれてもよい。そうでない場合は、単一の書き込みポート４２を介して順次書き込んでもよい。第一および第二のデータパターンは同じものでも、異なったものでもよい。また第一および第二のアドレスは、隣接するアドレスでもよく、遠く離れたアドレスもでもよい。第一のデータパターンは第一の読み出しポート４４を介してアレイ２０から読み出される（ブロック８６）。同時に、第二にデータパターンが第二の読み出しポート４４を介してアレイ２０から読み出される（ブロック８８）。アレイ20から読み出された第一および第二のデータパターンの各々は、アレイ２０に書き込まれているそれぞれのデータパターンと比較される（ブロック９０）。もし複数の比較器が用意されているのであれば、比較は並列的に行ってもよい。そうでなければ、比較は順次行われる。もしデータパターンが一致し(ブロック９２)、かつすべてのアドレスのテストが終了していなければ(ブロック９３)、アドレスが変更されて（ブロック９４）、テストはさらに進む。もしデータパターンが一致し（ブロック９２）、かつすべてのアドレスのテストが終了したならば（ブロック９３）、ＢＩＳＴは完了する(ブロック９５)。もしデータパターンが不一致であれば（ブロック９２）、エラーがフラッグされる(ブロック９６)。
【００２５】
再び図2を参照して、比較器４８、５２はスタティック論理ゲートから構成される。すなわち、比較器４８、５２は、そのデータ入力に提供された任意のデータとその比較入力に提供されたデータを比較し、両者のデータパターンが一致するかどうかを示す信号を生成する。プロセッサの通常の動作の間（すなわち、テストモードでないときは）、読み出しポート４４によって出力されるデータは、コンスタントに変化する。もし少なくとも１つの読み出しポート４４が選択器４６、５０によって比較器４８、５２のデータ入力につながれていれば、比較器４８、５２内の論理ゲートは、コンスタントにスイッチング動作をし、電力を消費し、熱を発生し、電気的ノイズの一因となる。
【００２６】
したがって、比較器４８、５２のデータ入力にコンスタントなデータパターンが確実に提供されるようにすることによって、比較器４８、５２は、通常動作の間、効果的に不活性にされる。各選択器４６、５０の１つの入力は、接地電力のようなコンスタントなデータパターンに接続される（図２）。ただし、その他の任意のデータパターンを利用してもよい。テストシステムがリセットされると（あるいはプロセッサが通常動作にあることを示す他の任意の情報に反応して）、ＢＩＳＴコントローラ４０は、選択器４６、５２に対して、固定のデータパターンを選択するように命じる。この結果、スタティックなデータパターンが比較器４８、５２のデータ入力に提供される。ＢＩＳＴコントローラ４０は、対応するスタティックなデータパターンを比較器４８、５２の比較データ入力に随意に提供することができる。比較器４８、５２の出力が一致または不一致のいずれを示そうとも、入力はスタティックであるので、比較器４８、５２の内部のゲートは、最初の１サイクルの比較を超えてスイッチ動作をすることはないだろう。
【００２７】
2つまたはそれ以上の書き込みポート４２を介してデータパターンを同時に書き込むことによって、および／または2つまたはそれ以上の読み出しポート４４を介してデータパターンを同時に読み出すことによって、多数の隠れた電気的マージナリティをあらわにすることができる。従来のテスト方法では、このようなマージナリティを見つけることはまったく不可能である。2つまたはそれ以上の書き込みポート４２を介して同時にデータパターンを書き込むとき、マルチプルの書き込みドライバが同時に始動し、電力網に電圧が加えられる。このことによって、マージナリティがあらわになる。さらに、「静止」のビット線と「スイッチィング」のビット線の間のノイズカップリングがあらわになる。
【００２８】
複数のデータパターンを2つまたはそれ以上の読み出しポート４４を介して同時に読み出すことは、多数のプリチャージの同時オンによって、電力網のマージナリティをあらわにすることができる。同様に、多数の読み出しビット線の同時ディスチャージも電力網のマージナリティをあらわにすることができる。さらに、多数のグローバルなワード線および／またはローカルなワード線を同時にオンにすることによって、電力網のマージナリティをあらわにすることもできる。また多数の読み出しビット線を同時にディスチャージすることによって、「静止」ビット線と「スイッチング」ビット線の間のノイズカップリングをあらわにすることができる。さらに、多数の読み出しデータのラッチ出力が同時にスイッチ動作をすると、絶縁保護がなされていないネットにカップリングが生じる。このノイズは、少し遅れたプッシュアウトを生じ、ノイズや時間的マージナリティをあらわにする。
【００２９】
本件開示は特定の特徴、観点およびそれらを有する実施形態について説明をしてきたが、様々な変形、修正およびその他の実施形態も本件開示の広い範囲の中で可能であることは明白であり、したがって、すべての変形、修正および実施形態は本開示の範囲の中にあるものとして解されるべきである。本件実施形態はそれゆえに、いかなる意味においても例示的かつ非制限的なものとして解釈されるべきであって、添付されている特許請求の範囲の意味およびそれと均等の範囲にあるあらゆる変形はここに取り込まれることを意図するものである。
【図面の簡単な説明】
【００３０】
【図１】図1は、プロセッサの機能的ブロック図。
【図２】図2は、マルチポートのレジスタファイルを実装するメモリアレイと、ＢＩＳＴ回路の機能的ブロック図。
【図３】図3は、2つまたはそれ以上の書き込みポートを介してテストパターンを同時に書き込むことによる、メモリアレイのためのＢＩＳＴ方法のフロー図。
【図４】図4は、2つまたはそれ以上の読み出しポートを介してテストパターンを同時に読み出すことによる、メモリアレイのためのＢＩＳＴ方法のフロー図。
【図１】
2009528641.tif 000003
【図２】
2009528641.tif 000004
【図３】
2009528641.tif 000005
【図４】
2009528641.tif 000006
【国際調査報告】
2009528641.tif 000007
2009528641.tif 000008
2009528641.tif 000009