(57)【特許請求の範囲】
【請求項１】
最下位の第１のビット、２番目の位数の第２のビット、および最上位の第３のビットを少なくとも有する２進数の１つのシーケンスを生成する装置であって、
第１の状態および第２の状態を有するコントロール入力と、
前記第１のビット、前記第２のビットおよび前記第３のビットをそれぞれ表す第１の装置出力、第２の装置出力、および第３の装置出力を有する一揃いの複数の装置出力とを備えており、前記一揃いの複数の装置出力は、前記２進数の１つのシーケンスを出力し、
前記装置は、さらに、
１つの入力と、第１の状態および第２の状態を有する前記第１の装置出力に接続される１つの出力とを有し、最下位の第１のビットに対応する第１の記憶モジュールと、
前記コントロール入力に接続される第１の入力と、前記第１の記憶モジュールの出力に接続される第２の入力と、第３の入力と、第１の状態にある奇数個の入力に応答して生成されるような前記第１の状態を有する１つの出力とを具備する加算器と、
各々が、１つの入力と、第１の状態および第２の状態を有する１つの出力とを有する一揃いの複数の記憶モジュールとを備えており、
該一揃いの複数の記憶モジュールは、それぞれ所定の位数（order）を有し、かつ、２番目の位数の第２のビットに対応する第２の記憶モジュールと、最上位の第３のビットに対応する第３の記憶モジュールとを少なくとも具備し、
該第２の記憶モジュールの入力は、前記加算器の出力に接続され、該第２の記憶モジュールの出力は、前記第２の装置出力に接続され、
該第３の記憶モジュールの入力は、直接または他の記憶モジュールを介して前記第２の記憶モジュールの出力に接続され、該第３の記憶モジュールの出力は、前記第３の装置出力、前記第１の記憶モジュールの１つの入力、および前記加算器の第３の入力に接続され、
前記一揃いの複数の記憶モジュール中の少なくとも１つの記憶モジュールの出力は、該一揃いの複数の記憶モジュールの前記位数の中で次の位数の記憶モジュールの入力に接続されることを特徴とする、２進数の１つのシーケンスを生成する装置。
【請求項２】
前記記憶モジュールの各々が、ラッチからなる請求項１記載の装置。
【請求項３】
前記複数の記憶モジュールの各々に対し第１の一揃いの値をロードするために、少なくも１つの記憶モジュールに接続される第１の装置入力を付加的に備える請求項２記載の装置。
【請求項４】
前記複数の記憶モジュールの各々に対し第２の一揃いの値をロードするために、少なくも１つの記憶モジュールに接続される第２の装置入力を付加的に備える請求項３記載の装置。
【請求項５】
少なくも１つのラッチに接続されるクロック入力を付加的に備える請求項４記載の装置。
【請求項６】
前記第１の記憶モジュールの出力が、最下位のビットに対応し、
前記第２の記憶モジュールの出力が、２番目のビットに対応し、
前記第３の記憶モジュールの出力が、最上位のビットに対応する請求項５記載の装置。
【請求項７】
最下位の第１のビット、２番目の位数の第２のビット、および最上位の第３のビットを有する記憶モジュール内の障害に対するテストを行う方法であって、該方法は、
第１のパターンを生成するステップを有しており、コントロール入力を第１の状態に設定し、第１の一揃いの値をロードし、クロックを付加的に入力することにより前記第１のパターンが生成され、
前記方法は、さらに、
該第１のパターンを前記記憶モジュールに記憶させるステップと、
前記記憶モジュールから前記第１のパターンを検索するステップと、
前記の検索された第１のパターンを、前記の生成された第１のパターンと比較し異なった場合には、前記記憶モジュールが障害を含むことを示すステップと、
前記第１のパターンから少なくとも２ビット分回転可能にシフトすることによって第２のパターンを生成するステップとを有しており、
前記第２のパターンによって、前記第１のパターンのテスト対象の前記記憶モジュールをテストするステップを実行し、異なる乱数シーケンスによりテスト対象の前記記憶モジュールのシーケンスに依存する障害をテストすることによって、テスト対象の前記記憶モジュールのシーケンスに依存する障害をテストすることが可能である、記憶モジュール内の障害に対するテストを行う方法。
【請求項８】
前記第２のパターンが、下記の付加的なステップにより生成され、該ステップは、
最上位の和のビットおよび最下位の和のビットを含む１つの和を生成するために、１つのコントロール入力と、前記第１のパターン内の２つのビットとを加算するステップと、
前記第１のパターン内の複数のビットの１つを、前記最下位の和のビットでもって置き換えるステップとを含む請求項７記載の方法。
【請求項９】
前記の加算するステップにおいて、前記第１のパターン内の前記第１のビットと前記第３のビットとが加算される請求項８記載の方法。
【請求項１０】
前記第１のパターンの中で、前記最下位の和のビットに置き換えられたビットが、前記第１のビットである請求項８記載の方法。
【請求項１１】
前記第２のパターンが、下記のステップにより生成され、該ステップは、最下位の和のビットを含む１つの和を生成するために、１つのコントロール入力と、前記第１のパターン内の２つのビットとを加算するステップと、
前記最下位の和のビットを前記第２のパターンに挿入するステップとを含む請求項７記載の方法。
【請求項１２】
前記の加算するステップにおいて、前記第１のパターン内の前記第１のビットと前記第３のビットとが加算される請求項１１記載の方法。
【請求項１３】
前記最下位の和のビットが、前記第２のパターンの前記第２のビットに挿入される請求項１２記載の方法。
【請求項１４】
一揃いの複数の入力と、一揃いの複数の出力と、最下位の第１のビットと、２番目の位数の第２のビットと、最上位の第３のビットとを有する記憶モジュールに対するテストを行うシステムであって、該システムは、
前記記憶モジュールに書き込むための複数種のパターンを生成するために、前記記憶モジュールの入力に接続される一揃いの複数の出力を有するような回転機能付きのシフトレジスタと、
前記記憶モジュールの一揃いの出力に接続される第１の一揃いの複数の入力と、前記回転機能付きのシフトレジスタの前記一揃いの複数の出力を受信するように接続される第２の一揃いの複数の入力と、１つの出力とを具備する一致検出器とを備えており、
前記回転機能付きのシフトレジスタにおいて、コントロール入力を第１の状態に設定し、第１の一揃いの値をロードし、クロックを付加的に入力することにより第１のパターンが生成され、前記第１のパターンから少なくとも２ビット分回転可能にシフトすることによって第２のパターンが生成され、前記第２のパターンによって、前記第１のパターンのテスト対象の前記記憶モジュールをテストすることによって、テスト対象の前記記憶モジュールのシーケンスに依存する障害をテストすることが可能であり、
前記一致検出器の該１つの出力は、該一致検出器の前記第１の一揃いの入力が、該一致検出器の前記第２の一揃いの入力に等しいときに第１の状態を有し、該一致検出器の前記第１の一揃いの入力が、該一致検出器の前記第２の一揃いの入力に等しくならないときに第２の状態を有することを特徴とする、記憶モジュールに対するテストを行うシステム。
【発明の詳細な説明】
発明の分野
本発明は、マイクロプロセッサの設計に関し、より詳しくは、マイクロプロセッサが自分自身のテストを行えるようなセルフテスト能力（self-test capabilities）に関する。
関連出願の相互参照
本願発明の主題は、下記に掲げる出願の主題と関連している。
出願番号 、「ルック−アップ  テーブルにおける複製エントリを検出する方法および装置」の名称で、Nirmal R. Saxenaによって1995年６月９日に出願、
出願番号 、「メモリアドレッシングエラーを検出する方法および装置」の名称で、Nirmal R. Saxenaによって1995年６月９日に出願、
出願番号 、「並列データプロセッサにおけるアクティブ命令を回転させる方法および装置」の名称で、Sunil Savkar、Michael C. Shebanow、Gene W. ShenおよびFarnad Sajjadianによって1995年６月１日に出願、
出願番号 、「プログラマブル命令トラップシステムおよび方法」の名称で、Sunil Savkar、Gene W. Shen、Farnad SajjadianおよびMichael C. Shebanowによって1995年６月１日に出願、
出願番号08/388,602、「スーパースケーラ  マイクロプロセッサ用命令フロー制御回路」の名称で、Takeshi Kitaharaによって1995年２月14日に出願、
出願番号08/388,389、「格納命令に関して負荷命令を順不同に実行するアドレッシング方法」の名称で、Michael A. SimoneおよびMichael C. Shebanowによって1995年２月14日に出願、
出願番号08/388,606、「名前を付け替えられたレジスタに結果を効率的に書き込む方法および装置」の名称で、DeForest W. Tovey、Michael C. ShebanowおよびJohn Gmuenderによって1995年２月14日に出願、
出願番号08/388,364、「マイクロプロセッサにおける物理レジスタの利用を調整する方法および装置」の名称で、DeForest W. Tovey、Michael C. ShebanowおよびJohn Gmuenderによって1995年２月14日に出願、
出願番号08/390,885「精密な状態を保持するため命令状態をトラッキングするプロセッサ構造および方法」の名称で、Gene W. Shen、John Szeto、Niteen A. PatkarおよびMichael C. Shebanowによって1995年２月14日に出願、
出願番号08/397,810「アドレス変換の高速化のための並列アクセス  マイクロ−ＴＬＢ」の名称で、Chih-Wei David Chang、Kioumars Dawallu、Joel F. Boney、Ming-Ying LiおよびJen-Hong Charles Chenによって1995年３月３日に出願、
出願番号08/397,809「コンピュータシステムにおけるアドレス変換用ルックアサイドバッファ」の名称で、Leon Kuo-Liang Peng、Yolin LinおよびChih-Wei David Changによって1995年３月３日に出願、
出願番号08/397,893、「データプロセッサにおけるプロセッサ資源の再生利用」の名称で、Michael C. Shebanow、Gene W. Shen、Ravi Swami、Niteen A. Patkarによって1995年３月３日に出願、
出願番号08/397,891、「実行準備ができたものから命令を選択する方法および装置」の名称で、Michael C. Shebanow、John Gmuender、Michael A. Simone、John R. F. S. Szeto、Takumi MaruyamaおよびDeForest W. Toveyによって1995年３月３日に出願、
出願番号08/397,911、「不履行命令の高速ソフトウェア  エミュレーション用ハードウェアサポート」の名称で、Shalesh Thusoo、Farnad Sajjadian、Jaspal KohliおよびNiteen A. Patkarによって1995年３月３日に出願、
出願番号08/398,284、「制御転送リターンを加速する方法および装置」の名称で、Akiro Katsuno、Sunil SavkarおよびMichael C. Shebanowによって1995年３月３日に出願、
出願番号08/398,066、「フェッチプログラムカウンタの更新方法」の名称で、Akira Katsuno、Niteen A. Patkar、Sunil SavkarおよびMichael C. Shebanowによって1995年３月３日に出願、
出願番号08/397,910、「コンピュータシステムにおけるエラーの優先化および処理方法および装置」の名称で、Chih-Wei David Chang、Joel Fredrick BoneyおよびJaspal Kohliによって1995年３月３日に出願、
出願番号08/398,151、「制御転送命令の迅速な実行方法および装置」の名称で、Sunil W. Savkarによって1995年３月３日に出願、
出願番号08/397,800、「マイクロプロセッサにおけるゼロビット状態フラッグの生成方法および装置」の名称で、Michael Simoneによって1995年３月３日に出願、
出願番号08/397,912、「パイプライン化読取り−修正−書込みアクセスを備えたＥＣＣ保護メモリ編成」の名称で、Chien ChenおよびYuzhi Luによって1995年３月３日に出願および、
出願番号08/398,299、「精密な状態を保持するため命令状態をトラッキングするプロセッサ構造および方法」の名称で、Chien Chen、John R. F. S. Szeto、Niteen A. Patkar、Michael C. Shebanow、Hideki Osone、Takumi MaruyamaおよびMichael A. Simoneによって1995年３月３日に出願、
参考として、上記の出願の全てを本願発明の全体に亘って取り入れている。
発明の背景
マイクロプロセッサを含む多くの集積回路は、これらの集積回路の機能的な回路に対するテストを行うための回路系を有している。複数のビットを１つのワードとして記憶する集積回路は、上記の機能的な回路のテストに関する特殊な問題を生じさせる。このような集積回路は、ランダムアクセスメモリ（random access memory）等の記憶回路を有すると共に、多くの場合はメモリおよびレジスタ回路の両方を含むマイクロプロセッサを有している。
上記の記憶回路に関連する１つの問題は、この記憶回路に新たなビットの値が書き込まれた後でも、誤ったビットの値を記憶したままでいる傾向が生ずることである。このような問題は、「障害（fault）」として周知になっている。さらに詳しくいえば、上記の問題は、特定の値に縮退される（stuck）１つのビットに起因して発生するか、あるいは、１つまたは２つ以上の相隣り合うビットが、１つまたは２つ以上の特定のパターンに設定された場合に起こるであろう１つまたは２つ以上の相隣り合うビットからの干渉に起因して発生するおそれがある。それゆえに、集積回路においては、複数のビットの種々の組み合わせを同集積回路内の記憶回路に書き込み、さらに、新たに書き込まれたビットの値が正しく記憶されたことを確証するために、上記記憶回路の読出し動作を行うことによって、上記記憶回路に対するテストを行うことが望ましい。
往々にして、上記のような記憶回路内における障害は、検出することが著しく困難になることがある。ここで、上記記憶回路が、パターンＡを受信した後にパターンＢを受信し、さらにその後にパターンＣを受信する場合、各々のパターン自体には障害は存在しない。しかしながら、このパターンＡ、パターンＢおよびパターンＣの組み合わせによって、障害が現れる可能性がある。このため、使用可能性のあるパターンのみを予め定められたシーケンスにて常時書き込むような記憶回路は、発生し得る全ての障害を検出することを考慮していないことになる。それゆえに、種々のシーケンスにて複数種のパターンを生成することが望ましい。
上記問題に対処するための１つのアプローチは、最下位のビットを最上位のビット位置にシフトすると共に、２つの入力を有する排他的論理和（Exclusive-OR）ゲートの一方の入力に向かって最下位のビットをシフトすることを可能にするフィードバック機能を備えているような、右方向に回転可能なシフトレジスタを使用することである。この場合、排他的論理和ゲートの他方の入力は、上記のようにシフトがなされた最上位のビットを受信し、さらに、排他的論理和ゲートの出力は、最上位のビットから２番目のビット位置にシフトする。上記最下位のビット以外の残りのビットは、従来型のシフトレジスタの場合と同様に、１つの位置だけ右方向にシフトする。上記のようなシフトレジスタを含む装置は、同シフトレジスタ内の複数のビットを出力として使用することにより、（２n−１）種のパターンからなる単一のシーケンスを生成する。ここで、ｎはシフトレジスタ内のビットの数を示すものである。しかしながら、上記のようなアプローチでは、単一のシーケンスしか生成することができない。このアプローチは、前述したような理由により望ましくないことになる。
上記問題に対処するための他のアプローチは、選択可能なインバータのステージ（stage）を前述のシフトレジスタの出力に付加することである。上記の選択可能なインバータのステージは、ｎ個の排他的論理和ゲートにより構成される。上記の選択可能なインバータのステージにおいて、付加的に設けられた排他的論理和ゲートの各々は、前述のシフトレジスタの複数の出力の１つに接続されるような一方の入力を有している。また一方で、上記の選択可能なインバータにおける排他的論理和ゲートの各々の他方の入力は、全て一まとめにして接続された状態でコントロール入力に接続されている。このコントロール入力がローレベル（“low”）の値に保持されている場合、排他的論理和ゲートの各々の出力は、前述のシフトレジスタの各々の出力と同じ値を有する。また一方で、上記コントロール入力がハイレベル（“high”）の値に保持されている場合、排他的論理和ゲートの各々の出力は、前述のシフトレジスタの各々の出力と逆の値を有する。このことによって、第２のパターンを生成することが可能になる。
予め定められたサイズの集積回路内の記憶回路が、機能的な回路にとって代わるために、複数種のパターンを生成するためのパターン生成回路はできる限りコンパクトであることが望ましい。さらに、このようなパターン生成回路は、機能的な回路の動作を妨害するおそれがあるので、上記パターン生成回路はできる限り効率的であることが望ましい。
発明の要約
本発明によれば、記憶装置テスト用２進数を生成する装置は、改造された形のシフトレジスタを使用することによって、障害に関するテストを行う際に有効な複数種のパターンからなる多数のシーケンス（multiple sequences）を生成する。これらの複数種のパターンは、シフトレジスタにおける２つのビットと、１つの入力との和から得られる低い位（order）のビットの値でもって、上記パターン内の複数のビットの１つを置き換えることにより生成される。上記の１つの入力は、生成されたパターンを制御するために使用される。また一方で、本発明により記憶装置テスト用２進数を生成するシステムおよび方法では、上記の改造された形のシフトレジスタを使用することによりパターンを生成し、このパターンを記憶装置に書き込み、この記憶装置から上記パターンを読み出し、そして、上記の読み出されたパターンと上記の生成されたパターンとを比較することによって、障害に関するテストを行う。前述の選択可能なインバータのステージを付加することを必要としないような改造された形のシフトレジスタを使用することによって、本発明の装置のスペースを有効に利用すると共に、上記装置を迅速に動作させることが可能になる。
【図面の簡単な説明】
図１Ａおよび図１Ｂは、最上位のビットを最下位のビット位置の方向に回転させるような従来型のシフトレジスタの動作を示すブロック図である。
図２は、最上位のビットを最下位のビット位置に回転させるような従来型のシフトレジスタの構成を概略的に示すブロック図である。
図３は、本発明によるパターンを生成する装置を概略的に示すブロック図である。
図４Ａおよび図４Ｂは、図３の装置におけるシステムコントロール入力の２つの異なる値に対して生成された値を示すテーブルである。
図５は、本発明による記憶装置に対するテストを行う装置を示すブロック図である。
図６は、本発明の方法を示すフローチャートである。
好適な実施例の詳細な説明
ここで用いるシフトレジスタは、記憶装置の障害に関するテストを行うためのパターンを生成するように調整することが可能である。このようにして改造されたシフトレジスタにより生成されるべきパターンは、上記シフトレジスタにより生成された後に記憶装置に書き込まれる。この記憶装置に対し読出し動作がなされた後に、記憶装置の障害に関するテストを行うために、同記憶装置に記憶されているパターンが、読出し動作により予想されるパターンと比較される。
従来型のシフトレジスタは、１つのワード内の複数のビットを右方向または左方向にシフトするために使用される。これらの従来型のシフトレジスタの幾つかは、複数のビットを回転させ、かつ、１つのワード内の複数のビットを、終わりの位置がないような循環形（circle）にて配置されているものとして取り扱う。また一方で、従来型の他のシフトレジスタは、最上位のビットを省略した（drop off）後に最下位のビット位置に特定の値を挿入するか、あるいは、その逆の動作を行う。さらに、従来型のシフトレジスタの幾つかは、複数のビットを右方向または左方向に回転させる機能、および、省略すべきビットを新たな位置に向けて回転させる機能、または、新たな位置に特定の値を挿入する機能のいずれか一方の機能といったような、複数の機能中の２つ以上の機能を遂行する。
図１Ａおよび図１Ｂにおいては、従来型の４ビット回転機能付きのシフトレジスタ１０８の動作が示されている。図１Ａは、シフトレジスタ１０８の複数のビット１１０、１１２、１１４、１１６および１１８の始動位置を示すものである。また一方で、図１Ｂは、シフトレジスタ１３０における複数のビット１２０、１２２、１２４、１２６および１２８を示すものである。これらのビット１２０、１２２、１２４、１２６および１２８の値は、図１Ａの複数のビット１１０、１１２、１１４、１１６および１１８の各々が１つの位置だけシフトした後の同複数のビット１１０、１１２、１１４、１１６および１１８の値にそれぞれ対応する。換言すれば、図１Ａの複数のビット１１０、１１２、１１４、および１１６が示すビット位置は、それぞれ、図１Ｂの複数のビット１２２、１２４、１２６および１２８が示すビット位置にシフトしたことになる。さらに、図１Ａの最下位のビット１１８は、図１Ｂの最上位のビット１２６に向かって回転したことになる。
図２においては、従来型のシフトレジスタとして動作する装置２０８が示されている。ここでは、シフトレジスタ２０８として、４つのデータラッチ２１０、２１２、２１４および２１６が設けられている。このシフトレジスタ２０８は、次のクロックサイクルにおいて、最上位のビットを表す出力２５６を、最下位のビットを表す出力２５０に向けて回転させる。図２では、４つのデータラッチ２１０、２１２、２１４および２１６が図示されているけれども、任意のタイプの記憶用ラッチを使用することが可能である。データラッチ２１０、２１２および２１４のラッチ出力２３０、２３２および２３４は、それぞれ、次の最上位のビットのラッチ入力２２２、２２４および２２６に接続される。最上位のデータラッチ２１６のラッチ出力２３６は、最下位のデータラッチ２１０のラッチ入力２２０に接続される。４つのクロック入力２４０、２４２、２４４および２４６は、一まとめにして接続されており、かつ、同一のクロック入力２０４からのクロックにより駆動される。
後述するように、回転機能付きのシフトレジスタ２０８は、２進数の２つのシーケンスを効率的に生成することができるように改造することが可能である。この場合、各々のシーケンスは、１つの２進数以外の全ての２進数を含んでいる。さらに、各々のシーケンスは、他のシーケンスに対し１の補数になっている。ここでは、所望のシーケンスを選択するために、コントロール入力が設けられている。改造された回転機能付きのシフトレジスタを予めロードすることによって、１つまたは２つ以上の位置で上記シーケンスを始動させることができる。
図２および図３を参照すれば明らかなように、図２の回転機能付きのシフトレジスタ２０８を改造することによって、図３に示す本発明の装置３０８のような一実施例が実現される。図３では、改造された４ビット回転機能付きのシフトレジスタが図示されているが、１よりも大きい任意のビットの数が使用可能である。さらに、図３では、４つのラッチ３１０、３１２、３１４および３１６が、図２に示したような構成と同じ構成、および、前述した記載内容と同じ方式で相互接続されている。ただし、図３では、最下位のラッチ３１０の出力３３０と次の最下位のラッチ３１２の入力３２２との間に加算器が付加されている点が、図２の場合と異なる。ここでは、任意のタイプのラッチまたは加算器が使用可能である。
ある１つの実施例において、加算器３１８は、３つの入力を有する排他的論理和ゲートである。この排他的論理和ゲートは、３つの入力中の奇数個がハイレベルの場合には、その出力がハイレベルになり、それ以外の場合には、その出力がローレベルになる。他の実施例において、加算器３１８は、桁上げ出力を使用しないような一般的な３入力タイプの加算器である。この場合、最下位のラッチのラッチ出力３３０は、加算器３１８における複数の入力中の１つの入力３２８に接続される。加算器３１８の第２の入力３４８は、最上位のラッチ３１６の出力３３６に接続される。加算器３１８の第３の入力３６０は、上記加算器３１８を後述のように使用するために、システムコントロール入力３５８に接続される。
加算器３１８の数および位置は、パターン内を構成する所望のビットの数の関数である。原始多項式ｃ（０）、ｃ（１）、ｃ（２）およびｃ（３）の係数は、４つのラッチ３１０、３１２、３１４および３１６にマッピング（map）される。さらに、この原始多項式の係数が１に等しい場合、加算器３１８は、対応するラッチのラッチ出力と、この対応するラッチに続く次の最下位のラッチのラッチ入力との間に挿入される。このような加算器の各々は、対応するラッチのラッチ出力と、最上位のラッチ３１６の出力と、システムコントロール入力３５８とを受け入れる。W.W.Peterson（ダブリュ．ダブリュ．ピーターソン）およびE.J.Weldon Jr.（イー．ジェイ．ウェルドン  ジュニア）著の「エラー訂正コード（Error-Correcting Codes）」（ＭＩＴ定期刊行物（MIT Press）の第２版，１９８４年発行）において、原始多項式の係数が記述されている。次の表１は、３２ビットまでのビットに対し、ラッチ１からラッチｎまでの間における複数の加算器の位置を記載したものである。
0003849884.tif 000002
図３は、４ビットのパターンの例を示すものである。さらに、上記の表１に示すように、単一の加算器３１８は、ラッチ１（図３では、ラッチ３１０）の出力と、次の最下位のラッチ３１２との間に挿入される。
４つのラッチ３１０、３１２、３１４および３１６は、始動パターンになるように予めロードすることが可能である。ある１つの実施例において、最下位のラッチ３１０にて予め“０”の値をロードすると共に、残りのラッチ３１２、３１４および３１６にて予め“１”の値をロードするために、入力３０２がローレベルの値に保持される。また一方で、最下位のラッチ３１０にて予め“１”の値をロードすると共に、残りのラッチ３１２、３１４および３１６にて予め“０”の値をロードするために、システム入力３０６を使用することが可能である。上記のような値がラッチ３１０、３１２、３１４および３１６にロードされた後、システムコントロール入力３５８は、ハイレベルまたはローレベルのいずれか一方の値に保持される。また一方で、クロック入力３０４からのクロックは、所望のシーケンスを生成するために、“１”と“０”との間でディジタル式に振動する。
図３および図４Ａを参照すれば明らかなように、図４Ａは、クロックサイクル０（４１０）において入力３０２が瞬間的にローレベルの値に保持されると共に、シーケンスの期間中、システムコントロール入力３５８がハイレベルに保持される場合に、連続的なクロックサイクルの各々における出力３５０、３５２、３５４および３５６の値を示すものである。また一方で、図３および図４Ｂを参照すれば明らかなように、図４Ｂは、シーケンスの期間中、システムコントロール入力３５８がローレベルに保持されると共に、サイクル０（４５０）において入力３０６が瞬間的にローレベルの値に保持される場合に、連続的なクロックサイクルの各々における出力３５０、３５２、３５４および３５６の値を示すものである。
図４Ａおよび図４Ｂにおいては、１６種の可能なビットパターン中の１５種のビットパターンが生成される。１４回目のサイクルにて生成される最終のパターン４１４および４５４は、それぞれ、０回目のサイクルにおける初期パターン４１０および４５０に等しくなるので、１５回目のサイクルでは、これまでのシーケンスが繰り返されることになる。
このようにして上記シーケンスが繰り返されるために、本発明は、任意のパターンをシーケンスの「開始点（start）」にすることが可能である。ただし、全てのビットがシステムコントロール入力に等しいようなパターン、すなわち、図４Ａでは“００００”のパターンになり、図４Ｂでは“１１１１”のパターンになるような欠落パターン（missing patterns）は、シーケンスの開始点の対象から除外することとする。
ここでは、単一または２種以上のパターンを一般的な記憶装置に書き込んだり、上記パターンを書込み直後に読み出したり、当該記憶装置が障害の影響を受け易いか否かを判断するために、読み出されたパターンと当該記憶装置に書き込まれたパターンとを比較したりすることが可能である。
図５においては、記憶装置５１０に対するテストを行うためのシステム５０６が示されている。前述のようなシーケンスの開始点に位置する始動シーケンスを提供することによって、改造された回転機能付きのシフトレジスタのパターン生成装置５０８が、ビットライン５１６上でパターンを生成する。これらのビットライン５１６は、読出し／書込み用入力５１２が書込み動作用として要求されている場合、パターン記憶用の記憶装置５１０の入力５２２に接続される。また一方で、読出し／書込み用入力５１２が読出し動作用として要求されている場合、記憶装置５１０に記憶されている複数のビットが、出力ライン５２４上に駆り出される。これらの出力ライン５２４は、一致検出器（equality detector）５１４に接続されている。この一致検出器５１４は、ビットに関していえば入力５２６が入力（出力ライン）５２４に一致しないときに、出力ライン５２０の使用を要求するものである。上記の読出し／書込み用入力５１２が読出し動作用として要求された場合、ビットライン５１６が依然として有効であるときには、一致検出器の検出結果は、記憶装置５１０が、それに書き込まれたものを正しく記憶しているか否かを検査することに相当する。もし、読出し／書込み用入力５１２が、クロック５２８と同じ周波数でもってディジタル式に振動するならば、システムコントロール入力が特定の値に保持されているという条件の下で、記憶装置５１０に対して種々のパターンによるテストが行われる。さらに、システムコントロール入力５１８を、上記特定の値と逆の値に設定することによって、上記のようなテストを繰り返すことが可能である。この場合、記憶装置５１０に対するテストを行うための他の揃いのパターンが生成されることになる。
図６においては、Ｎビットからなるワードを対象とする本発明の方法の一実施例が示されている。図６のフローチャートのステップ６０６において、コントロール入力と最下位のビットとが等しくなるように初期化がなされる。次に、ステップ６０８において、最下位のビット以外の残りの各々のビットが、最下位のビットと逆の値に等しくなるように初期化がされる。これらの初期化のステップ６０６および６０８は、上記の手順とは逆の順序にて遂行することも可能である。さらに、ステップ６１０において、２ビット目のビットから（Ｎ−１）ビット目のビットまでの全てのビットが、次の最高のビット位置に転送される。さらに、ステップ６１２において、最上位のビットが、最下位のビット位置に転送される。ここで、ステップ６１４に示すように、上記の最上位のビット、上記の最下位のビット、およびコントロール入力が加算され、この加算結果として生ずる低い位の和のビットが、２ビット目のビット位置に配置される。
ステップ６１６において、上記のようにして生成されたワードが、テストの対象となる記憶装置に書き込まれる。さらに、ステップ６１８において、上記のようにして書き込んだワードが記憶装置から読み出される。その後、ステップ６２０において、記憶装置から読み出されたワードが、上記の書き込んだワードと比較される。ステップ６２２において、これらの２つのワードが互いに異なることは、障害が発生したことを示す。この障害が検出された後、上記の方法を継続させることもできるし、継続させないようにすることもできる。ここでは、ステップ６２４に示すように、障害がない場合、および障害が存在する場合のいずれの場合でも、シーケンスの終りに向かって、上記のような処理の結果として生ずるワードに関するテストが遂行される。ビットに関していえば、１つの実施例においては、上記ワード内のビットが、ステップ６０６および６０８における初期化が行われたときのワードのビットと逆の関係になったときに、シーケンスの終りに到達する。シーケンスの終りに到達していない場合、６３０の部分に示すように、ステップ６１０からステップ６２４までの処理が繰り返される。シーケンスの終りに到達した場合、１つの実施例では、ステップ６２８にて本発明の方法が完了する。他の実施例では、ステップ６２４においてシーケンスの終りには決して到達しないかのように処理することにより、本発明の方法を継続させることもできる。
【図１Ａ】
0003849884.tif 000003
【図１Ｂ】
0003849884.tif 000004
【図２】
0003849884.tif 000005
【図３】
0003849884.tif 000006
【図４Ａ】
0003849884.tif 000007
【図４Ｂ】
0003849884.tif 000008
【図５】
0003849884.tif 000009
【図６】
0003849884.tif 000010