(57)【要約】【課題】分散された命令解読及び一般化された命令プロトコルを有するメモリ内蔵自己診断（ＢＩＳＴ）アーキテクチャ。【解決手段】分散されたアルゴリズム解読を有する内蔵自己診断（ＢＩＳＴ）アーキテクチャが説明される。本アーキテクチャは、概念の３つの階層：中央集中化されたＢＩＳＴコントローラ、シーケンサの組、及びメモリ・インタフェースの組、を含む。ＢＩＳＴコントローラは、メモリ・モジュールの物理的特性又はタイミング要求条件に関係なく、メモリ・モジュールを試験するためのアルゴリズムを包括的に規定する命令の組を記憶する。シーケンサは、命令プロトコルに従って命令を解読し、メモリ動作の系列を発生する。メモリ・インタフェースは、例えば、命令により説明されたビット・パターンを実現するために、メモリ・モジュールの行列配置に基づいてアドレス信号及びデータ信号を変換することにより、メモリ・モジュールの物理的特性に従ってメモリ・モジュールにメモリ動作を適用する。命令プロトコルは、強力なアルゴリズムが多様な特性を有するメモリ・モジュールに適用されることができる非常に簡潔な方法で説明されることを可能にする。【選択図】      図１
2007524890.tif 000002
【特許請求の範囲】
【請求項１】
下記を具備するシステム：
複数のメモリ・モジュールを試験するためのアルゴリズムを記憶する中央集中化された内蔵自己診断（ＢＩＳＴ）コントローラ、ここにおいて、該ＢＩＳＴコントローラは命令プロトコルに準拠する一般化された命令の組として該アルゴリズムを記憶する；及び
命令プロトコルに基づいて命令を解読し且つ一般化された命令をメモリ・モジュールに適用する複数の分散されたシーケンサ。
【請求項２】
一般化された命令は、命令プロトコルに従って且つメモリ・モジュールのタイミング要求条件に関係なしにアルゴリズムを指定する、請求項１記載のシステム。
【請求項３】
一般化された命令は、メモリ・モジュールの物理的特性に関係なしにアルゴリズムを指定する、請求項１記載のシステム。
【請求項４】
一般化された命令の各々は、それぞれの命令を処理し且つ該命令をメモリ・モジュールに適用するために１つ以上のシーケンサを識別するシーケンサ識別子を含む、請求項１記載のシステム。
【請求項５】
シーケンサ識別子は、一般化された命令が分散されたシーケンサの全てにより解読され且つ適用されようとしていることを指示するための同報通報識別子を具備する、請求項４記載のシステム。
【請求項６】
シーケンサ識別子は、識別されたシーケンサのそれぞれのメモリ・モジュールに一般化された命令を解読させ且つ適用させるためにシーケンサの特定の１つを識別するユニキャスト識別子を具備する、請求項４記載のシステム。
【請求項７】
命令プロトコルは、規定された動作上の符号の組及び関連するパラメータの組から選択された動作上の符号を含むように一般化された命令の各々を規定する、請求項４記載のシステム。
【請求項８】
規定された動作上の符号の組は、当該期間の間に、シーケンサが通常の動作の間に使用したアドレス及びデータ回線からメモリ・モジュールを分離することにより試験するために該メモリ・モジュールを準備するＢＩＳＴモードを選択的に使用可能にし、そして使用禁止にするように該シーケンサを管理する動作上の符号を含む、請求項７記載のシステム。
【請求項９】
規定された動作符号の組は、パラメータにより指定されたアドレスの範囲に亘って１つ以上のメモリ動作の系列を適用するようにシーケンサを管理する動作上の符号を含む、請求項７記載のシステム。
【請求項１０】
パラメータは、行アドレスを０に維持しつつ最大の列ビット選択権を有するシーケンサのためのそれぞれのメモリ・モジュールの該メモリ・モジュールの全ての列に対してメモリ動作を適用するようにシーケンサを管理するための１つの行（ＳＲ）フィールドを含む、請求項９記載のシステム。
【請求項１１】
パラメータは、メモリ動作を適用するときに、メモリ・モジュールの各行及び列の行列に対するパラメータにより規定されたデータを反転させるようにシーケンサを管理するための反転ビット・フィールドを含む、請求項９記載のシステム。
【請求項１２】
パラメータは、メモリ・モジュールの各々に対する列アドレスを一定に保持し且つメモリ・モジュールの各々に対する行アドレスをリプリングすることにより列方向様式で該メモリ・モジュールにメモリ動作を適用するようにシーケンサを管理するためのリプリング行フィールドを含む、請求項９記載のシステム。
【請求項１３】
パラメータは、メモリ動作を適用するときに、メモリ・モジュールの隣接する行に対して該パラメータにより規定されたデータを反転させるようにシーケンサを管理するための反転行フィールドを含む、請求項９記載のシステム。
【請求項１４】
パラメータは、メモリ動作を適用するときに、メモリ・モジュールの隣接する列に対して該パラメータにより規定されたデータを反転させるようにシーケンサを管理するための反転列フィールドを含む、請求項９記載のシステム。
【請求項１５】
パラメータは、メモリ・モジュールのメモリ・アドレスの各々に複数のメモリ動作を適用するようにシーケンサを管理するための複数の動作上のフィールドを含む、請求項９記載のシステム。
【請求項１６】
パラメータは、読み出し動作の間にメモリ・モジュールに入力データ値を適用するようにシーケンサを管理するフィールド中のデフォルト・データを含む、請求項９記載のシステム。
【請求項１７】
規定された動作符号の組は、パラメータにより指定された特定のアドレスに規定されたメモリ動作を実行するようにシーケンサを管理する動作上の符号を含む、請求項７記載のシステム。
【請求項１８】
規定された動作上の符号の組は、メモリ・モジュールの特定の１つを試験するようにシーケンサを管理する動作上の符号を含む、請求項７記載のシステム。
【請求項１９】
パラメータは、故障解析モードとＢＩＳＴモードとの間を選択的に切り替えるようにシーケンサを管理するための故障解析フィールドを含む、請求項７記載のシステム。
【請求項２０】
故障解析モード内で動作しているとき、パラメータのメモリ識別フィールドは、故障解析のためにメモリ・モジュールの特定の１つから及び故障解析のために使用されようとしている選択されたメモリ・モジュールからの多重化されたデータ・バスの一部分を指示するバス・スライス・フィールドから、データを選択するようにシーケンサを管理する、請求項１９記載のシステム。
【請求項２１】
規定された動作上の符号の組は、当該シーケンサの内部に記憶されたメモリ試験アルゴリズムを適用するように分散されたシーケンサの少なくとも１つを管理する動作上の符号を含む、請求項７記載のシステム。
【請求項２２】
シーケンサとメモリ・モジュールとの間に接続された複数のメモリ・インタフェースを更に具備する、ここにおいて、該メモリ・インタフェースは該シーケンサの管理下で且つ該メモリ・モジュールの物理的特性に従って該メモリ・モジュールに命令を適用する、請求項１記載のシステム。
【請求項２３】
ＢＩＳＴコントローラは、メモリ・モジュールへの適用に並行してシーケンサに命令を発する、請求項１記載のシステム。
【請求項２４】
シーケンサは、メモリ・モジュールのタイミング要求条件に従ってそれぞれのメモリ・モジュールに命令を適用する、請求項１記載のシステム。
【請求項２５】
シーケンサの各々が：
命令プロトコルに従って命令を実施する複数の命令コントローラ；及び
命令プロトコルに基づいて動作上の符号及びパラメータの組を識別するように命令の各々を解析するための命令パーザ、ここにおいて、該命令パーザはＢＩＳＴコントローラから受け取られた該命令の動作上の符号に基づいて命令コントローラを選択的に呼び出す、
を具備する、請求項１記載のシステム
【請求項２６】
下記を具備する装置：
一般化された命令プロトコルに準拠し且つ異なるタイミング要求及び物理的特性を有する複数の分散されたメモリ・モジュールを試験するためのＢＩＳＴアルゴリズムを規定する命令を発するための中央集中化された（ＢＩＳＴ）制御手段；及び
命令を解読するため並びにメモリ・モジュールのタイミング要求及び物理的特性に従って該メモリ・モジュールに命令を適用するための分散された手段。
【請求項２７】
分散された手段は、メモリ・モジュールにＢＩＳＴアルゴリズムを適用するために該メモリ・モジュールの物理的特性に基づいて変換されたアドレス信号及びデータ信号を発生させるためのインタフェース手段を含む、請求項２６記載の装置。
【請求項２８】
下記を具備する方法：
複数のメモリ・モジュールを試験するために命令プロトコルに準拠する一般化された命令を発することにより中央集中化されたコントローラからアルゴリズムの適用を管理すること；及び
命令プロトコルに従ってメモリ動作の１つ以上の系列として命令を適用するためにシーケンサの分散された組を用いて該命令を解読すること。
【請求項２９】
一般化された命令は、メモリ・モジュールの物理的特性及びタイミング要求に関係なしにアルゴリズムを指定する、請求項２８記載の方法。
【請求項３０】
アルゴリズムの適用を管理することは、命令を処理するため且つ該命令をそれぞれのメモリ・モジュールに適用するために１つ以上のシーケンサを識別するシーケンサ識別子を含むように命令の各々を発することを具備する、請求項２８記載の方法。
【請求項３１】
シーケンサ識別子は、命令が解読されようとしており且つ全ての分散されたシーケンサにより適用されようとしていることを指示する同報通報識別子の１つ及び命令を解読するためにシーケンサの特定の１つを識別するユニキャスト識別子を具備する、請求項３０記載の方法。
【請求項３２】
アルゴリズムの適用を管理することは、規定された動作符号の組及び関連するパラメータの組から選択された動作上の符号を含むように命令の各々を発することを具備する、請求項２８記載の方法。
【請求項３３】
規定された動作上の符号の組は、当該期間の間にシーケンサが、通常の動作の間に使用したアドレス及びデータ回線からメモリ・モジュールを分離することにより試験するためのメモリ・モジュールを用意するＢＩＳＴモードを選択的に使用可能にし、そして使用禁止にするように該シーケンサを管理する動作上の符号を含む、請求項３２記載の方法。
【請求項３４】
規定された動作符号の組は、パラメータにより指定されたアドレスの範囲に亘って１つ以上のメモリ動作の系列を適用するようにシーケンサを管理する動作上の符号を含む、請求項３２記載の方法。
【請求項３５】
規定された動作符号の組は、パラメータにより指定された特定のアドレスに規定されたメモリ動作を実行するようにシーケンサを管理する動作上の符号を含む、請求項３２記載の方法。
【請求項３６】
規定された動作符号の組は、メモリ・モジュールの特定の１つを試験するようにシーケンサを管理する動作上の符号を含む、請求項３２記載の方法。
【請求項３７】
規定された動作上の符号の組は、当該シーケンサの内部に記憶されたメモリ試験アルゴリズムを適用するように分散されたシーケンサの少なくとも１つを管理する動作上の符号を含む、請求項３３記載の方法。
【請求項３８】
アルゴリズムを発することは、メモリ・モジュールへの適用に並行して命令をシーケンサに発することを具備する、請求項２９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、電子装置に関し、特に、電子装置における使用のための内蔵自己診断アーキテクチャに関する。
【背景技術】
【０００２】
内蔵自己診断（built-in self-test）（ＢＩＳＴ）ユニットは、現在、一般に、自身の機能性及び信頼性を試験するために、メモリ・チップ及び他の集積回路に組み込まれている。例えば、特定のメモリ・モジュールに組み込まれたＢＩＳＴユニットは、あり得るいずれかのメモリ不良を検出するために、種々のデータ・パターンを関連するメモリ・モジュールに書き込み且つメモリ・モジュールから読み出すことにより動作する。書き込まれたデータと続いてメモリ・モジュールから返されたデータを比較することにより、ＢＩＳＴユニットは、メモリ・モジュールのいずれかのメモリ・セルが不良であるかどうかを決定することが可能である。
【０００３】
一体型のＢＩＳＴユニットは、一般的に、種々の事前決定された試験パターンを発生し、メモリ試験の結果に基づいて、出力信号を肯定的に明示し（assert）、又は否定的に明示する（deassert）。種々のアルゴリズムは、メモリ不良を検出するために使用されることができる。例えば、全て０、全て１の試験パターン、又は交互になった０と１を有する“チェッカーボード”パターンは、メモリ・セル全体に亘って書き込まれることができる。その上、データは、連続して増加する又は減少するアドレス指定方式のような、任意の順序でセルに書き込まれることができる。
【０００４】
このようにして、ＢＩＳＴユニットは、一般的に、メモリ・モジュールを使用する又はそうでなければ組み込んでおり、且つチップ内回路要素の機能性を検証するためにある種の事前決定されたアルゴリズムに従って動作する多くの型の集積回路に含まれる。しかしながら、電子装置は、一般的に、１個のチップからなる内部回路要素より多くのものを具備する。通常、電子装置は、回路基板上に搭載された複数の集積回路チップ及びサポートする複数の構成要素から構成される。
【０００５】
一般的な計算装置の複雑性が増加するとともに、メモリ・チップ及び他の集積回路の個数は、増加する。例えば、従来の計算装置は、一般的に、しばしば異なる型の複数のメモリ・モジュールを含む。１個の計算装置の内部のメモリ・モジュールは、ランダム・アクセス・メモリ（random access memory）（ＲＡＭ）、リード‐オンリ・メモリ（read-only memory）（ＲＯＭ）、フラッシュ・メモリ、ダイナミック・ランダム・アクセス・メモリ（dynamic random access memory）（ＤＲＡＭ）、及び同様なものの種々の組み合わせを含むことができる。これらの種々の型のメモリ・モジュールは、しばしば、様々な試験手順を必要とし、且つ異なるビット密度、アクセス速度、アドレス指定要求、アクセス・プロトコル、及び他の独自性を有する。その結果、一般的な計算装置は、各メモリ・モジュールに対してそれぞれのＢＩＳＴユニットを有することができ、各ＢＩＳＴユニットは、関連するメモリ・モジュールを試験するために特殊化されることがある。
【発明の開示】
【０００６】
［サマリー］
一般に言って、本開示は、１つ以上のメモリ・モジュールの動作を試験するための分散された、体系的内蔵自己診断アーキテクチャに向けられる。説明されたように、本アーキテクチャは、３つの階層の概念：中央集中化されたＢＩＳＴコントローラ、シーケンサの組、及びメモリ・モジュールに接続されたメモリ・インタフェースの組、を含む。
【０００７】
ＢＩＳＴコントローラは、メモリ・モジュールの試験に関する中央集中化された高‐レベルの制御を提供する。ＢＩＳＴコントローラは、メモリ・モジュールに適用するためにシーケンサに中央に記憶され且つ維持管理された試験アルゴリズムを伝達する。ＢＩＳＴコントローラは、本明細書中に説明された命令プロトコルに準拠する一般化された命令の組としてアルゴリズムを伝達する。その上、命令プロトコルは、アルゴリズムが任意のタイミング要求、物理的構成又はメモリ・モジュールの固有のインタフェース特性に関係なく包括的に規定することを可能にする。その結果、種々の試験アルゴリズムは、容易に規定されることができ、且つ必要に応じて電子装置全体に亘る配布のために集中して維持管理されることができる。この結果、共通の試験パターンは、メモリ・モジュールの内部に余分に記憶される必要がない。
【０００８】
シーケンサは、第２の水準の概念を提供する。シーケンサは、１つ以上のメモリ・モジュールを含む装置ブロックの内部に分散される。このようにして、各シーケンサは、１つ以上のメモリ・モジュールと関連付けられる。シーケンサは、ＢＩＳＴコントローラから高‐レベルの命令を受け取る。命令に応答して、シーケンサは、命令を実行するためにそれぞれのメモリ・インタフェースに１つ以上のメモリ動作の系列（sequence）を発する。例えば、シーケンサは、ＢＩＳＴコントローラからの１つの命令に応答して、あるアドレスの範囲に連続してアクセスするように命令を発することができる。シーケンサは、ＢＩＳＴコントローラに試験の結果を報告する。
【０００９】
シーケンサは、それぞれのメモリ・モジュールのタイミング特性に従って、動作の適用を制御する。例えば、シーケンサの各々は、それぞれのメモリ・モジュールのアクセス速度に従って、動作の系列の適用速度を制御する。１個のシーケンサは、共通のクロック・ドメイン上で動作する複数のメモリ・モジュールへの試験アルゴリズムの適用を制御することができる。したがって、適用タイミングを制御し且つ試験パターン・ドメインを順番に並べるための論理は、シーケンサの内部に組み込まれ、個々のメモリ・モジュールの内部に分散させられる必要がなく、又はＢＩＳＴコントローラにより維持管理される必要もない。
【００１０】
第３の階層、メモリ・インタフェースは、メモリ・モジュールの各々に関する特定のインタフェース要求を取り扱う。メモリ・インタフェースの各々は、特定の信号インタフェース要求及びそれぞれ１つのメモリ・モジュールの物理的特性に従って設計されることができる。各メモリ・インタフェースは、メモリ動作を制御しているシーケンサから受け取り、必要に応じてそれぞれのメモリ・モジュールの物理的特性に基づいて、関連するアドレス信号及びデータ信号を含む、メモリ動作を変換する。例えば、メモリ・インタフェースは、行方向に又は列方向にメモリを埋めるためにメモリ・モジュールの行及び列に基づいて、制御しているシーケンサにより供給されるアドレスを変換することができる。別の１つの例として、メモリ・インタフェースは、チェッカーボード・パターンのような、若しくは隣接する行又は列が反対のパターンを有する“裸にされた（striped）”行又は列のような、特定のビット・パターンを作り出すためにデータを変換することができる。
【００１１】
１つの実施形態において、システムは、複数のメモリ・モジュールを試験するためのアルゴリズムを記憶する中央集中化された内蔵自己診断（ＢＩＳＴ）コントローラを具備する、ここにおいて、本ＢＩＳＴコントローラは、命令プロトコルに準拠する一般化された命令の組としてのアルゴリズムを記憶する。システムは、更に、命令を解読し（interpret）、その命令をメモリ・モジュールに適用する複数の分散されたシーケンサを具備する。
【００１２】
別の１つの実施形態において、装置は、一般化された命令プロトコルに準拠し且つ異なるタイミング要求及び物理的特性を有する複数の分散されたメモリ・モジュールを試験するためのＢＩＳＴアルゴリズムを規定する命令を発するための中央集中化された内蔵自己診断（ＢＩＳＴ）制御手段、及び命令を解読し且つメモリ・モジュールのタイミング要求及び物理的特性に従ってその命令をメモリ・モジュールに適用するための分散された手段、を具備する。
【００１３】
別の１つの実施形態における方法は、中央集中化されたコントローラからそして複数のメモリ・モジュールを試験するために命令プロトコルに準拠する一般化された命令の形式でアルゴリズムを発すること、及び命令プロトコルに従って、１つ以上のメモリ動作の系列として命令を適用するために分散されたシーケンサの組を用いて命令を解読すること、を具備する。
【００１４】
本明細書中に説明された技術は、１つ以上の利点を実現することができる。例えば、本技術は、種々の試験アルゴリズムが容易に規定され、そして一般化された命令の形式で集中して維持管理されることを可能にする。一般化された命令は、解読のため及びメモリ・モジュールへの適用のために、電子装置全体に亘って配置されたシーケンサに配布されることができる。その結果、共通の試験アルゴリズムは、メモリ・モジュールの内部に余分に記憶される必要がない。
【００１５】
更に、本技術は、異なるメモリ・モジュールにアルゴリズムの同時適用を提供することができ、これは、全体的な試験時間を削減でき且つメモリ間効果に関してより完全に試験することができる。その上、本アーキテクチャの分散された、体系的特質は、本技術が既存のチップ設計に容易に適用されることを可能にできる。
【００１６】
１つ以上の実施形態の詳細は、添付図面及び下記の明細書において言及される。他の特徴、目的、及び利点は、明細書及び図面から、並びに特許請求の範囲から明らかにされる。
【００１７】
［詳細な説明］
図１は、分散された、体系的内蔵自己診断（ＢＩＳＴ）アーキテクチャを有する一例の電子装置２を説明するブロック図である。特に、電子装置２は、装置ブロック６Ａから６Ｎ（一括して、“装置ブロック６”）の試験について中央集中化された高‐レベルの制御を提供する内蔵自己診断（ＢＩＳＴ）コントローラ４を含む。装置ブロック６の各々は、シーケンサ８、並びに１つ以上のメモリ・インタフェース１０の組及び１つ以上のそれぞれのメモリ・モジュール１２を含む。
【００１８】
一般に、ＢＩＳＴコントローラ４は、装置ブロック６への適用のためにシーケンサ８に試験アルゴリズムを提供しそして伝達する。ＢＩＳＴコントローラ４は、包括的で柔軟な命令プロトコルに準拠する命令の組としてシーケンサ８にアルゴリズムの各々を伝達する。各命令は、メモリ・モジュール１２の物理的特性及びタイミング要求に関係なく１つ以上のメモリ動作を規定するパラメータの組及び動作上の符号（operational code）を指定する。このようにして、命令プロトコルは、種々の試験アルゴリズムが容易に規定され、そして電子装置２全体に亘って配布されることを可能にする。したがって、ＢＩＳＴコントローラ４は、アルゴリズムの維持管理及び配布について中央集中化された制御を提供する。その結果、共通の試験アルゴリズムは、装置ブロック６の内部に余分に記憶される必要がない。
【００１９】
シーケンサ８は、ＢＩＳＴコントローラ４により提供された試験アルゴリズムを解読しそして実行する。特に、シーケンサ８は、完全なＢＩＳＴアルゴリズムを規定するＢＩＳＴコントローラ４から高‐レベルの命令を受け取る。例えば、１個の命令は、１つ以上のアドレスの範囲に亘り書き込まれるべき特定のビット・パターンを規定することができる。命令に応答して、シーケンサ８の各々は、命令を実行するために、それぞれのメモリ・インタフェース１０に１つ以上のメモリ動作の系列を発する。その上、シーケンサ８は、それぞれのメモリ・モジュール１２のタイミング特性に従って、動作の適用を制御する。例えば、シーケンサ８の各々は、それぞれのメモリ・モジュール１２のアクセス速度に従って、動作の系列の適用速度を制御する。１個のシーケンサ８、例えば、シーケンサ８Ａは、共通のクロック・ドメイン上で動作する、１つ以上のメモリ・モジュール、例えば、メモリ・モジュール１２Ａへの試験アルゴリズムの適用を制御することができる。メモリ・モジュール１２は、グループ化され、いずれかの種々の基準、例えば、メモリ・モジュールの各々に関するクロック・ドメイン及びメモリ・モジュールの任意の既存の体系又はグループ化、に基づいてそれぞれのシーケンサ８に割り当てられることができる。したがって、適用タイミングを制御するため及び共通のクロック・ドメイン上で動作しているメモリ・モジュール１２に関する試験パターンを順番に並べることのための論理は、共通のシーケンサ８の内部に組み込まれることができ、個々のメモリ・モジュールの内部に分散される必要がない。
【００２０】
メモリ・インタフェース１０は、メモリ・モジュール１２の各々に関する特定のインタフェース要求を取り扱う。例えば、メモリ・インタフェース１０の各々は、メモリ・モジュール１２のそれぞれ１つの物理的特性及び特定の信号インタフェース要求に従って、設計されることができる。その結果、メモリ・インタフェース１０の各々は、各それぞれのメモリ・モジュール１２に対する特定のインタフェース信号、例えば、アドレス信号、データ信号、及び制御信号、の周りのインタフェースを“取り巻くもの（wrapper ）”を提供するように、見られることができる。このようにして、電子装置２のＢＩＳＴアーキテクチャは、ＢＩＳＴコントローラ４、シーケンサ８、及びメモリ・インタフェース１０を含む、３つの階層の分散された配置を具備する。
【００２１】
メモリ・モジュール１２は、ランダム・アクセス・メモリ（random access memory）（ＲＡＭ）、リード‐オンリ・メモリ（read-only memory）（ＲＯＭ）、フラッシュ・メモリ、ダイナミック・ランダム・アクセス・メモリ（dynamic random access memory）（ＤＲＡＭ）、ＳＤＲＡＭ、ＲＤＲＡＭ、ＤＤＲ‐ＲＡＭ、これらの組み合わせ、及びその他のような、任意の型のメモリであることができ、本明細書中に説明される技術は、この点については制限されない。その上、電子装置２は、搭載型の演算システム、コンピュータ、サーバ（server）、個人ディジタル補助装置（personal digital assistant）（ＰＤＡ）、携帯型演算装置、携帯型通信装置、ディジタル記録装置、ネットワーク用特殊装置（network appliance）、携帯型位置決定装置、及びその他のような、メモリ・モジュールを組み込んだいずれかの装置であってもよい。
【００２２】
図２は、ＢＩＳＴコントローラ４の一例の実施形態を説明するブロック図である。この図示された実施形態において、ＢＩＳＴコントローラ４は、Ｎ個の試験アルゴリズムの組を記憶するアルゴリズム・メモリ２０を含む。下記に説明されるように、各アルゴリズムは、２進命令の組に従って規定される。１つの実施形態において、例えば、完全なアルゴリズムは、３２ビット命令の組により指定されることができ、ここで、この命令は、メモリ・モジュール１２の機能性を試験するために、装置ブロック６（図１）のアドレス範囲に亘って１つ以上のメモリ動作の系列を実行するために必要な全てのパラメータを規定する。
【００２３】
ユーザ・インタフェース２２は、外部の試験装置からの制御信号のような、外部の入力に応答してアルゴリズム・コントローラ２６を呼び出す（invoke）。あるいは、アルゴリズム・コントローラは、電子装置２の電源投入と同時に自動的に呼び出されることができる。一旦、呼び出されると、アルゴリズム・コントローラ２６は、アルゴリズム・メモリ２０の内部に記憶されたアルゴリズムの１つを選択するために、アルゴリズム選択信号（ＡＬＧ＿ＳＥＬＥＣＴ）をマルチプレクサ２４に与える。一旦、選択されると、選択されたアルゴリズムを具備する２進命令のストリーム（stream）は、命令データ（ＣＭＤ＿ＤＡＴＡ）として装置ブロック６に適用される。
【００２４】
アルゴリズム・コントローラ２６は、装置ブロックの各シーケンサ８から受信された受領信号（ＳＥＱ＿ＡＣＫ）に基づいて、装置ブロック６へのアルゴリズムの配信を制御する。特に、アルゴリズム・コントローラ２６は、複数のシーケンサ８に選択されたアルゴリズムの各命令を順番に配信し、シーケンサ８の各々から受領信号を受け取ると、１つの命令から次の命令へ進む。このようにして、アルゴリズム・コントローラ２６は、各シーケンサ８が次の命令に進む前に、メモリ・インタフェース１０を介してメモリ・モジュール１２への現在の命令の適用を完了したことを保証する。アルゴリズム・コントローラ２６は、装置ブロック６、及び特に、電子装置２の内部に存在するシーケンサ８の個数を設定するために、プログラム的に又は静的に構成されることができる。付け加えると、アルゴリズム・コントローラ２６は、装置ブロック６の任意の組み合わせを使用するメモリ・モジュール１２の１つの、全ての、又は任意の組み合わせに所定のアルゴリズムを適用するようにプログラム的に構成されることができる。
【００２５】
アルゴリズム・メモリ２０に記憶されたアルゴリズムに加えて、ユーザ・インタフェース２２は、外部の入力を介してアルゴリズムをプログラム可能に受け取ることができる。ユーザ・インタフェース２２は、記憶されたアルゴリズムの形式、即ち、その２進命令の中で各命令がアルゴリズム全体の中で試験を規定する２進命令の系列、と同様な形式で、マルチプレクサ２４に受信されたアルゴリズムを配信する。このようにして、ＢＩＳＴコントローラ４は、中央集中化された、３つの階層の第１の階層の分散された自己診断アーキテクチャを提供する。
【００２６】
図３は、包括的なＢＩＳＴアルゴリズムの１個の命令に関する、ＢＩＳＴコントローラ４とシーケンサ８との間の伝達を更に説明するタイミング図である。図示されるように、時刻Ｔ１で、ＢＩＳＴコントローラ４は、命令要請（ＣＭＤ＿ＲＥＱ）相互接続を肯定的に明示し（assert）、且つＣＭＤ＿ＤＡＴＡ相互接続上でアルゴリズムの現在の命令を伝達する。
【００２７】
命令を受け取り且つ適用すると、シーケンサ８は、対応するＳＥＱ＿ＡＣＫ信号を肯定的に明示する。例えば、図示された例において、シーケンサ８の各々は、それぞれ時刻Ｔ２、Ｔ３、Ｔ４及びＴ５において、それぞれの信号ＳＥＱ＿ＡＣＫ[１]、ＳＥＱ＿ＡＣＫ[２]、ＳＥＱ＿ＡＣＫ[Ｎ]及びＳＥＱ＿ＡＣＫ[０]を、肯定的に明示する。応答では、ＢＩＳＴコントローラ４は、時刻Ｔ６において、命令要請（ＣＭＤ＿ＲＥＱ）信号を否定的に明示し（de-assert）、シーケンサ８にそれぞれのＳＥＱ＿ＡＣＫ信号を否定的に明示させる。ＢＩＳＴコントローラ４は、全てのＳＥＱ＿ＡＣＫ信号が否定的に明示されたとき、ＳＥＱＳ＿ＤＯＮＥ信号を肯定的に明示し、時刻Ｔ７において、ＢＩＳＴコントローラ４が別の１つの命令を開始することを可能にする。
【００２８】
図４は、より詳細な、装置ブロック、例えば、装置ブロック６Ａの一例の実施形態を説明するブロック図である。図示されるように、装置ブロック６Ａは、シーケンサ８Ａ、１組のメモリ・インタフェース１０Ａ‐１０Ｃ（一括して、“メモリ・インタフェース１０”）、及び１組のメモリ・モジュール１２Ａ‐１２Ｃ（一括して、“メモリ・モジュール１２”）を含む。図４に図示されるように、メモリ・インタフェース１０の各々は、それぞれのメモリ・モジュール１２に対応する。シーケンサ８Ａは、制御されるべきメモリ・インタフェース１０の個数、同様に、メモリ・モジュール１２の中の最大のものに関する特性、例えば、最大のアドレスを設定するようにプログラム的に及び／又は静的に構成されることができる。
【００２９】
図５は、より詳細な、シーケンサ、例えば、シーケンサ８Ａ、の一例の実施形態を説明するブロック図である。シーケンサ８Ａは、一括してＢＩＳＴアルゴリズムを規定するＢＩＳＴコントローラ４から高‐レベルの命令を受け取る。下記に詳細に説明されるように、ＢＩＳＴコントローラ４は、包括的で、柔軟なフォーマットで命令を発し、そして１個の命令は、１つ以上のアドレスの範囲に亘って書き込まれるべき特定のビット・パターンを規定することができる。
【００３０】
一般に、シーケンサ８Ａは、包括的なＢＩＳＴ命令を受け取り、それぞれのメモリ・モジュールの組に適用された１つ以上のメモリ動作の系列として各命令の適用を制御する。図示された実施形態において、シーケンサ８Ａは、ＢＩＳＴコントローラ４から命令データ（ＣＭＤ＿ＤＡＴＡ）を受け取る命令パーザ（command parser）（ＣＭＤ  ＰＡＲＳＥＲ）３０を含む。命令パーザ３０は、例えば、命令により指定された動作上の符号（ｏｐ‐ｃｏｄｅ）を識別することにより、指定された動作を識別するために受信された命令を処理する。
【００３１】
指定された動作に基づいて、命令パーザ３０は、命令から１つ以上のパラメータを抽出することができ、対応する命令コントローラ（ＣＭＤ  ＣＯＮＴＲＯＬＬＥＲ）３４Ａ‐３４Ｎの１つを選択することができる。換言すれば、命令コントローラ３４の各１つは、ＣＭＤ＿ＤＡＴＡにより指定されることができる異なる命令に対応する。命令パーザ３０は、選択された命令コントローラ３４を呼び出し、受信された命令から抽出されたパラメータを渡す。別々に図示されているが、命令コントローラ３４は、サポートされた命令の各々を実行するための論理を有する１個の機能ブロックに統合され及び／又は集積されることができる。
【００３２】
各命令に応答して、呼び出された命令コントローラ３４の１つは、各メモリ・インタフェース１０に１つ以上の動作の系列を発する。特に、呼び出された命令コントローラ３４の１つは、その系列の各動作を実行するために、適切な命令制御信号（ＣＭＤ＿ＣＴＲＬ＿ＳＩＧＮＡＬＳ）を順番に駆動する。下記に更に説明されるように、命令制御信号は、受け取る側のメモリ・インタフェース１０にメモリ・アドレス及びデータを与えるための信号、並びにビットを反転させるため、読み出し動作又は書き込み動作を実行するため、行を反転させるため、及びその他を行うために、受け取る側のメモリ・インタフェースを管理するための信号、を含むことができる。
【００３３】
その上、命令コントローラ３４は、それぞれのメモリ・モジュール１２のタイミング特性に従って、動作の適用を制御する。したがって、共通のクロック・ドメイン上で動作するメモリ・モジュール１２に関する動作の順番に並べるため及び適用タイミングを制御するための論理は、共通シーケンサ８の内部に組み込まれることができ、個々のメモリ・モジュールの内部に配布される必要はない。
【００３４】
シーケンサ８Ａは、例えば、ＭＥＭ[０]＿ＤＯＵＴからＭＥＭ[Ｎ]＿ＤＯＵＴ全体に亘る信号を介して、試験されたメモリ・モジュール１２からデータを受け取り、ＢＩＳＴコントローラ４に戻す又はマルチプレクサ３７を介して外部の装置に戻すデータ及びデータ選択信号３９を選択的に伝達する。このようにして、シーケンサ８は、どのような不良も識別するためにデータの解析を可能にする。
【００３５】
このようにして、シーケンサ８は、ＢＩＳＴコントローラ４が包括的で柔軟な命令フォーマットを使用して、アルゴリズムの記憶及び発行を集中的に管理することを可能にする。シーケンサ８は、命令プロトコルに従って包括的なＢＩＳＴ命令を受け取り、それぞれのメモリ・モジュール１２の組への適用に関する１つ以上のメモリ動作の系列を発生させ且つ発することにより、命令の適用を制御する、これにより、分散された階層的な自己診断アーキテクチャの第２の階層を提供する。
【００３６】
図６は、それぞれのメモリ・モジュール１２に関する特定のインタフェース要求を取り扱うことにより、分散されたＢＩＳＴアーキテクチャの概念の最終の層を提供するメモリ・インタフェース４１の一例の実施形態を説明するブロック図である。
【００３７】
図示された実施形態において、メモリ・インタフェース４１は、電子装置２がＢＩＳＴモードで動作しているときに、メモリ・モジュール１２を通常の機能性から隔離するマルチプレクサ４５、４６の層を含む。特に、通常の動作条件下で、ＢＩＳＴイネーブル（ＢＩＳＴ＿ＥＮ）は、否定的に明示され、例えば、プログラム可能なプロセッサにより与えられるように、アドレス信号／制御信号（ＡＤＤＲ／ＣＴＲＬ）及びデータ信号（ＤＡＴＡ）をマルチプレクサ４５、４６に選択させる。電子装置２がＢＩＳＴモードで動作している場合、ＢＩＳＴイネーブル信号は、マルチプレクサ４５、４６が、それぞれのより高い‐水準のシーケンサにより与えられるＢＩＳＴアドレス信号／制御信号（ＢＩＳＴ＿ＡＤＤＲ／ＣＴＲＬ）及び試験データを選択するようにさせる。このようにして、シーケンサは、それぞれのメモリ・モジュールを選択的に隔離するためにメモリ・インタフェース４１のマルチプレクサ４５、４６を制御する、これにより、ＢＩＳＴアルゴリズムがそのメモリ・モジュールに適用されることを可能にする。
【００３８】
メモリ・インタフェース４１は、更に、シーケンサ８により与えられるように、ＢＩＳＴ＿ＤＡＴＡ信号及びデフォルト・データ（ＤＥＦＡＵＬＴ＿ＤＩＮ）を受け取るデータ発生ユニット４４を含み、シーケンサにより与えられる制御信号（ＢＩＳＴ＿ＤＡＴＡ＿ＧＥＮ＿ＣＴＲＬ）及び対応するメモリ・モジュール１２の特定の物理的特性に基づいて、変換されたＢＩＳＴデータ信号４９（ＢＩＳＴ＿ＤＡＴＡ＿Ｔ）を発生する。より具体的に言うと、下記に更に詳細に説明されるように、データ発生ユニット４４は、アルゴリズムの各動作の期間に、メモリ入力に適用された正確なデータ（ＲＡＭ＿ＤＩＮ）を発生する。データ発生ユニット４４は、それぞれのメモリ・モジュール１２の物理的構成、例えば、物理的な行及び列構成、に基づいて、同様にシーケンサ８Ａにより指定された例えば、チェッカーボード、反転された、その他の、ビット・パターンに基づいて、変換されたＢＩＳＴデータを発生する。
【００３９】
例えば、シーケンサ８は、メモリ・モジュール内部のデータの列が１と０との間を交互にかわることを必要とするチェッカーボード・ビット・パターンを要請することができる。しかしながら、異なるメモリ・モジュール１２は、異なる行及び列構成で配置されることがある。その結果、所定のアドレスに対するメモリ・セルは、異なる行−列構成を有するメモリ・モジュール１２に対して異なる行及び列に配置されることがあり得る。例えば、２５６ビット・メモリ・モジュール１２は、１２８行及び２列、３２行×８列、１６行×１６列、及びその他、のように配置されることができる。その結果、この行列の全体に亘り、チェッカーボードのような特定のパターンを書き込むことは、メモリ・モジュールの固有の行−列構成の知識を必要とする。下記に更に詳細に説明されるように、データ発生ユニット４４は、シーケンサ８により与えられたデータを処理し、必要に応じて、所望のビット・パターンが正確に書き込まれることを確実にするために、そのデータを変換する、例えば、データを反転する。
【００４０】
同様に、アドレス発生ユニット４２は、シーケンサ８Ａにより指定されたアドレス指定要求に基づいて、並びにメモリ・モジュールの行及び列の物理的構成に基づいて、メモリ・モジュール１２に適用されるアドレスを発生する。例えば、ある複数のＢＩＳＴ試験において、シーケンサ８Ａは、行（又は列）第１様式で、ＢＩＳＴデータを書き込むようにメモリ・インタフェース４１に命令する、即ち、次の行（又は列）に進む前に各行（又は列）が完全に書き込まれることを必要とする。これらの要求条件が、行及び列構成に特有であるので、アドレス発生ユニット４２は、処理する前に、シーケンサ８Ａにより与えられたアドレスを全体の行（又は列）を移動するように適切なものに変換する。
【００４１】
その結果、シーケンサは、それぞれの命令により規定され、そのシーケンサと関連する最大の大きさのメモリ・モジュールにより制限されたアドレス空間を順番に移動することにより動作を発することが可能である。各メモリ・インタフェース、例えば、メモリ・インタフェース４１は、必要に応じて、適切なメモリ・セルに動作を適用するために、受信されたアドレスを変換する。例えば、列第１ＢＩＳＴアルゴリズムに関して、シーケンサ８は、順を追って複数のアドレスに動作を発し、他方において、アドレス発生ユニット４２は、メモリ・モジュール１２の列に沿ったようになるようにメモリ・セルにアクセスするために受信されたアドレスを計算により変換する。この例において、アドレス発生ユニット４２は、シーケンサ８がアドレス空間を増加させているか又は減少させているかどうかに基づいて、最も重要でない列から最も重要な列まで列方向の様式で、メモリ・モジュール１２をアクセスするためにアドレスを変換する。
【００４２】
コンパレータ４８は、メモリ・モジュール１２から読み出されたデータ（ＲＡＭ＿ＤＯＵＴ）が、予期されたように、メモリ・モジュールのそのアドレスに最後に書き込まれたデータに等しいかどうかを決定する。比較が不合格である場合、即ち、メモリ・モジュール１２から読み出されたデータが、以前に書き込まれたデータに等しくないとき、コンパレータ４８は、メモリ・エラーが検出されたことを表示するために、ＢＩＳＴ＿ＦＡＩＬ信号を肯定的に明示する。
【００４３】
このようにして、メモリ・インタフェース４１は、高次‐水準のシーケンサにより発せられた連続したメモリ動作を処理し、メモリ・モジュールの特定の物理的特性に基づいて、必要に応じて、シーケンサにより与えられたデータ及びアドレスを変換する、これにより、分散された階層的自己診断アーキテクチャの第３の階層を提供する。その結果、シーケンサは、各メモリ・モジュール１２の物理的特性及び容量に関する詳細な知識を必要とすることなく、複雑なＢＩＳＴアルゴリズムに関する動作を発することが可能である。
【００４４】
図７は、データ発生ユニット４４（図６）の一例の実施形態を説明するブロック図である。図示された実施形態において、データ発生ユニット４４は、シーケンサ８により与えられるＢＩＳＴ＿ＤＡＴＡ信号、デフォルト・データ信号（ＤＥＦＡＵＬＴ＿ＤＩＮ）を受け取る。その上に、データ発生ユニット４４は、ＢＩＳＴ＿ＩＮＶＥＲＴ＿ＢＩＴＳ、ＢＩＳＴ＿ＩＮＶＥＲＴ＿ＲＯＷＳ、ＬＳＢ＿ＲＯＷ＿ＡＤＤＥＲ、及びＢＩＳＴ＿ＷＲＩＴＥの形式で複数の制御信号を受け取る。受信されたデータ及びこれらの制御信号に基づいて、データ発生ユニット４４は、シーケンサ８により与えられた制御信号（ＢＩＳＴ＿ＤＡＴＡ＿ＧＥＮ＿ＣＴＲＬ）及び対応するメモリ・モジュール１２の特定の物理的特性に基づいて、変換されたＢＩＳＴデータ信号４９（ＢＩＳＴ＿ＤＡＴＡ＿Ｔ）を発生する。
【００４５】
特に、シーケンサ８は、連続データ・パターン、チェッカーボード・データ・パターン、水平ストライプ・データ・パターン及び垂直ストライプ・データ・パターンのような、データ・パターンを指定するために、反転ビット信号（ＢＩＳＴ＿ＩＮＶＥＲＴ＿ＢＩＴＳ）、反転行信号（ＢＩＳＴ＿ＩＮＶＥＲＴ＿ＲＯＷＳ）、及び反転列信号（図示されていない）を肯定的に明示し、そして否定的に明示する。反転ビット又は反転行信号がどちらも肯定的に明示されないならば、ＢＩＳＴ＿ＤＡＴＡ信号は、修正なしでＸＯＲゲート５２、５４を通過する。その結果、データ発生ユニット４４は、修正なしでシーケンサ８から指示されたデータでメモリ・モジュール１２を満たすために、変換されたデータ信号４９（ＢＩＳＴ＿ＤＡＴＡ＿Ｔ）を発生する。
【００４６】
ＢＩＳＴ＿ＩＮＶＥＲＴ＿ＲＯＷ信号が設定されるならば、データ発生ユニット４４は、最も重要でない（最下位）行アドレス・ビット（ＬＳＢ＿ＲＯＷ＿ＡＤＤＲ）により指示されるように、行が横切られるたびに、値を反転させる。その結果、ＡＮＤゲート５０は、ＸＯＲゲート５２にシーケンサにより指示された値を反転させる、これにより、隣接する行に書き込まれる値を反転させる。同様な機能性は、列が横切られるときに、値を反転させるように与えられることができる。ＢＩＳＴ＿ＩＮＶＥＲＴ＿ＢＩＴＳ信号が肯定的に明示されるとき、データ発生ユニット４４は、シーケンサにより指示された値を自動的に反転させる。これは、異なる行列の対応する複数のセル間の値を反転させる際に有用である。
【００４７】
ＤＥＦＡＵＬＴ＿ＤＩＮフィールドは、メモリ・モジュール１２に対する読み出し動作の間にメモリ・モジュールに適用されるデフォルト・データ値を設定する。マルチプレクサ５６は、ＢＩＳＴ＿ＷＲＩＴＥ信号により指示されるように、書き込み動作又は読み出し動作が実行されているかどうかに基づいて、ＤＥＦＡＵＬＴ＿ＤＩＮデータとＸＯＲゲート５４により発生されたデータとの間で選択する。
【００４８】
図８は、ＢＩＳＴコントローラ４により発せられた命令の一例のデータ構造を説明するブロック図である。図示された実施形態において、命令６０は、シーケンサ識別子（identifier）（ＩＤ）６２、及びペイロード６４を含む。下記に更に詳細に説明されるように、シーケンサＩＤ６２は、それに対して命令６０が発せられようとしているシーケンサ、例えば、シーケンサ８Ａを識別する。
【００４９】
ＢＩＳＴコントローラ４は、全てのシーケンサ８に命令を同報配信（broadcast ）する、又はシーケンサの特定の１つにユニキャスト（unicast）様式で命令を発することができる。特に、ＢＩＳＴコントローラ４は、シーケンサ８の１つがそのシーケンサにユニキャスト命令を送るために、シーケンサＩＤ６２を固有の識別子に設定する。同報配信命令に関して、ＢＩＳＴコントローラ４は、シーケンサＩＤ６２を、０×０のような同報配信識別子に設定する。
【００５０】
命令６０のペイロード６４は、命令それ自身を規定する２進データを搬送する。特に、ペイロード６４は、動作上の符号（ＯＰ  ＣＯＤＥ）６６及び１組のパラメータ６８を含む。一般に、ＯＰ  ＣＯＤＥ６６は、受け取る側のシーケンサ８により実行されるべき特定の機能を指定する。次の表は、動作上の符号の例示的な組を列挙する。
【表１】
2007524890.tif 000003
【００５１】
１つの実施形態において、ＯＰ  ＣＯＤＥ６６及びパラメータ６８は、それぞれ、３ビット及び２９ビットを具備し、３２ビット命令を形成する。パラメータ６８の形式及び意味は、ＯＰ  ＣＯＤＥ６６により指定されるように、命令の型に依存する。
【００５２】
図９Ａは、ＲＥＳＥＴ命令に関するパラメータ６８の一例のデータ構造を図示する。図示されるように、パラメータ６８の問題とされるビットはビット２８だけであり、そしてそれは、ＢＩＳＴモードを選択的に使用可能にする及び使用禁止にするために、肯定的に明示される又は否定的に明示されることができる。肯定的に明示されたとき、受け取る側のシーケンサ８は、それぞれの装置ブロック６を試験するために、試験アルゴリズムを適用するためのモードに入る。否定的に明示されたとき、受け取る側のシーケンサは、現在のアルゴリズムをリセットし、終了する。
【００５３】
図９Ｂは、ＥＸＥＣＵＴＥ命令に関するパラメータ６８の一例のデータ構造を図示する。図示されるように、ＥＸＥＣＵＴＥ命令に関して、パラメータ６８は、それぞれのメモリ・モジュール１２の固有のタイミング特性に従って、アドレスの範囲に亘りメモリ動作の系列を適用するように受け取る側のシーケンサ８を管理する。
【００５４】
一旦、受け取られると、デフォルトにより、シーケンサ８は、それぞれの装置ブロックの内部の最大のメモリ・モジュール１２のアドレス範囲に亘り指定されたメモリ動作を反復して実行する。しかしながら、ＳＩＮＧＬＥ  ＲＯＷ（ＳＲ）ビットが使用可能にされるならば、シーケンサ８は、行アドレスを一定に維持管理しながら、最大列ビット選択権を有するメモリ・モジュール１２の全ての列に対して規定されたメモリ動作の系列を実行する。
【００５５】
メモリ動作の系列を適用する場合に、シーケンサ８は、パラメータ６８のＡＤＤ  ＩＮＣ／ＤＥＣビットの状態に基づいて、それぞれの装置ブロック６の内部のメモリ・モジュール１２の中の最大のものによりサポートされるアドレス範囲にわたり増加させるか又は減少させるかのどちらかである。例えば、ＡＤＤ  ＩＮＣ／ＤＥＣが肯定的に明示されるならば、シーケンサ８は、０から始まり最大のアドレスに進む各アドレスに規定されたメモリ動作を適用する。しかしながら、ＡＤＤ  ＩＮＣ／ＤＥＣが否定的に明示されるならば、シーケンサ８は、最大のアドレスから始まり０に減少する各アドレスに規定されたメモリ動作を適用する。ＤＥＦ  ＤＩＮフィールドは、メモリ・モジュールに対する読み出し動作の間に、メモリ・モジュール１２に適用されるデフォルト・データ値を設定する。
【００５６】
リプリング行（rippling row）（ＲＲ）フィールドは、列方向様式で、即ち、次の列に進む前に全体の列に動作を適用することにより、規定されたメモリ動作を適用するようにシーケンサ８を管理する。換言すれば、シーケンサ８の各々は、メモリ動作を適用しながら且つ行アドレスを“リプリング”させながら、列アドレスを一定に保持する。
【００５７】
反転ビット（invert bit）（ＩＢ）フィールド、反転行（invert row）（ＩＲ）フィールド、及び反転列（invert column）（ＩＣ）フィールドは、連続データ・パターン、チェッカーボード・データ・パターン、水平ストライプ・データ・パターン及び垂直ストライプ・データ・パターンのような、メモリ・モジュール１２を試験するためのデータ・パターンを指定するために使用されることができる。より具体的には、ＢＩＳＴコントローラ４がＩＲ及びＩＣフィールドのどちらをも設定しないならば、受け取る側のシーケンサ８は、シーケンサから指令された値でメモリ・モジュールを埋めるようにメモリ・インタフェース１０を管理する。ＩＲフィールドが設定されるならば、シーケンサ８により指令された値は、隣接する行に書き込まれた値を反転させてしまう。同様に、ＩＣフィールドが設定されるならば、シーケンサ８により指令された値は、隣接する列に書き込まれた値を反転させてしまう。その結果、ＩＲフィールドとＩＣフィールドの両方が設定されるならば、値は、メモリ・モジュールの内部でチェッカーボード・パターンを作り出すように、各列の間で且つ各行の間で反転させられる。最終的に、上に説明されたように、所定のメモリ・モジュール１２は、１つより多い行列として構成されることができる。反転ビット（ＩＢ）フィールドが設定されるならば、メモリ・インタフェース１０は、異なる行列の対応するセルの間で、シーケンサ８により指令された値を自動的に反転させる。
【００５８】
動作フィールド（ＯＰ１−ＯＰ８）は、各メモリ・アドレスに適用されるべき動作の組を規定するために使用されることができる。例えば、ＯＰ１のような、各動作フィールドは、２ビットを具備する。第１番目のビットは、動作が読み出しであるか又は書き込みであるかどうかを指示するために、肯定的に明示される又は否定的に明示されることができる。第２番目のビットは、書き込まれるべきデータ、即ち、０又は１、に基づいて設定されることができる。動作の個数（ＮＵＭ  ＯＰＳ）フィールドは、各メモリ・アドレスへの適用のために、幾つのの動作が規定されたかについて、シーケンサ８を指示する。このようにして、１個の命令は、全体のＢＩＳＴアルゴリズムの内部でステップを包括的に規定するために使用されることができ、各ステップは、受け取る側のシーケンサ８の装置ブロック６を用いて、メモリ・モジュール１２の各アドレスに適用されるように１つ以上の動作を規定することができる。
【００５９】
図９Ｃは、ＴＥＳＴ  ＭＥＭ命令のためのパラメータ６８の一例のデータ構造を図示する。この命令に関して、パラメータ６８は、故障解析命令として及びＢＩＳＴ命令としてＴＥＳＴ  ＭＥＭ命令を解読するためのＦＡ／ＢＩＳＴビットを含む。故障解析命令に設定されたとき、ＭＥＭ  ＩＤフィールドにより指定された値は、故障解析のためにメモリ・モジュール１２の特定の１つのデータ出力を選択するために、受け取る側のシーケンサ８により使用される。ＢＩＳＴ命令に設定されたとき、ＭＥＭ  ＩＤフィールドにより指定された値は、特定の試験の内部への参画のためにメモリ・インタフェース１０の特定の１つのデータ出力を選択するために、受け取る側のシーケンサ８により使用される。このようにして、アルゴリズムは、装置ブロック６の内部の個々のメモリ・モジュール１２に選択的に適用されることができる。ＭＥＭ  ＢＵＳ  ＳＬＩＣＥフィールドは、メモリ・モジュール１２からの多重化されたデータ・バスのどの部分が故障解析のために使用されるかを指示するために使用される。
【００６０】
図９Ｄは、ＳＥＴ  ＡＤＤＲＥＳＳ命令のためのパラメータ６８の一例のデータ構造である。この命令に関して、パラメータ６８は、ＢＩＳＴステップの適用のために特定のメモリ・アドレスを設定するアドレス・フィールド（ＡＤＤＲＥＳＳ）を含む。これは、ＳＩＮＧＬＥ  ＷＯＲＤ  ＡＣＣＥＳＳ命令と結合することで有用であることがある。パラメータ６８は、試験アルゴリズムに関する最大のアドレス制限を指定するための制限（ＬＩＭＩＴ）フィールドも含む。１つの実施形態において、ＬＩＭＩＴフィールドは、下記に制限を設定するための２ビット・データ・フィールドを具備する：（１）装置ブロック６の最大のメモリ・モジュール１２の最大アドレス、（２）２により除算された最大アドレス、（３）４により除算された最大アドレス、及び（４）８により除算された最大アドレス。
【００６１】
図９Ｅは、ＳＩＮＧＬＥ  ＷＯＲＤ  ＡＣＣＥＳＳ命令のためのパラメータ６８の一例のデータ構造である。この命令に関して、パラメータ６８は、受け取る側のシーケンサ８が、ステップを適用した後それぞれの現在のＢＩＳＴアドレスを変更すべきかどうかを制御する使用可能アドレス変更（enable address change ）（ＥＮＡＤＣ）ビットを含む。もし、使用可能にされたならば、アドレス増加／減少（ＡＤＤ  ＩＮＣ／ＤＥＣ）ビットは、現在のＢＩＳＴアドレスが増加されるべきか又は減少されるべきかどうかを制御する。反転ビット（ＩＢ）フィールド、反転行（ＩＲ）フィールド、及び反転列（ＩＣ）フィールドは、ＥＸＥＣＵＴＥ命令に関して上記に説明されたように、連続データ・パターン、チェッカーボード・データ・パターン、水平ストライプ・データ・パターン及び垂直ストライプ・データ・パターンのような、メモリ・モジュール１２を試験するためのデータ・パターンを指定するために使用されることができる。データ・フィールド（ＤＡＴＡ）は、試験されたメモリ・モジュール１２の読み出し動作のための入力データに関するデフォルト値を供給するために使用される。
【００６２】
表２は、説明された命令プロトコルに従ってＢＩＳＴコントローラにより記憶され且つ発せられる一例のチェッカーボードＢＩＳＴアルゴリズムを例証する。例証されるように、比較的複雑なチェッカーボード・メモリ試験アルゴリズムは、命令プロトコルを使用して、僅か４つの命令で説明されることができる。
【表２】
2007524890.tif 000004
【００６３】
表３は、説明された命令プロトコルに従ってＢＩＳＴコントローラ４により記憶され且つ発せられた“ブランケット・マーチ（Blanket March ）”ＢＩＳＴアルゴリズムの例を例証する。例証されるように、このメモリ試験アルゴリズムは、命令プロトコルを使用して、僅か６つの命令で説明されることができる。命令の各々は、規定された方向にメモリ空間全体を横断するメモリ動作の系列を発行するように、受け取る側のシーケンサ８に指示する。その上、命令の幾つかは、シーケンサが利用可能なメモリ空間の内部の各アドレスに複数のメモリ動作を適用するように管理する。このようにして、複雑なＢＩＳＴアルゴリズムは、階層的自己診断アーキテクチャの構成要素（constituent components）により、全体に亘って容易に配布され且つ適用されることができる。
【表３】
2007524890.tif 000005
【００６４】
図１０は、電子装置２、及び、特に、ＢＩＳＴコントローラ４、シーケンサ８、及びメモリ・インタフェース１０の分散された、３階層の自己診断アーキテクチャの動作例を説明するフローチャートである。
【００６５】
最初に、ＢＩＳＴコントローラ４は、内部アルゴリズム・メモリ、例えば、アルゴリズム・メモリ２０の内部に記憶されたアルゴリズムの１つを選択する（７０）。アルゴリズムを選択すると、ＢＩＳＴコントローラ４は、１つ以上のシーケンサ８にアルゴリズムにより規定された第１番目の命令を発する（７２）。
【００６６】
各受け取る側のシーケンサ８は、規定された動作符号及び対応するパラメータを識別するために命令を解析する（７８）。メモリ・アクセス命令に関して、各受け取る側のシーケンサ８は、命令により規定される開始アドレスを初期化する（８０）。次に、シーケンサ８は、メモリ動作を発する、即ち、適切なアドレス信号、データ信号及び制御信号を発生する（８２）。
【００６７】
順番に、各受け取る側のメモリ・インタフェース１０は、各それぞれのメモリ・モジュール１２の物理的特性に基づいてデータ及びアドレス信号を変換し（９２、９４）、変換された信号をメモリ・モジュールに適用する（９６）。更に、読み出しメモリ・アクセスに関して（９７）、メモリ・インタフェース１０は、それぞれのメモリ・モジュールから読み出されたデータを予期されたデータと自動的に比較する（９８）。比較に基づいて、メモリ・インタフェース１０は、試験されたメモリ・モジュール１２の状態（status）を報告するためにそれぞれのＢＩＳＴ故障信号を更新する（１００）。
【００６８】
一旦、メモリ動作がメモリ・インタフェース１０により発せられると、シーケンサ８は、追加の動作が系列の内部の現在のメモリ・アドレスに適用されようとしているかどうかを決定する（８４）。もしそうであれば、シーケンサ８は、同様な様式でメモリ・インタフェース１０に命令を発する（８２）。追加の動作が必要とされないならば、シーケンサ８は、アドレスを更新し（８６）、命令により規定された全体のアドレス範囲が順番に並べられていたかどうか、又は追加のアドレスが残っているかどうか、を決定する（８８）。全体のアドレス範囲が順番に並べられていて、メモリ動作が範囲の内部のアドレスに適用されている場合、シーケンサ８は、ＢＩＳＴコントローラ４に受領信号を発する（９０）。
【００６９】
命令を用いて目的とされたシーケンサ８の各々から受領を受け取ると（７４）、ＢＩＳＴコントローラ４は、選択されたアルゴリズムに対する最後の命令が発せられたかどうかを決定する。もしそうでなければ、ＢＩＳＴコントローラ４は、処理を繰り返し、追加の命令を発行する（７２）。一旦、全ての命令がシーケンサ８及びメモリ・インタフェース１０により発せられ、適用されると（７６）、ＢＩＳＴコントローラ４は、現在のＢＩＳＴ試験を終了する。
【００７０】
種々の実施形態が、説明されてきた。これら及び他の実施形態は、特許請求の範囲内である。
【図面の簡単な説明】
【００７１】
【図１】図１は、分散された、体系的内蔵自己診断（ＢＩＳＴ）アーキテクチャを有する電子装置の一例を説明するブロック図である。
【図２】図２は、ＢＩＳＴコントローラの一例の実施形態を説明するブロック図である。
【図３】図３は、包括的ＢＩＳＴアルゴリズムの１つの命令に関して、ＢＩＳＴコントローラとシーケンサの組との間の伝達を更に説明するタイミング図である。
【図４】図４は、装置ブロックの一例の実施形態を説明するブロック図である。
【図５】図５は、シーケンサの一例の実施形態を説明するブロック図である。
【図６】図６は、メモリ・インタフェースの一例の実施形態を説明するブロック図である。
【図７】図７は、データ発生ユニットの一例の実施形態を説明するブロック図である。
【図８】図８は、ＢＩＳＴコントローラにより発せられた命令の一例のデータ構造を説明するブロック図である。
【図９Ａ】図９Ａは、本明細書中で説明される命令プロトコルに従う例示的データ構造を図示する。
【図９Ｂ】図９Ｂは、本明細書中で説明される命令プロトコルに従う例示的データ構造を図示する。
【図９Ｃ】図９Ｃは、本明細書中で説明される命令プロトコルに従う例示的データ構造を図示する。
【図９Ｄ】図９Ｄは、本明細書中で説明される命令プロトコルに従う例示的データ構造を図示する。
【図９Ｅ】図９Ｅは、本明細書中で説明される命令プロトコルに従う例示的データ構造を図示する。
【図１０】図１０は、分散された、３階層自己診断アーキテクチャの動作の例を説明するフローチャートである。
【符号の説明】
【００７２】
２４…マルチプレクサ、３７…マルチプレクサ、３９…データ選択信号、４５…マルチプレクサ、４６…マルチプレクサ、４９…ＢＩＳＴデータ信号、５０…ＡＮＤゲート、５２…ＸＯＲゲート、５４…ＸＯＲゲート、５６…マルチプレクサ、６０…命令、６８…パラメータ。
【図１】
2007524890.tif 000006
【図２】
2007524890.tif 000007
【図３】
2007524890.tif 000008
【図４】
2007524890.tif 000009
【図５】
2007524890.tif 000010
【図６】
2007524890.tif 000011
【図７】
2007524890.tif 000012
【図８】
2007524890.tif 000013
2007524890.tif 000014
2007524890.tif 000015
2007524890.tif 000016
【図１０】
2007524890.tif 000017
【国際調査報告】
2007524890.tif 000018
2007524890.tif 000019
2007524890.tif 000020