(57)【要約】メモリアレーのＩ／Ｏ内の読取および書込データステアリングロジックは、メモリアレー記憶場所の各アドレス可能な副単位にデータバスレーンを提供することによって、テストされる。各バスレーンは、比較器のデータインプットに接続される。ＢＩＳＴコントローラは、書込ステアリングロジックをテストするために、書込ステアリングロジックを介してメモリにテストパターンを書き込み、並列にテストパターンを読み取る。ＢＩＳＴコントローラは、読取ステアリングロジックをテストするために、並列にメモリにテストパターンを書き込み、読取ステアリングロジックを介してテストパターンを読み取る。いずれの場合も、各バスレーン専用の個別の比較器は、副単位データがデータバスレーンとメモリの記憶装置の副単位の間で適切に偏移されたことを検証する。比較器は、ロジックゲートの切り換えを防ぐために、通常の動作の間、効果的に動作不可能にされる。
2009529202.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ個のデータレーンを有するデータバスと、各々がＮ個の対応するアドレス可能な副単位を備えた複数の記憶場所を備えるメモリアレーと、の間に置かれたインターフェースの書込データステアリングロジックをテストする方法であって、各記憶場所に関して、
少なくともＮ−１個の副単位に第１のデータパターンを書き込むことと、
前記Ｎ個の副単位のうちの対応しない１個に、前記書込データステアリングロジックを介して、Ｎ個のバスレーンのうちの１個から前記第１のデータパターンと異なる第２のデータパターンを書き込むことと、
すべてのＮ個のバスレーンを使用して、すべてのＮ個の副単位を読み取ることと、
各副単位に関して、前記アレーから読み取られた前記データを、その副単位に書き込まれた前記それぞれの第１または第２のデータパターンと比較することと、
を備える方法。
【請求項２】
少なくともＮ−１個の副単位に第１のデータパターンを書き込むことは、すべてのＮ個のデータバスレーンを使用して、すべてのＮ個の副単位に第１のデータパターンを書き込むことを備える、請求項１に記載の方法。
【請求項３】
各記憶場所に関して前記テストをＮ−１回繰り返すことと、その度ごとに、前記記憶場所の異なる副単位に前記第２のデータパターンを書き込むことと、をさらに備える請求項１に記載の方法。
【請求項４】
前記メモリアレー内の各記憶場所に関して前記テストを繰り返すこと、をさらに備える、請求項３に記載の方法。
【請求項５】
前記アレーから読み取られた前記データを、その副単位に書き込まれた前記それぞれの第１または第２のデータパターンと比較することは、各副単位から読み取られた前記データを、その副単位に書き込まれた前記第１または第２のデータパターンと、並列に、独立して比較すること、を備える請求項１に記載の方法。
【請求項６】
並列に前記データを比較することは、各副単位に関して、前記アレーから読み取られた前記データと、前記それぞれの第１または第２のデータパターンとを、Ｎ個の比較器のうちの１個に方向づけることを備える、請求項５に記載の方法。
【請求項７】
前記第１のデータパターンを書き込むこんだ後に、
前記書込ステアリングロジックを介して、前記第１のＭ個のバスレーンから前記Ｎ個の副単位のうちのＭ個に、前記第１のデータパターンと異なる第２のデータパターンを書き込むこと、
をさらに備え、ＭはＮの整数因数である、
請求項１に記載の方法。
【請求項８】
各記憶場所に関して前記テストをＮ／Ｍ回繰り返すことと、前記書込データステアリングロジックを介して、その度ごとに、前記第１のＭ個のバスレーンから前記記憶場所の前記Ｎ個の副単位のうちの異なるＭ個に前記第２のデータパターンを書き込むことと、をさらに備える請求項７に記載の方法。
【請求項９】
前記比較器回路が、非テストモードにおいて、メモリアレーデータ読取りに応答して切り換わることを防ぐために、前記非テストモードにおいて、固定されたインプットを、テストモードにおいてデータ比較を実行する前記比較器回路に方向づけること、をさらに備える請求項１に記載の方法。
【請求項１０】
各々がＮ個のアドレス可能な副単位を備えた複数の記憶場所を備えるメモリアレーと、Ｎ個の対応するデータレーンを有するデータバスと、の間に置かれたインターフェースの読取データステアリングロジックをテストする方法であって、各記憶場所に関して、
すべてのＮ個のデータバスレーンを使用して、テスト対象の副単位以外のＮ―１個の副単位用の第１のデータパターンと、テスト対象の副単位用の第２のデータパターンと、を備えるテストデータパターンを書き込むことと、
前記Ｎ個のバスレーンのうちの対応しない１個のバスレーン上で、前記読取データステアリングロジックを介して、Ｎ−１個の副単位を連続して読み取ることと、
前記アレーから読み取られた前記副単位データを、その副単位に書き込まれた前記それぞれの第１または第２のデータパターンと比較することと、
を備える方法。
【請求項１１】
各記憶場所に関して、前記テストをＮ−１回繰り返すことと、その度ごとに、前記第２のデータパターンを異なる副単位に書き込むことと、をさらに備える請求項１０に記載の方法。
【請求項１２】
前記メモリアレー内の各記憶場所に関して前記テストを繰り返すこと、をさらに備える請求項１１に記載の方法。
【請求項１３】
前記比較器回路が、非テストモードにおいて、メモリアレーデータ読取りに応答して切り換わることを防ぐために、前記非テストモードにおいて、固定されたインプットを、テストモードにおいてデータ比較を実行する前記比較器回路に方向づけること、をさらに備える請求項１０に記載の方法。
【請求項１４】
各々がＮ個のアドレス可能な副単位を備えた複数の記憶場所を備えるメモリアレーと；
Ｎ個のデータレーンを有するデータバスと；
前記データバスと前記メモリアレーとの間に置かれたインターフェースと、なお前記データインターフェースは書込データステアリングロジックを含む；
各々が、前記Ｎ個のデータバスレーンのうちの１個に接続された読取データインプトと、比較データインプットと、を有し、前記読取データインプットと前記比較データインプットとが一致するかどうかの表示を出力する、Ｎ個の比較器と；
前記メモリアレーを制御し、前記Ｎ個のデータバスレーンの前記各々に書込データを提供し、前記Ｎ個の比較器の各々の前記比較データインプットに比較データを提供し、前記Ｎ個の比較器の一致アウトプットを受信する、組込み自己テスト（ＢＩＳＴ）コントローラと；
を備え、
前記ＢＩＳＴコントローラは、
メモリアレー記憶場所の少なくともＮ−１個の副単位に、第１のデータパターンを書き込み、
前記記憶場所の前記Ｎ個の副単位のうちの対応しない１個に、前記書込データステアリングロジックを介して、Ｎ個のバスレーンのうちの１個から前記第１のデータパターンとは異なる第２のデータパターンを書き込み、
すべてのＮ個のバスレーンを使用して、前記記憶場所のすべてのＮ個の副単位を読み取り、
各比較器に前記それぞれの第１または第２のデータパターンを提供し、
前記書込データステアリングロジックの動作を検証するために前記比較器の一致アウトプットを検査する、
ように動作する、
プロセッサ。
【請求項１５】
各々がＮ個のアドレス可能な副単位を備えた複数の記憶場所を備えるメモリアレーと；
Ｎ個の対応するデータレーンを有するデータバスと；
前記メモリアレーと前記データバスとの間に置かれたインターフェースと、なお前記インターフェースは読取データステアリングロジックを含む；
各々が、前記Ｎ個のデータバスレーンのうちの１個に接続された読取データインプトと、比較データインプットと、を有し、前記読取データインプットと前記比較データインプットとが一致するかどうかの表示を出力する、Ｎ個の比較器と；
前記メモリアレーを制御し、前記Ｎ個のデータバスレーンの前記各々に書込データを提供し、前記Ｎ個の比較器の各々の前記比較データインプットに比較データを提供し、前記Ｎ個の比較器の一致アウトプットを受信する、組込み自己テスト（ＢＩＳＴ）コントローラと；
を備え、
前記ＢＩＳＴコントローラは、
すべてのＮ個のデータバスレーンを使用して、前記メモリアレー内の記憶場所に、テスト対象の副単位以外のＮ−１個の副単位用の第１のデータパターンと、テスト対象の副単位用の第２のデータパターンと、を備えるテストデータパターンを書き込み、
前記Ｎ個のバスレーンのうちの対応しない１個のバスレーン上で、前記読取データステアリングロジックを介して、前記記憶場所の各Ｎ−１個の副単位を連続して読み取り、
読取データが方向づけられる前記バスレーンに対応する前記比較器に、前記それぞれの第１または第２のデータパターンを提供し、
前記読取データステアリングロジックの動作を検証するためにその比較器の一致アウトプットを検査する
ように動作する、
プロセッサ。
【請求項１６】
非テストモードにおいて、各比較器の前記データインプットに静的データパターンを提供するように動作する、前記メモリアレーと前記データバスの間に置かれたロジック、をさらに備える請求項１５に記載のプロセッサ。
【請求項１７】
前記ロジックは、静的データパターンに関係するインプットを有している、前記読取データステアリングロジック内の選択器、を備える、請求項１６に記載のプロセッサ。
【請求項１８】
前記ロジックは、読取データビットとテストモード信号との間でアンド機能を実行する、請求項１６に記載のプロセッサ。
【発明の詳細な説明】
【分野】
【０００１】
本開示は、一般に、プロセッサの分野に関し、特に、メモリアレーインターフェース(memory array interface)内のデータステアリングロジック(data steering logic）をテストする方法に関する。
【背景】
【０００２】
マイクロプロセッサは、様々なアプリケーション内で演算動作を実行する。プロセッサは、サーバまたはデスクトップコンピュータなど、固定コンピューティングシステム内の中央処理装置または主処理装置として機能することが可能である。そのようなデスクトッププロセッサには、通常、高い実行速度が望まれる。加えて、プロセッサは、ラップトップおよび携帯情報端末（ＰＤＡ）などの移動体コンピュータ内に、また、移動体電話、全地球測位システム（ＧＰＳ）受信機、携帯電子メールクライアントなどの組み込みアプリケーション内に、ますます導入されている。そのような移動体アプリケーションでは、高い実行速度に加えて、低い電力消費量と小型サイズとが一般に望ましいと考えられる。
【０００３】
一般的に、コンピュータプログラムは、あたかもコンピュータプログラムを実行するコンピュータが非常に大きい（理想的には、無制限の）量の高速メモリを有しているかのごとく書き込まれる。一般的な現代のプロセッサは、各々が異なる速度特性とコスト特性とを有するメモリタイプの階層を用いて、その理想的な条件をシミュレートする。階層内のメモリタイプは、最高で、非常に高速かつ非常に高価なものから、漸次的により低速であるが、より経済的なより低いレベルの記憶タイプまで様々である。一般的なプロセッサメモリ階層は、最高レベルで、プロセッサ内に、１つまたは複数のオンチップキャッシュ（ＳＲＡＭ）、場合によっては、オフチップキャッシュ（ＳＲＡＭ）によって支援されたレジスタ（ゲート）、主メモリ（ＤＲＡＭ）、ディスク記憶装置（電気機械アクセスを有する磁気媒体）、および最低レベルで、テープまたはＣＤ（磁気媒体または光媒体）を備えることが可能である。一般的な携帯電子装置は、もしあるとしても、限定されたディスク記憶装置を有し、したがって、多くの場合、サイズが限定される主メモリはメモリ階層内の最低レベルである。
【０００４】
高速の、オンチップレジスタは、トップレベルのプロセッサメモリ階層を備える。離散的なレジスタおよび／またはラッチは、命令実行パイプライン内で記憶要素として使用される。一般的なＲＩＳＣ命令セットのアーキテクチャは、多種多様のデータ、例えば、命令ｏｐコード、アドレスまたはアドレスオフセット、算術演算および論理演算のためのオペランドおよび算術演算および論理演算の中間結果および最終結果など、を記憶するために、プロセッサによる使用のための汎用レジスタ（ＧＰＲ）のセットを含む。
【０００５】
一部のプロセッサでは、論理ＧＰＲｓは物理的な記憶要素に直接的に対応する。他のプロセッサでは、名前変更する、または各論理ＧＰＲ識別子を記憶場所の大きなセットのうちの１つに動的に割り当てるレジスタ、または物理的レジスタが用いられる。いずれの場合も、論理ＧＰＲ識別子によってアクセスされる記憶要素は、メモリアレー内で、離散的なレジスタ(discrete registers)としてまたは記憶場所(storage locations)（あるいは独立してアドレス可能な記憶場所の副単位(subunits)）として実施され(implemented)得る。
【０００６】
テストはＩＣ製造の需要な部分である。メモリアレーをテストすることは特に問題を含む。ランダム論理をテストするために一般的に使用される自動テストパターン生成(Automatic Test Pattern Generation)（ＡＴＰＧ）方法は、励振パターン(excitation pattern)を１セットのスキャンチェーンのレジスタまたはラッチ(scan-chained registers or latches)の中へとスキャンすることと、ランダム論理を実行するためにそのパターンを応用することと、結果を別のセットのスキャンチェーンのレジスタまたはラッチの中に捕捉することと、期待される値との比較のために捕捉された結果をスキャンアウトすることと、を備える。後続の捕捉および比較に対して、データがメモリを通って流れず、むしろ記憶されて取り出されるので、メモリアレーは、ＡＴＰＧ技術を使用して効率的にテストされ得ない。
【０００７】
一部のプロセッサは機能テストによってメモリアレーをテストする、なおここでは、コード(code)は、テストパターンをアレーに(例えば、論理ＧＰＲｓに)書き込み、次いで、値を読み取り、期待される値と比較するために、プロセッサパイプライン内で実行される。プロセッサは初期化されなければならず、テストコードはテストを実行する前にキャッシュ内にロードされなければならないため、機能テストは、時間がかかり、効率が悪い。加えて、パイプライン内の、制御および考察ポイントは、テストされているメモリ場所から遠く離れ、発覚した欠陥を介在回路から分離することは困難な場合がある。
【０００８】
したがって、埋め込みメモリアレーを有する一部のプロセッサは、テストモードの間にメモリアレーを実行する組込み自己テスト(Built-in Self-Test)（ＢＩＳＴ）回路を含む。従来のＢＩＳＴコントローラは、データパターンをメモリアレーに書き込み、データパターンを読み取り、読み取られたデータを期待されるデータと比較する。機能モードの間、ＢＩＳＴコントローラは非アクティブであり、メモリアレーはプロセッサ制御回路によって制御される。一部のＢＩＳＴシステムにおいては、メモリアレーを取り囲むＩ／Ｏ回路、例えば、アレーに書き込まれそしてアレーから読み取られたデータをアーキテクチャ的に定義されたバスアライメント位置(bus alignment positions)に位置合わせするデータステアリングロジック(data steering logic)などは、テストされない。
【発明の開示】
【０００９】
【概要】
【００１０】
１つまたは複数の実施形態においては、メモリアレーのＩ／Ｏ内の読取および書込データステアリングロジック(read and write data steering logic)は、データバスレーン(data bus lane)を、各独立してアドレス可能なメモリアレー記憶場所(memory array storage location)の副単位(subunit)に提供することによって、テストされる。各バスレーンは比較器のデータインプット(data input)に接続される。ＢＩＳＴコントローラは、書込ステアリングロジックをテストするために、書込ステアリングロジックを介してテストパターンをメモリに書き込み、並列に(in parallel)テストパターンを読み取る。ＢＩＳＴコントローラは、読取ステアリングロジックをテストするために、並列にテストパターンをメモリに書き込み、読取ステアリングロジックを介して、テストパターンを読み取る。両方のケースにおいて、各バスレーンに専用の個別の比較器は、副単位データがデータバスレーンとメモリ記憶場所副単位との間で適切に偏移したことを、検証する(verifies)。比較器は、ロジックゲートの切り換え(switching)を防ぐために、通常の動作の間、効果的にディスエーブルにされる(disabled)。
【００１１】
一実施形態は、Ｎ個のデータレーンを有するデータバスと、各々がＮ個の対応するアドレス可能な副単位を備えた複数の記憶場所を備えるメモリアレーと、の間に置かれたインターフェースの書込データステアリングロジック、をテストする方法に関する。各記憶場所に関して、第１のデータパターンが、少なくともＮ−１個の副単位に書き込まれる。第１のデータパターンと異なる第２のデータパターンが、Ｎ個のバスレーンのうちの１個から、書込データステアリングロジックを介して、Ｎ個の副単位のうちの対応しない１個(non-corresponding one)に書き込まれる。すべてのＮ個の副単位が、すべてのＮ個のバスレーンを使用して、読み取られる。各副単位に関して、アレーから読み取られたデータは、その副単位に書き込まれたそれぞれの第１または第２のデータパターンと比較される。
【００１２】
別の実施形態は、各々がＮ個のアドレス可能な副単位を備えた複数の記憶場所を備えるメモリアレーと、Ｎ個の対応するデータレーンを有するデータバスと、の間に置かれたインターフェースの読取データステアリングロジック、をテストする方法に関する。各記憶場所に関して、テストデータパターンは、すべてのＮ個のデータバスレーンを使用して書き込まれる。テストパターンは、テスト対象の(under test)副単位以外のＮ−１個の副単位用の第１のデータパターンと、テスト対象の副単位用の第２のデータパターンと、を備える。Ｎ−１個の副単位は、読取ステアリングロジックを介して、Ｎ個のバスレーンのうちの対応しない１個について連続して読み取られる。アレーから読み取られた副単位データは、その副単位に書き込まれたそれぞれの第１または第２のデータパターンと比較される。
【００１３】
さらに別の実施形態は、プロセッサに関する。プロセッサは、各々がＮ個のアドレス可能な副単位を備える複数の記憶場所を備えるメモリアレーと、Ｎ個のデータレーンを有するデータバスと、データバスとメモリアレーとの間に置かれたインターフェースと、を含み、インターフェースは書込データステアリングロジック(write data steering logic)を含む。プロセッサはまた、Ｎ個の比較器を含み、比較器の各々は、読取データインプットと比較データインプットとを有し、各比較器の読取データインプットはＮ個のデータバスレーンの１個に接続され、比較器の各々は、読取データインプットと比較データインプットとが一致する(match)のかどうかの表示(indicator)を出力する。プロセッサは、さらに、メモリアレーを制御し、書込データをＮ個のデータバスレーンの各々に提供し、比較データをＮ個の比較器の各々の比較データインプットに提供し、そして、比較器のＮ個の一致アウトプット(N comparator match outputs)を受信する、ＢＩＳＴコントローラを含む。ＢＩＳＴコントローラは、第１のデータパターンをメモリアレー記憶場所の少なくともＮ−１個の副単位に書き込み；Ｎ個のバスレーンのうちの１個から第１のデータパターンと異なる第２のデータパターンを、書込データステアリングロジックを介して、記憶場所のＮ個の副単位のうちの対応しない１個に書き込み；すべてのＮ個のバスレーンを使用して、記憶場所のすべてのＮ個の副単位を読み取り；それぞれの第１または第２のデータパターンを各比較器に提供し；書込データステアリングロジックの動作(write data steering logic operation)を検証するために比較器の一致アウトプットを検査する(inspect)；ように動作する。
【００１４】
さらに別の実施形態は、プロセッサに関する。プロセッサは、各々がＮ個のアドレス可能な副単位を備えた複数の記憶場所を備えるメモリアレーと、Ｎ個の対応するデータレーンを有するデータバスと、メモリアレーとデータバスの間に置かれたインターフェースと、を含み、インターフェースは読取データステアリングロジック(read data steering logic)を含む。プロセッサはまた、Ｎ個の比較器を含み、比較器の各々は、読取データインプットと比較データインプットとを有し、各比較器の読取データインプットはＮ個のデータバスレーンの１個に接続され、比較器の各々は、読取データインプットと比較データインプットとが一致するのかどうかの表示を出力する。プロセッサはさらに、メモリアレーを制御し、Ｎ個のデータバスレーンの各々に書込データを提供し、Ｎ個の比較器の各々の比較データインプットに比較データを提供し、Ｎ個の比較器の一致アウトプットを受信する、ＢＩＳＴコントローラを含む。ＢＩＳＴコントローラは、すべてのＮ個のデータバスレーンを使用して、テスト対象の副単位以外のＮ−１個の副単位用の第１のデータパターンと、テスト対象の副単位用の第２のデータパターンと、を備えるテストデータパターンをメモリアレー内の記憶場所に書き込み；Ｎ個のバスレーンのうちの対応しない１個のバスレーン上で(on a non-corresponding one of the N bus lanes)、読取データステアリングロジックを介して、記憶場所の各Ｎ−１個の副単位を連続して読み取り；読取データが方向づけられる(directed)バスレーンに対応する比較器にそれぞれの第１または第２のデータパターンを提供し；読取データステアリングロジックの動作(read data steering logic operation)を検証するためにその比較器の一致アウトプットを検査する；ように動作する。
【詳細な説明】
【００１５】
図１は、プロセッサ１０の機能的なブロック図を示す。プロセッサ１０は、制御ロジック１４に従って、命令実行パイプライン１２内で命令を実行する。パイプライン１２は、１２ａおよび１２ｂなど、複数の並列パイプライン(multiple parallel pipelines)を有するスーパスケーラ設計(superscalar design)であり得る。パイプライン１２ａ、１２ｂは、パイプライン段の中に組織された様々なレジスタまたはラッチ１６と、１つまたは複数の演算論理ユニット(Arithmetic Logic Units)（ＡＬＵ）１８と、を含む。レジスタすなわちメモリアレー２０は、論理汎用レジスタ(logical General Purpose Registers)（ＧＰＲｓ）にマップされる複数の記憶場所を提供する。
【００１６】
パイプライン１２ａ、１２ｂは、命令側の変換索引バッファ(Instruction-side Translation Lookaside Buffer)（ＩＴＬＢ）２４によって管理されるメモリアドレス指定および許可を用いて、命令キャッシュ（Ｉ−キャッシュ）２２から命令を受信する。データは、主変換索引バッファ（ＴＬＢ）２８によって管理されるメモリアドレス指定および許可を用いて、データキャッシュ（Ｄ−キャッシュ）２６からアクセスされる。様々な実施形態では、ＩＴＬＢはＴＬＢの一部の複写(copy)を備え得る。あるいは、ＩＴＬＢとＴＬＢとは統合され得る。同様に、プロセッサ１０の様々な実施形態では、Ｉ−キャッシュ２２およびＤ−キャッシュ２６は統合または統一され得る。Ｉ−キャッシュ２２および／またはＤ−キャッシュ２６内の不足は、メモリインターフェース３０の制御下にある主（オフチップ）メモリ３２へのアクセスを引き起こす。プロセッサ１０は、様々な周辺装置３６へのアクセスを制御する入出力（Ｉ／Ｏ）インターフェース３４を含み得る。当業者は、プロセッサ１０の多数の改変形態が可能であることを理解されよう。例えば、プロセッサ１０は、ＩキャッシュおよびＤキャッシュのどちらかまたは両方のために第２レベル（Ｌ２）キャッシュを含み得る。加えて、プロセッサ１０内に示された１つまたは複数の機能ブロックは、特定の実施形態から省略されることが可能である。
【００１７】
図２は、例えば、論理ＧＰＲｓのセットおよび組込み自己テスト（ＢＩＳＴ）コントローラ４６を実施することが可能なメモリアレー２０を示す。メモリアレー２０は、１６単位の１２８ビットとして組織されるが、ここで開示されるテスト方法および装置は、独立してアドレス可能な副単位を有するメモリの任意の構成に適用可能である。メモリアレー２０内の各１２８ビット位置は、ワード（３２ビット）読取／書込粒度(granularity)を有し、アレー２０はワード境界で論理的かつ物理的にセグメント化(segmented)される。
【００１８】
メモリアレー２０は、データは正しく位置合わせされる(right-aligned)であるというアーキテクチャ上の要件に適合するために、書込データステアリングロジック４０と、読取データステアリングロジック４２とを含む。すなわち、アーキテクチャは、メモリアレー２０に書き込まれ、メモリアレー２０から読み取られることが可能な３つのデータサイズを定義する。すなわち、ワード（３２ビット）、二重ワード（６４ビット）、および四重ワード（１２８ビット）である。四重ワードは、全部のデータバス、すなわちワードレーンＷ０〜Ｗ３（ビットＤ０〜Ｄ１２７）を占有する。二重ワードは、常にデータバス上で正しく位置合わせされる。すなわち、二重ワードはワードレーンＷ０およびＷ１（ビットＤ０〜Ｄ６３）を占有する。しかし、二重ワードは、位置Ｗ０〜Ｗ１（ビットＤ０〜Ｄ６３）内または位置Ｗ２〜Ｗ３（ビットＤ６４〜Ｄ１２７）内で、メモリアレー２０内の記憶場所内に記憶されることが可能である。したがって、書込ステアリングロジック４０内の多重化装置(multiplexers)は、バスレーンＷ１（ビットＤ３２〜Ｄ６３）上のデータを、メモリアレー２０内の位置Ｗ１（ビットＤ３２〜Ｄ６３）または位置Ｗ３（ビットＤ９６〜Ｄ１２７）に方向づける(direct)。同様に、読取ステアリングロジック４２内の多重化装置は、データをメモリアレー位置Ｗ１およびＷ３からバスレーンＷ１に選択的に方向づける。加えて、ワードは常にバス（レーンＷ０）上で正しく位置合わせされるが、メモリアレー２０内の記憶場所内のＷ０、Ｗ１、Ｗ２、またはＷ３の位置のいずれかを占有することが可能である。書込ステアリングロジック４０内の多重化装置は、バスレーンＷ０をメモリアレー２０のすべてのワード位置に方向づけ、読取ステアリングロジック４２内の多重化装置は、データをメモリアレー２０内の任意のワード位置からバスレーンＷ０に方向づける。書込ステアリングロジック４０内および読取ステアリングロジック４２内の多重化装置は、通常の動作の間、プロセッサの制御下にあり、テストモードにおいて、ＢＩＳＴコントローラ４６によって制御される。
【００１９】
テストモードにおいて、ＢＩＳＴコントローラ４６は加えて、メモリアレー２０に書き込むためにテストデータをデータバスに提供し、比較器４８に比較データを提供する。ＢＩＳＴコントローラ４６はまた、ここで説明されるように、メモリアレー２０の動作と書込ステアリングロジック４０内および読取ステアリングロジック４２内の選択器とを制御して、通常の動作モードの間、切り換えを抑圧するためにテストモード信号をゲート４９に出力する。比較器４８（バスレーンごとに１個）は、各々、データインプットでメモリアレー２０から読み取られたデータのワードを受信し、比較インプットでＢＩＳＴコントローラ４６からのデータパターンを比較する。各比較器４８のアウトプットは、データインプットで読取データがＢＩＳＴコントローラ４６によって提供された比較パターンと一致するかどうかを表示する。各比較器４８のこの一致アウトップットは、ＢＩＳＴコントローラ４６に経路指定される。
【００２０】
メモリアレー２０、書込ステアリングロジック４０、および読取ステアリングロジック４２を完全にテストするために、比較器の数はメモリアレー２０内の記憶場所ごとの読取／書込アドレス可能性の粒度と一致しなければならない。例えば、メモリアレー２０がバイト単位でアドレス可能（byte-addressable）である場合、アレーと関連するバイトステアリングロジックとをテストするために、１６個の比較器４８が要求されることになる（８×１６＝１２８）。一般に、各メモリアレー２０の記憶場所は、Ｎ個の副単位、または独立してアドレス可能な位置を有し、データバスはＮ個の対応するデータレーンを備える。書込データステアリングロジック４０および読取データステアリングロジック４２を完全にテストすることは、Ｎ個の比較器を要求する。図２では、Ｎ＝４であり、各副単位はワードである。
【００２１】
初期のテストで、ＢＩＳＴコントローラ４６は、１２８ビットのデータバス全体（すなわち、すべての４個のバスレーン）を使用して、メモリアレー２０にテストデータパターンを書き込み、メモリアレー２０からデータを読み取ることによって、メモリアレー２０を検証することが可能である。特に、標準メモリテスト手順に従って、ＢＩＳＴコントローラ４６は、最初に、メモリアレー２０内のすべての記憶場所に背景パターンを書き込む。ＢＩＳＴコントローラ４６は、次いで、すべての４個のデータバスレーンを使用して、メモリアレー２０の記憶場所にテストパターンを書き込む。データは、次いで、この場合も、すべての４個のデータバスレーンを使用して、各メモリアレー２０の記憶場所から読み取られ、各比較器４８のデータインプットに直接的に経路指定される（すなわち、書込データステアリングロジック４０も読取データステアリングロジック４２も、任意のデータを１つのワードから別のワードに偏移しない）。
【００２２】
書込テストパターンに対応する比較データは、ＢＩＳＴコントローラ４６によって各比較器４８の比較インプットに供給される。各比較器４８は、そのインプットでデータを比較して、データパターンがＢＩＳＴコントローラ４６と一致するかどうかの表示を提供する。不一致は、メモリアレー２０の欠陥を示す。メモリアレー２０の動作を検証するために使用されるデータパターンは、１のパターン(one's)と０のパターン(zero's)とが交互に並ぶ「チェッカー盤(checkerboard)」のような静的パターンと、各記憶場所を反復的にテストすることによる「マーチング１のパターン(marching one's)」および／または「マーチング０のパターン(marching zero's)」の動的パターンと、または当技術分野でよく知られているその他のメモリテストのパターンおよび手順と、を備えてもよい。
【００２３】
１つまたは複数の実施形態によれば、ＢＩＳＴコントローラ４６は、さらに、書込データステアリングロジック４０および／または読取データステアリングロジック４２の機能性をテストすることが可能である。書込データステアリングロジック４０をテストする方法は、図３において流れ図形式で示される。最初に、背景データパターン(background data pattern)が、メモリアレー２０内のすべての記憶場所にオプションで書き込まれる（ブロック５０）。ＢＩＳＴコントローラ４６は、次いで、単一の記憶場所内の少なくともＮ−１個の副単位に第１のデータパターンを書き込む（ブロック５２）。テスト時間を最低限に抑えるため、ＢＩＳＴコントローラ４６は、データバスのすべてのＮ個のレーンを利用して、記憶場所内のすべての副単位に第１のデータパターンを書き込むことができる。第１のデータパターンは、例えば、すべて１のパターン(all one's)またはすべて０のパターン(all zero's)を備えることができる。ＢＩＳＴコントローラ４６は、次いで、書込データステアリングロジックを介して、Ｎ個のバスレーンの１個からメモリアレー２０の記憶場所のＮ個の副単位のうちの対応しない１個に、第１のデータパターンと異なる第２のデータパターンを書き込む（ブロック５４）。例えば、ＢＩＳＴコントローラ４６は、第２のデータパターンをバスレーンＷ０上に置き、書込データステアリングロジックを介して、メモリアレー２０の記憶場所内の副単位位置Ｗ１、Ｗ２、またはＷ３に第２のパターンを書き込むことができる。第２のデータパターンは、例えば、０１０１または１０１０などの「チッカー盤」パターンを備えることができる。
【００２４】
ＢＩＳＴコントローラ４６は、次いで、データバスのすべてのＮ個のレーンを使用して、記憶場所内のすべてのＮ個の副単位を並列に読み取る（ブロック５６）。図２に示されるように、各データバスレーンは、対応する比較器４８のデータインプットに方向づけられる。ＢＩＳＴコントローラ４６は、各比較器４８のインプットを比較するために比較データパターンを提供する。比較データパターンは、Ｎ−１個の比較器４８用の第１のデータパターンと、第２のデータパターンが書込データステアリングロジック４０によって方向づけされた記憶場所の副単位に対応する比較器４８用の第２のデータパターンと、を備える。比較器４８は、メモリアレー２０から読み取られたデータを、ＢＩＳＴコントローラ４６によって提供された比較インプットと比較して、データパターンが一致するかどうかを表示するアウトプットをＢＩＳＴコントローラ４６に提供する。ＢＩＳＴコントローラ４６は、一致アウトップットを検査して、いかなる不一致も誤りとしてフラッグで警告する(flags any misscompare's as errors)（ブロック５８）。テストは記憶場所内のすべての副単位に関して繰り返され（ブロック６０、６２）、メモリアレー２０内のすべての記憶場所に関して繰り返されることができる（ブロック６４、６６、６８）。
【００２５】
ＢＩＳＴコントローラは、第２のデータパターンをＷ０およびＷ１のバスレーンに提供して、連続するテストの際に第２のデータパターンをメモリアレー２０の記憶場所内のＷ０〜Ｗ１またはＷ２〜Ｗ３の二重ワード位置のうちの１つに方向づけ、記憶場所全体を読み取り、二重ワードに関して書込データステアリングロジック４０の動作を検証するために、対応する第１または第２のデータパターンを比較器４８に提供することによって、二重ワードステアリングを直接的にテストすることができる。一般に、ＢＩＳＴコントローラは、Ｍ個のサイズのデータステアリング機能性に関して書き込みステアリングロジック４０をテストするために、Ｎ個の副単位位置のうちの対応しないＭ個に、書込ステアリングロジック４０を介して、Ｎ個のバスレーンのうちのＭ個から、Ｎ個の副単位のうちのＭ個に、第２のデータパターンを書き込むことができる、なお、Ｍは、Ｎの整数因数(integral factor)である。図２に示された実施形態では、二重ワードの場合、Ｍ＝２である。
【００２６】
あるいは、ＢＩＳＴコントローラ４６は、第２のデータパターンを１個のデータバスレーンに提供し、第２のデータパターンをメモリアレー２０の記憶場所内の対応しない副単位に方向づけ、記憶場所のすべての副単位を並列に読み取り、第２のデータパターンの配置を検証することによって、書込データステアリングロジック４０内の任意の選択器の各レッグ(leg)を、選択的にテストすることができる。例えば、図２に関連して、バスレーンＷ１からメモリ記憶場所Ｗ３に導く(steers)二重ワードステアリングロジック(double-word steering logic)は、Ｗ１バスレーン上に第２のデータパターンを置いて、適切な制御信号を書込データステアリングロジック４０の選択器に提供すると同時に第２のパターンを書き込み、全部の記憶場所を読み取り、Ｗ３バスレーンに関連する比較器４８に、比較インプットとして第２のデータパターンを提供することによってテストされ得る。この例では、Ｗ０バスレーンを記憶場所のＷ２の副単位に方向づける、書込データステアリング装置４０の経路は、これまでのテストでテストされた。したがって、一般に、ＢＩＳＴコントローラ４６は、書込データステアリングロジック４０の選択器の適切な制御を用いて、バスレーンから記憶場所内の対応しない副単位位置に第２のパターンデータの単一の副単位を方向づけ、全部の記憶場所を読み込む時にそのデータを検証することによって書込データステアリングロジック４０を完全にテストすることが可能である。
【００２７】
読取データステアリングロジック４２をテストする方法は、図４において流れ図形式で示される。最初に、背景データパターンが、メモリアレー２０内のすべての記憶場所内にオプションで書き込まれる（ブロック７０）。ＢＩＳＴコントローラ４６は、すべてのＮ個のバスレーンを使用して、メモリアレー２０内の記憶場所にテストデータパターンを書き込む（ブロック７２）。テストパターンは、テスト対象の副単位以外のＮ−１個の副単位の位置内の第１のデータパターンと、テスト対象の副単位の位置内の、第１のデータパターン以外の第２のデータパターンと、を備える。データは、次いで、記憶場所内のＮ−１個の副単位から、読取ステアリングロジックを介して、対応しないバスレーン上に（ブロック７４）、そして関連する比較器４８のデータインプットに、連続して読み取られる。ＢＩＳＴコントローラ４６は、比較器４８の比較インプットに第１および第２のデータパターンを提供し、比較器４８のアウトプットを検査することによって、一致を検証する（ブロック７６）。ＢＩＳＴコントローラ４６は、第２のデータパターンをメモリアレー２０の記憶場所内の異なる副単位位置内に置いて、テストをＮ−１回繰り返す（ブロック７８、８０）。テストは、メモリアレー２０内の各記憶場所に関して繰り返されることができる（ブロック８２、８４、８６）。
【００２８】
読取データステアリングロジック４２は、第２のデータパターンを、記憶場所のＷ０〜Ｗ１の副単位位置とＷ２〜Ｗ３の副単位位置とに交互に書き込み、読取データステアリングロジック４２を介して、Ｗ０〜Ｗ１のデータバスレーン上の二重ワードを読み取り、Ｗ０〜Ｗ１のデータバスレーンに対応する２個の比較器４８内で読み取られたデータを比較することによって、二重ワードに関してテストされ得る。あるいは、二重ワードの読取データステアリングロジック４２は、Ｗ３の副単位位置の中のみの第２のデータパターンと、その他の場所の第１のデータパターンと、を備えるテストデータパターンを書き込むことによって、テストされることができる。Ｗ３の副単位は、アレーから読み取られ、読取データステアリングロジック４２の選択器制御信号を制御することによって、Ｗ１のデータバスレーンに方向づけられることができる。第２のデータパターンは、比較インプットとして、バスレーンＷ１に関連する比較器４８に提供され、第２のデータパターンのステアリングが検証される。一般に、読取データステアリングロジック４２内のすべての経路は、記憶場所の単一の副単位に第２のデータパターンを書き込み、第２のデータパターンを対応しないデータバスレーンに方向づけるために読取データステアリングロジック４２の選択器を制御することによって、テストされることができる。
【００２９】
図２を参照すると、比較器回路４８は静的ロジックゲート(static logic gates)を備える。すなわち、比較器４８は、比較器４８のデータインプットにおいて提供された任意のデータパターンをそれら比較器４８の比較インプットにあるデータと比較し、データパターンが一致するかどうかを表示する信号を生成する。通常のプロセッサ動作の間（すなわち、テストモードでない間）、メモリアレー２０（および読取データステアリングロジック４２）によって出力されたデータは常に変化することになる。比較データインプットはメモリアレー２０から読み取られているデータと一致され得ないので、比較器４８内のゲートは常に切り替わり(switching)、電力を消費し、熱を生成し、電力レールおよび接地レール上の電気雑音をもたらす。
【００３０】
したがって、比較器回路４８は、静的データパターンが比較器４８のデータインプットに提供されることを確実にすることによって、通常の動作の間、効果的にディスエーブルにされる。一実施形態では、対応するデータバスレーンからのデータは、ＢＩＳＴコントローラ４６からのテストモード信号を用いて、例えばアンドゲート(AND gate)４９によって、ゲート制御される(gated）。アンドゲート４９は、テストモード信号とデータレーン（すなわち、図２で示される３２ビット）の各ビットとのＡＮＤをとる。
【００３１】
システムリセット時に（または、プロセッサが通常の動作モードにあるという任意の他の表示に応答して）、ＢＩＳＴコントローラ４０はテストモード信号をデアサートし(deasserts)、アンドゲート４９は比較器４８に０の静的データパターンを提供する。ＢＩＳＴコントローラ４０は、比較器４８の比較インプットに、対応する（例えば、０の）静的データパターンをオプションで提供することが可能である。比較器４８のアウトプットが、データの一致(data match)を表示しようと、あるいは不一致(miscompare)を表示しようと、インプットは静的であるため、比較器４８内のゲートは初期のワンサイクル比較(one-cycle comparison)を超えて切り換わらない。このようにして、比較器４８内のランダムゲートの切り換えに関連する電力消費量とスイッチングノイズ(switching noise)とは、通常の動作モードにおいては抑えられる。
【００３２】
本開示はここでメモリアレーを参照して説明されているが、本開示の開示は、レジスタファイル、メモリアレーなどのような、アドレス可能な幅単位と書込および／または読取データステアリングロジックとを有する、任意のデータ記憶場所または記憶場所のアレーに適用され得る。一般に、本開示はここで特定の特徴、その態様および実施形態に関して説明されているが、本開示の広い範囲内で多くの変形、変更、および他の実施形態が可能であることは明らかであろう、したがって、すべての変形、変更および実施形態は、本開示の範囲内にあると見なされるべきである。ここでの実施形態は、したがって、あらゆる面で、限定的ではなく例示的であると解釈されるべきであり、特許請求の範囲の意味および均等の範囲の中で生じるすべての変更はその中に包括されるべきであるように意図される。
【図面の簡単な説明】
【００３３】
【図１】プロセッサの機能ブロック図。
【図２】関連するデータステアリングＩ／Ｏ、およびＢＩＳＴ回路を有するメモリアレーの機能ブロック図。
【図３】書込データステアリングロジックをテストする方法の流れ図。
【図４】読取データステアリングロジックをテストする方法の流れ図。
【図１】
2009529202.tif 000003
【図２】
2009529202.tif 000004
【図３】
2009529202.tif 000005
【図４】
2009529202.tif 000006
【国際調査報告】
2009529202.tif 000007
2009529202.tif 000008