(57)【特許請求の範囲】
【請求項１】
複数段のスキャン記憶素子を直列に接続したスキャン記憶素子群と、
入力端と前記スキャン記憶素子群の入力側との間に設けられ、エンドコードを保持するエンドコードレジスタと、
出力端と前記スキャン記憶素子群の出力側の間に設けられ、スタートコードを保持するスタートコードレジスタと、
前記スキャン記憶素子群と前記エンドコードレジスタと前記スタートコードレジスタとをシフト動作させ、前記出力端にスキャンデータを出力するスキャン制御回路とを有する
ことを特徴とする半導体集積回路装置。
【請求項２】
前記スキャン制御回路は、前記入力端からの前記スタートコードを前記スタートコードレジスタに書き込み、前記入力端からの前記エンドコードを前記エンドコードレジスタに書き込む
ことを特徴とする請求項１の半導体集積回路装置。
【請求項３】
前記スキャン記憶素子群は複数段のスキャン記憶素子を直列接続した複数のブロックを有し、
前記スキャン制御回路は、単一チェーン指示に応じて、前記複数のブロックを直列接続し、個別チェーンの指示に応じて、指定されたブロックを前記エンドレジスタ及びスタートレジスタに接続する
ことを特徴とする請求項１の半導体集積回路装置。
【請求項４】
複数段のスキャン記憶素子を直列に接続したスキャン記憶素子群をシフト動作させ、前記スキャン記憶素子のデータを収集する制御方法において、
入力端と前記スキャン記憶素子群の入力側との間に設けられ、エンドコードを保持するエンドコードレジスタと、出力端と前記スキャン記憶素子群の出力側の間に設けられ、スタートコードを保持するスタートコードレジスタと、前記スキャン記憶素子群とをシフト動作する工程と、
前記出力端にスキャンデータを出力する工程とを有する
ことを特徴とする半導体集積回路装置の制御方法。
【請求項５】
情報処理を行う半導体集積回路を有する処理装置と、
前記処理装置を監視するシステム制御装置とを有し、
前記半導体集積回路は、
前記情報処理を実行する機能回路と、
複数段のスキャン記憶素子を直列に接続したスキャン記憶素子群と、
前記システム制御装置と接続された入力端と前記スキャン記憶素子群の入力側との間に設けられ、エンドコードを保持するエンドコードレジスタと、
前記システム制御装置に接続された出力端と前記スキャン記憶素子群の出力側の間に設けられ、スタートコードを保持するスタートコードレジスタと、
前記スキャン記憶素子群と前記エンドコードレジスタと前記スタートコードレジスタとをシフト動作させ、前記出力端にスキャンデータを出力するスキャン制御回路とを有する
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置、その制御方法及び情報処理装置に関する。
【背景技術】
【０００２】
半導体集積回路（Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）の集積度の向上に伴い、半導体集積回路は多数の回路素子を搭載している。特に、大規模集積回路（ＬＳＩ：Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）は数十万、数百万の回路素子を搭載している。大規模集積回路（以下、ＬＳＩという）の機能試験は、内部回路の調査、解析及び確認を行うために有効である。【０００３】
バウンダリスキャンテスト（Ｂｏｕｎｄａｒｙ  Ｓｃａｎ  Ｔｅｓｔ）はＬＳＩの内部回路の動作テストやプリント基板にＬＳＩを実装した後のボードテストとして利用されている。ＩＥＥＥ１１４９．１（ＩＥＥＥ：Ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃ  Ｅｎｇｉｎｅｅｒｓ，  Ｉｎｃ．）で企画されたＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）によるテスト方法はバウンダリスキャンテストの代表例である。【０００４】
図１４はＪＴＡＧによるスキャンテストの構成図である。図１５は図１４の制御信号のタイムチャート図である。図１４に示すように、テスト対象ロジック回路２００は複数のフリップフロップ回路（Ｆｌｉｐ  Ｆｌｏｐ  Ｃｉｒｃｕｉｔ）２００−１〜２００−Ｍにより構成されている。これらのフリップフロップ回路（以下、ＦＦという）２００−１〜２００−Ｍは直列接続される（スキャンチェーンという）。このＦＦはセル（Ｃｅｌｌ）の一種であり、一般に、シフトレジスタとラッチ回路とを有する。【０００５】
ＪＴＡＧスキャン方法はテストロジック回路２００に対しテスト専用のパスを設ける。外部装置からの信号線はＴＤＩ（Ｔｅｓｔ  Ｄａｔａ  Ｉｎ）、ＴＤＯ（Ｔｅｓｔ  Ｄａｔａ  Ｏｕｔ）、ＴＣＫ（Ｔｅｓｔ  Ｃｌｏｃｋ）、ＴＭＳ（Ｔｅｓｔ  Ｍｏｄｅ  Ｓｅｌｅｃｔ）、ＴＲＳＴ（Ｔｅｓｔ  Ｒｅｓｅｔ）である。ＴＤＩはテストロジック回路２００（２００−１〜２００−Ｍ）に対して命令やデータをシリアル入力する信号である。ＴＤＯはテストロジック回路２００（２００−１〜２００−Ｍ）からのデータをシリアル出力する信号である。【０００６】
ＴＣＫはテストロジック回路２００（２００−１〜２００−Ｍ）にクロックを供給する。ＴＭＳはテスト動作を制御する信号である。ＴＲＳＴはＴＡＰ（Ｔｅｓｔ  Ａｃｃｅｓｓ  Ｐｏｒｔ）コントローラ２１０（後述する）を非同期に初期化する信号である。【０００７】
ＴＡＰコントローラ２１０は取り込み（キャプチャ（Ｃａｐｔｕｒｅ））、シフト（Ｓｈｉｆｔ）、更新（アップデート（Ｕｐｄａｔｅ））を主要動作とするステートマシンである。ＴＡＰコントローラ２１０は信号線ＴＭＳを介するモード指定起動を受ける。そして、ＴＡＰコントローラ２１０は、図示しない命令レジスタにＴＤＩからのモード命令をセットする。【０００８】
ＴＡＰコントローラ２１０は図１５に示すようなシフトクロックｄａｃｋ，ｄｂｃｋを各ＦＦ２００−１〜２００−Ｍに供給する。このシフトクロックｄａｃｋ、ｄｂｃｋにより、各ＦＦ２００−１〜２００−Ｍはデータのシフトレジスタへの取り込み、シフトレジスタの内容の出力、ラッチ回路への固定を行う。【０００９】
ＴＡＰコントローラ２１０はＦＦ２００−１〜２００−Ｍにシフトクロックｄａｃｋ、ｄｂｃｋを供給し、データを順次次段のＦＦ２００−２〜２００−Ｍにシフトし、信号線ＴＤＯから出力し、スキャンテストしていた。【００１０】
一方、半導体集積回路自体のテスト方法として、テスト装置がシリアルテストパターンを多段のＦＦで構成されたロジック回路に入力し、ロジック回路の出力を取り込み、入力したシリアルテストパターンが得られるかを判定していた。この方法は半導体集積回路の出荷前にロジック回路内の各ＦＦの動作自体が正常であるかを試験する方法として有効である。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】日本特許公開２００６−１７０９６３号公報
【特許文献２】日本特許公開２００７−２２５５１４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
バウンダリスキャンテスト（Ｂｏｕｎｄａｒｙ  Ｓｃａｎ  Ｔｅｓｔ）はＬＳＩの内部回路の動作テストやプリント基板にＬＳＩを実装した後のボードテストに有効であり、ＬＳＩの機能試験であるデバッグ（ｄｅｂｕｇ）に利用されている。デバッグはある機能試験を実行した後に内部回路の調査、解析及び確認を行う。このため、ＦＦ２００−１〜２００−Ｍの保持しているデータを取り出すことが有効である。【００１３】
スキャンテストは単にＦＦ２００−１〜２００−Ｍの保持しているデータを取り出していたため、数十万もの回路素子の保持データを解析するのは難しい。例えば、ＬＳＩ機能試験の初期段階においては、スキャンが正常に実行されたか否か、又、取得したデータが正しいか否かの正誤判断が必要である。この正誤判断は長時間の工数を必要とする。例えば、１か所でもＦＦ間の断線やＦＦの動作の不良があると、取得したデータから故障個所を判断するために長時間の解析が必要である。【００１４】
又、テスト装置からシリアルテストパターンをロジック回路へ入力する方法はＦＦ２００−１〜２００−Ｍの保持しているデータを無視するため、ＬＳＩのデータの正誤判断が困難である。【００１５】
本発明の目的は、チェーン接続されたスキャン記憶素子からのスキャンデータの正誤を容易に判断できる半導体集積回路装置、その制御方法及び情報処理装置を提供することにある。
【課題を解決するための手段】
【００１６】
この目的の達成のため、開示の半導体集積回路装置は、複数段のスキャン記憶素子を直列に接続したスキャン記憶素子群と、入力端と前記スキャン記憶素子群の入力側との間に設けられ、エンドコードを保持するエンドコードレジスタと、出力端と前記スキャン記憶素子群の出力側の間に設けられ、スタートコードを保持するスタートコードレジスタと、前記スキャン記憶素子群と前記エンドコードレジスタと前記スタートコードレジスタとをシフト動作させ、前記出力端にスキャンデータを出力するスキャン制御回路とを有する。【００１７】
又、開示の半導体集積回路装置の制御方法は、複数段のスキャン記憶素子を直列に接続したスキャン記憶素子群をシフト動作させ、前記スキャン記憶素子のデータを収集する制御方法において、入力端と前記スキャン記憶素子群の入力側との間に設けられ、エンドコードを保持するエンドコードレジスタと、出力端と前記スキャン記憶素子群の出力側の間に設けられ、スタートコードを保持するスタートコードレジスタと、前記スキャン記憶素子群とをシフト動作する工程と、前記出力端にスキャンデータを出力する工程とを有する。【００１８】
更に、開示の情報処理装置は、情報処理を行う半導体集積回路を有する処理装置と、前記処理装置を監視するシステム制御装置とを有し、前記半導体集積回路は、前記情報処理を実行する機能回路と、複数段のスキャン記憶素子を直列に接続したスキャン記憶素子群と、前記システム制御装置と接続された入力端と前記スキャン記憶素子群の入力側との間に設けられ、エンドコードを保持するエンドコードレジスタと、前記システム制御装置に接続された出力端と前記スキャン記憶素子群の出力側の間に設けられ、スタートコードを保持するスタートコードレジスタと、前記スキャン記憶素子群と前記エンドコードレジスタと前記スタートコードレジスタとをシフト動作させ、前記出力端にスキャンデータを出力するスキャン制御回路とを有する。
【発明の効果】
【００１９】
スキャン記憶素子群の入力段にエンドコードレジスタを、出力段にスタートコードレジスタを設け、スキャンするため、スキャンされたデータにスタートコードとエンドコードが含まれているかを判別して、スキャンデータの正誤を容易に判断できる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態のデバッグシステムの構成図である。
【図２】図１の構成の半導体集積回路装置のブロック図である。
【図３】図２の収集データの説明図である。
【図４】図２の他の収集データの説明図である。
【図５】比較例の収集データ解析の説明図である。
【図６】比較例の収集データのポイント解析の説明図である。
【図７】図２の収集データによる解析例の説明図である。
【図８】図２の収集データによる他の解析例の説明図である。
【図９】図２で記載したチェーン制御回路及びスキャン記憶素子群のブロック図である。
【図１０】図９の選択回路の選択倫理の説明図である。
【図１１】図１０の選択回路の選択条件の説明図である。
【図１２】図９の構成による障害個所の特定方法の説明図である。
【図１３】図１及び図２のデバッグシステムを適用した情報処理装置の実施の形態のブロック図である。
【図１４】従来のスキャンテストの説明図である。
【図１５】従来のスキャンテストのシフトクロックの説明図である。
【発明を実施するための形態】
【００２１】
以下、実施の形態の例を、デバッグシステム、半導体集積回路装置、半導体集積回路装置の制御方法、障害個所の特定方法、情報処理装置、他の実施の形態の順で説明するが、開示の半導体集積回路装置、情報処理装置は、この実施の形態に限られない。
【００２２】
（デバッグシステム）
図１は、実施の形態のデバッグシステムの構成図である。図２は、図１の半導体集積回路装置のブロック図である。以下、デバッグシステムをＪＴＡＧ規格のシステムの例で説明する。図１に示すように、デバッグ対象の半導体集積回路装置（以下、ＬＳＩという）１０とＪＴＡＧコネクタ１２とが回路基板（以下、ボードという）１に搭載されている。ボード１のＪＴＡＧコネクタ１２は専用ケーブル（信号線）３４を介しホストコンピュータ３に設けられたＪＴＡＧコントローラボード３０に接続する。
【００２３】
ＬＳＩ１０は内部ロジック回路５とスキャン記憶素子群６とＴＡＰコントローラ４とを有する。スキャン記憶素子群６はチェーン接続された多数のスキャン記憶素子６０を有する。内部ロジック回路５は、種々の機能を実行する論理回路で構成され、例えば、演算処理装置やメモリコントローラである。スキャン記憶素子６０は、内部ロジック回路５の各部のデータを保持する記憶素子で構成され、例えば、シフトレジスタとラッチ回路とを有するフリップフロップ回路で構成される。
【００２４】
専用ケーブル３４はＴＤＩ（Ｔｅｓｔ  Ｄａｔａ  Ｉｎ）、ＴＤＯ（Ｔｅｓｔ  Ｄａｔａ  Ｏｕｔ）、ＴＣＫ（Ｔｅｓｔ  Ｃｌｏｃｋ）、ＴＭＳ（Ｔｅｓｔ  Ｍｏｄｅ  Ｓｅｌｅｃｔ）、ＴＲＳＴ（Ｔｅｓｔ  Ｒｅｓｅｔ）の各信号線を有する。ＴＤＩはスキャン記憶素子（以下、ＦＦという）６０に対して命令やデータをシリアル入力する入力信号線である。ＴＤＯはＦＦ６０からのデータをシリアル出力する出力信号線である。
【００２５】
ＴＣＫ信号線はＴＡＰコントローラ４にクロックを供給する。ＴＭＳ信号線はＴＡＰコントローラ４にテスト動作を制御する信号線である。ＴＲＳＴ信号線はＴＡＰコントローラ４を非同期に初期化する信号線である。ＴＡＰコントローラ４は取り込み（キャプチャ（Ｃａｐｔｕｒｅ））、シフト（Ｓｈｉｆｔ）、更新（アップデート（Ｕｐｄａｔｅ））を主要動作とするステートマシンである。
【００２６】
ホストコンピュータ３は図示しない演算処理装置とＪＴＡＧコントローラボード３０とメモリ３２とを有する。ＪＴＡＧコントローラボード３０はＪＴＡＧコントローラを搭載する。ＪＴＡＧコントローラは専用ケーブル３４を介しコネクタ１２とシリアルデータの入出力の制御を行い、且つＴＭＳ信号、ＴＣＫ信号を制御する。
【００２７】
このように、ＬＳＩ１０をボード１に搭載した状態で、ホストコンピュータ３がＬＳＩ１０の機能試験を行う。この機能試験の初期段階でＬＳＩ１０内部のＦＦ６０をスキャンし、ＦＦ６０のデータを収集する。収集データはホストコンピュータ３のメモリ３２に格納される。このメモリ３２の収集データを出力し、出力から収集データの正誤判定や故障個所の発見等に利用する。
【００２８】
（半導体集積回路装置）
図２は図１のＴＡＰコントローラ４、スキャン記憶素子群６及び制御回路のブロック図である。
【００２９】
図２において、図１で示したものと同一のものは同一の記号で示してある。図２に示すように、インストラクションレジスタ（Ｉｎｓｔｒｕｃｔｉｏｎ  ｒｅｇｉｓｔｅｒ）７０とデータスキャンチェーン選択回路（Ｄａｔａ  Ｓｃａｎ  Ｃｈａｉｎ  Ｓｅｌｅｃｔ  Ｂｌｏｃｋ）７２とチェーン制御回路（Ｃｈａｉｎ  Ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ）７４とデータ設定回路７６とがＴＡＰコントローラ（図ではＳｃａｎ  Ｃｎｔｌ  Ｂｌｏｃｋと記す）４とスキャン記憶素子群６との間に設けられる。
【００３０】
インストラクションレジスタ７０はシフトレジスタで構成され、ＴＤＩ信号線からの命令（例えば、モード命令）を格納する。データスキャンチェーン選択回路７２はインストラクションレジスタ７０の命令に応じて、信号ｕｎｉ＿ｃｈａｉｎ＿ｓｅｌと信号Ａ−Ｅ＿ｃｈａｉｎ＿ｓｅｌによって、ユニチェーン又はユーザーチェーンをチェーン制御回路７４に指示する。
【００３１】
スキャン記憶素子群６は複数のブロック６Ａ、６Ｂ、６Ｃ、６Ｄ，６Ｅに分割される。各ブロック６Ａ、６Ｂ、６Ｃ、６Ｄ，６Ｅはチェーン接続された多数のＦＦ６０を有する。各ブロック６Ａ、６Ｂ、６Ｃ、６Ｄ，６Ｅはチェーン制御回路７４に接続され、入力Ａｓｉ、Ｂｓｉ，Ｃｓｉ，Ｄｓｉ，Ｅｓｉをチェーン制御回路７４から受け、出力Ａｓｏ、Ｂｓｏ，Ｃｓｏ，Ｄｓｏ，Ｅｓｏをチェーン制御回路７４に出力する。
【００３２】
データスキャンチェーン選択回路（Ｄａｔａ  Ｓｃａｎ  Ｃｈａｉｎ  Ｓｅｌｅｃｔ  Ｂｌｏｃｋ）７２からユニチェーン（ｕｎｉ−ｃｈａｉｎ）が指示された時は、チェーン選択回路７４は各ブロック６Ａ、６Ｂ、６Ｃ、６Ｄ，６Ｅを全て接続し、各ブロックのＦＦ６０のデータをシフトする。ユーザーチェーン（ｕｓｅｒ  Ｃｈａｉｎ）が指示された時は、チェーン選択回路７４はブロック６Ａ、６Ｂ、６Ｃ、６Ｄ，６Ｅ毎に各ＦＦ６０のデータをシフトする。ユニチェーンとはユーザーチェーン（各ブロック）を全て接続し、１本のチェーンにしたものである。
【００３３】
又、データ設定回路７６は、スタートコードレジスタ８０とエンドコードレジスタ８２とバイパス設定レジスタ８８とデータレジスタ８６とアドレスレジスタ８４とアドレスデコーダ９０とを有する。スタートコードレジスタ８０とエンドコードレジスタ８２とバイパス設定レジスタ８８とデータレジスタ８６とアドレスレジスタ８４とが各々シフトレジスタで構成される。
【００３４】
スタートコードを保持するスタートコードレジスタ８０がチェーン制御回路７４と出力信号線ＴＤＯとの間に設けられる。エンドコードを保持するエンドコードレジスタ８２がチェーン制御回路７４と入力信号線ＴＤＩとの間に設けられる。バイパス設定レジスタ８８はバイパスすべきブロック（チェーン）を指定するデータを保持し、チェーン制御回路７４に接続する。
【００３５】
データレジスタ８６は入力信号線ＴＤ１からのデータ（スタートコード、エンドコード、バイパス設定データ）を保持し、スタートコードレジスタ８０，エンドコードレジスタ８２，及びバイパス設定レジスタ８８の各々に書き込む。アドレスレジスタ８４は入力信号線ＴＤ１からのアドレス（スタートコードレジスタアドレス、エンドコードレジスタアドレス、バイパス設定データレジスタアドレス）を保持する。アドレスデコーダ９０はアドレスレジスタ８４のアドレスをデコードし、スタートコードレジスタ８０，エンドコードレジスタ８２，及びバイパス設定レジスタ８８の各々に書き込む指示を出力する。
【００３６】
この構成により、スキャン時にスタートコードレジスタ８０のスタートコードが最初に出力信号線ＴＤＯに出力（シフトアウトという）される。又、スキャン時にエンドコードレジスタ８２のエンドコードが最後に信号線ＴＤＯにシフトアウトされる。チェーン制御回路７４はバイパス設定レジスタ８８のバイパス設定データにより「１」を設定されたチェーン（ブロック）をバイパスする。尚、データレジスタ８６とアドレスレジスタ８４とはスキャン時のみアクセス可能なレジスタである。
【００３７】
（半導体集積回路装置の制御方法）
図２を用いて、スタートコードレジスタ８０，エンドコードレジスタ８２，及びバイパス設定レジスタ８８へのデータの設定動作を説明する。先ず、ＴＡＰコントローラ４は、インストラクションレジスタ７０にアドレスレジスタ選択のコードを設定する。即ち、ＴＡＰコントローラ４は信号線ＴＭＳからのモード指示を受け、インストラクションレジスタ７０にシフトクロックｉａｃｋ，ｉｂｃｋを供給する。インストラクションレジスタ７０は供給されたクロックｉａｃｋ，ｉｂｃｋにより入力信号線ＴＤＩの入力データ（アドレスレジスタ選択のコード）を取り込む（スキャンインする）。
【００３８】
次に、ＴＡＰコントローラ４は、アドレスレジスタ８４にスタートコードレジスタ８０，エンドコードレジスタ８２，及びバイパス設定レジスタ８８のライトアドレスを設定する。即ち、ＴＡＰコントローラ４はデータスキャンチェーン選択回路７２にシフトクロックｄａｃｋ，ｄｂｃｋを供給する。データスキャンチェーン選択回路７２は、インストラクションレジスタ７０の命令コードｉｒにより、アドレスレジスタ８４にシフトクロックｊｉｒ＿ａｃｋとｊｉｒ＿ｂｃｋとを供給する。アドレスレジスタ８４は供給されたシフトクロックｊｉｒ＿ａｃｋとｊｉｒ＿ｂｃｋとにより入力信号線ＴＤＩの入力データ（各レジスタのアドレスデータ）を取り込む（スキャンインする）。
【００３９】
更に、ＴＡＰコントローラ４はインストラクションレジスタ７０にデータレジスタ選択のコードを設定する。即ち、ＴＡＰコントローラ４は信号線ＴＭＳからのモード指示を受け、インストラクションレジスタ７０にシフトクロックｉａｃｋ，ｉｂｃｋを供給する。インストラクションレジスタ７０は供給されたシフトクロックｉａｃｋ，ｉｂｃｋにより入力信号線ＴＤＩの入力データ（データレジスタ選択のコード）を取り込む（スキャンインする）。
【００４０】
次に、ＴＡＰコントローラ４は、データレジスタ８６にスタートコードレジスタ８０，エンドコードレジスタ８２，及びバイパス設定レジスタ８８のライトデータを設定する。即ち、ＴＡＰコントローラ４はデータスキャンチェーン選択回路７２にシフトクロックｄａｃｋ，ｄｂｃｋを供給する。データスキャンチェーン選択回路７２は、インストラクションレジスタ７０の命令コードｉｒにより、データレジスタ８６にシフトクロックｊｄｒ＿ａｃｋとｊｄｒ＿ｂｃｋとを供給する。データレジスタ８６は供給されたシフトクロックｊｄｒ＿ａｃｋとｊｄｒ＿ｂｃｋとにより入力信号線ＴＤＩの入力データ（各レジスタのライトデータ）を取り込む（スキャンインする）。
【００４１】
ＴＡＰコントローラ４はデータレジスタ８６へのシフト終了後に更新信号（ｕｐｄａｔｅ）をスタートコードレジスタ８０，エンドコードレジスタ８２，及びバイパス設定レジスタ８８の各々に発行する。アドレスデコーダ９０はアドレスレジスタ８４に保持されたレジスタアドレスをデコードし、スタートコードレジスタ８０，エンドコードレジスタ８２，及びバイパス設定レジスタ８８の各々に選択信号を供給しているため、当該スタートコードレジスタ８０，エンドコードレジスタ８２，及びバイパス設定レジスタ８８にデータレジスタ８６に保持された対応するライトデータが書き込まれる。
【００４２】
次に、スタートコードレジスタ８０，エンドコードレジスタ８２，及びバイパス設定レジスタ８８への設定後のスキャン動作を説明する。先ず、ユニチェーンモードによる全ＦＦのスキャンを行う場合を説明する。ＴＡＰコントローラ４は信号線ＴＭＳからのモード指示を受け、インストラクションレジスタ７０にシフトクロックｉａｃｋ，ｉｂｃｋを供給する。インストラクションレジスタ７０は供給されたシフトクロックｉａｃｋ，ｉｂｃｋにより入力信号線ＴＤＩの入力データ（ユニチェーンモード選択のコード）を取り込む（スキャンインする）。
【００４３】
ＴＡＰコントローラ４はデータスキャンチェーン選択回路７２にシフトクロックｄａｃｋ，ｄｂｃｋを供給する。データスキャンチェーン選択回路７２はインストラクションレジスタ７０の命令コードｉｒによりユニチェーン指示を認識し、スキャン記憶素子群６にシフトクロックA-E_ackとA-E_bckを供給し、スタートコードレジスタ８０とエンドコードレジスタ８２にシフトクロックａｃｋとｂｃｋを供給する。データスキャンチェーン選択回路７２はチェーン制御回路７４にユニチェーン選択信号（ここでは、信号Ａ−Ｅ＿ｃｈａｉｎ＿ｓｅｌがオフ「０」）を発行する。
【００４４】
スキャン記憶素子群６の各ＦＦ６０は供給されたシフトクロックＡ−Ｅ＿ａｃｋとＡ−Ｅ＿ｂｃｋによりシフト動作し、チェーン制御回路７４を介し出力信号線ＴＤＯへデータをスキャンイン、アウトする。この時、スキャンされたデータは前述のスタートコードレジスタ８０を介し出力信号線ＴＤＯに送出されるため、スキャンされたデータの先頭にスタートコードが付加される。又、エンドコードレジスタ８２のエンドコードがチェーン制御回路７４を介しスキャン記憶素子群６の先頭のＦＦ６０に入力されるため、スキャンされたデータの最後にエンドコードが付加される。
【００４５】
スタートコードとエンドコードが付加されたスキャンデータは出力信号線ＴＤＯから専用ケーブル３４を介しホストコンピュータ３のＪＴＡＧコントロールボード３０に送られ、メモリ３２に格納される（図１参照）。
【００４６】
図３は図２の収集データの説明図である。図４は図２の他の収集データの説明図である。図５は比較例の収集データ解析の説明図である。図６は比較例の収集データ解析の他の説明図である。図７は図２の収集データによる解析例の説明図である。図８は図２の収集データによる他の解析例の説明図である。
【００４７】
図３に示すようにメモリ３２のスキャンデータは先頭にスタートコード、最後尾にエンドコードを備える。このメモリ３２上のスキャンデータを出力する。デバッグ担当者は、出力結果を見て、予め設定したスタートコードとエンドコードとが含まれていれば、その間のスキャンデータは正しいと判断できる。
【００４８】
又、スタートコードとエンドコードは任意の値に設定できる。図４に示すように、スキャンデータは任意であるため、スキャンデータ中において、スタートコード（「０００１００１０」）とエンドコード（「００１１０１００」）の前後に似た値（「０００１００１０」）（「００１１０１００」）があると判断が困難となる。このような場合に、１度スキャンした後、判読困難である場合には、スタートコードとエンドコードの前後の似た値と異なる値のスタートコード（「０００１０１１０」）とエンドコード（「００１１０１００」）に設定し直し、再度スキャンデータを得る。これにより、スキャン記憶素子群６の保持しているデータ値に拘わらず、デバッグ担当者は、出力結果を見て、予め設定したスタートコードとエンドコードとが含まれていれば、その間のスキャンデータは正しいと判断できる。
【００４９】
一方、図５の比較例で示すように、ＬＳＩ２００のスキャンは直列でデータがシフトするため、一か所でも故障（図の×印の断線）があると、故障個所以降のデータは不正なデータとなる。即ち、収集したデータを格納したメモリＭＥＭの内容を出力しても、図５の「Ｘ」印で示すように、故障個所以降のデータは不正なデータとなる。このため、全データ（例えば、数十万ビット）中のポイント個所のみの確認では、正誤判定に不十分である。また、多くのポイントを確認し、調査するには、数日かかる場合もあり効率が悪い。
【００５０】
例えば、図６に比較例のポイント個所による正誤判定の例を示す。メモリＭＥＭに保存されたスキャンデータ（「１０１…」）の一部をスキャンページに展開する（図６の（１））。即ち、解析ツール（プログラム）を実行して、スキャンページ上にスキャンデータのポイント個所のデータ（図では８ビット）をレジスタ単位（Ａ−ＲＥＧ、Ｂ−ＲＥＧ、Ｃ−ＲＥＧ）で展開する。次に、レジスタ単位（Ａ−ＲＥＧ、Ｂ−ＲＥＧ、Ｃ−ＲＥＧ）のＬＳＩ上のＦＦのデータを他のインタフェースからリードする。そのリード値とスキャンページ上の値とを比較する（図６の（２））。
【００５１】
又、メモリＭＥＭに保存されたスキャンデータ（「０１…」）をそのまま使用する場合には、レジスタなど比較ポイントのスキャンアドレスを調べて、メモリＭＥＭからスキャンデータを探し（図６の（３））、同様にＬＳＩ上のＦＦのデータを他のインタフェースからリードする。そのリード値と探したデータの値とを比較する（図６の（２））。
【００５２】
このように、スキャンして収集したデータは膨大（数十万ビット）であるため、全部のＦＦを上記の方法で確認するのは不可能である。従って、比較確認個所が残る（図６の（４））。
【００５３】
スタートコードとエンドコードの期待値（設定値）は正誤判定のみでなく、不正と思われる結果の情報としても使用できる。
【００５４】
図７に示すように、メモリ３２のスキャンデータ中のスタートコードが期待値（設定値）と一致し、エンドコードが期待値（設定値）と不一致となる場合がある。図２の構成で説明したように、スタートコードは、スキャン記憶素子群６を通過しないため、不一致となる可能性は低い。一方、エンドコードはスキャン記憶素子群６を通過するため、不一致となった場合に、スキャン記憶素子群６のどこかのスキャンチェーン（ハード）に問題がある可能性があると判断できる。
【００５５】
更に、図８に示すように、実測したスタートコード（「００００１００１」）とエンドコード（「０１１０１０」）が、スタートコードの期待値（「０００１０１０」＝０ｘ１２）とエンドコード（「００１１０１００」）の期待値と一致しないが、似た値が見える場合は、スキャン時の設定シフト数（プログラム）に問題がある可能性があると判断できる。図８では、シフト数が１ビット多い可能性がある。
【００５６】
即ち、ＪＴＡＧプログラムで設定したシフト数が対象ＬＳＩに必要なシフト数と異なることを分析できる。スキャンデータが不正と思われる場合、最初にＪＴＡＧを制御するプログラムの問題なのか、ＬＳＩ内部のスキャンチェーン（ハード）の問題なのか調査する。この実施の形態では、調査の判断基準を与えることができる。
【００５７】
（障害個所の特定方法）
次に、図２のバイパス設定レジスタ８８及びユーザーチェーンを用いたスキャンデータの収集を説明する。図９は図２で記載したチェーン制御回路７４及びスキャン記憶素子群６のブロック図である。図１０は図９の選択回路の選択倫理の説明図である。図１１は図１０の選択回路の選択条件の説明図である。図１２は図９の構成による障害個所の特定方法の説明図である。
【００５８】
図９において、図２で説明したものと同一のものは同一の記号で示してある。スキャン記憶素子群６は５つのブロック（チェーン）６Ａ、６Ｂ、６Ｃ、６Ｄ、６Ｅを有する。各ブロック６Ａ、６Ｂ、６Ｃ、６Ｄ、６Ｅはチェーン（直列）接続されたＦＦ６０を有する。ブロック６Ａ、６Ｂ、６Ｃ、６Ｄ、６Ｅはチェーン制御回路７４から入力データＡｓｉ、Ｂｓｉ、Ｃｓｉ，Ｄｓｉ、Ｅｓｉを受け、チェーン制御回路７４にデータＡｓｏ、Ｂｓｏ、Ｃｓｏ，Ｄｓｏ、Ｅｓｏを出力する。
【００５９】
チェーン制御回路７４はエンドコードレジスタ８２のエンドコードを受ける。又、チェーン制御回路７４はバイパス設定レジスタ８８のバイパスデータＡ−Ｅ_ＢＹＰとデータスキャンチェーン選択回路７２からのチェーン選択信号Ａ−Ｅ＿ｃｈａｉｎ＿ｓｅｌとをチェーン選択条件として受ける。
【００６０】
チェーン制御回路７４は１つのドライバ回路７８Ａと５つのチェーン選択回路７８Ｂ、７８Ｃ、７８Ｄ、７８Ｅ、７８Ｆと選択信号生成回路７６とを有する。ドライバ回路７８Ａと４つのチェーン選択回路７８Ｂ、７８Ｃ、７８Ｄ、７８Ｅとは各々ブロック６Ａ、６Ｂ、６Ｃ、６Ｄ、６Ｅに入力データＡｓｉ、Ｂｓｉ、Ｃｓｉ，Ｄｓｉ、Ｅｓｉを送出する。
【００６１】
チェーン選択回路７８Ｆはスタートコードレジスタ（シフトレジスタ）８６を介し出力信号線ＴＤＯにスキャン出力ｓｏを送出する。選択信号生成回路７６はバイパス設定レジスタ８８のバイパスデータＡ−Ｅ_ＢＹＰとデータスキャンチェーン選択回路７２からのチェーン選択信号Ａ−Ｅ＿ｃｈａｉｎ＿ｓｅｌとから図１０及び図１１で示す選択論理によりチェーン選択回路７８Ｂ、７８Ｃ、７８Ｄ、７８Ｅ、７８Ｆの出力選択信号を生成する。
【００６２】
チェーン選択信号Ａ−Ｅ＿ｃｈａｉｎ＿ｓｅｌは各ブロックＡ〜Ｅの出力を選択する各ブロックＡ〜Ｅの選択ビットを有する。選択ビットは「１」（オン）が選択を示し、「０」（オフ）が非選択を示す。バイパスデータＡ−Ｅ＿ＢＹＰは各ブロックＡ〜Ｅをバイパスする各ブロックＡ〜Ｅの選択ビットを有する。選択ビットは「１」（オン）がバイパスを示し、「０」（オフ）が非バイパスを示す。
【００６３】
ドライバ回路７８Ａは入力信号線ＴＤＩからの入力ｓｉをエンドコードレジスタ（シフトレジスタ）８２を介し受け、ブロック６Ａに入力データＡｓｉを出力する。第１のチェーン選択回路７８Ｂは前述の入力ｓｉとブロック６Ａの出力データＡｓｏを受け、選択信号によりいずれかを選択し、ブロック６Ｂに入力データＢｓｉを出力する。
【００６４】
第２のチェーン選択回路７８Ｃは前述の入力ｓｉとブロック６Ａの出力データＡｓｏとブロック６Ｂの出力データＢｓｏを受け、選択信号によりいずれかを選択し、ブロック６Ｃに入力データＣｓｉを出力する。第３のチェーン選択回路７８Ｄは前述の入力ｓｉとブロック６Ａの出力データＡｓｏとブロック６Ｂの出力データＢｓｏとブロック６Ｃの出力データＣｓｏとを受け、選択信号によりいずれかを選択し、ブロック６Ｄに入力データＤｓｉを出力する。
【００６５】
第４のチェーン選択回路７８Ｅは前述の入力ｓｉとブロック６Ａの出力データＡｓｏとブロック６Ｂの出力データＢｓｏとブロック６Ｃの出力データＣｓｏとブロック６Ｄの出力データＤｓｏとを受け、選択信号によりいずれかを選択し、ブロック６Ｅに入力データＥｓｉを出力する。第５のチェーン選択回路７８Ｆは前述の入力ｓｉとブロック６Ａの出力データＡｓｏとブロック６Ｂの出力データＢｓｏとブロック６Ｃの出力データＣｓｏとブロック６Ｄの出力データＤｓｏとブロック６ＥのデータＥｓｏとを受け、選択信号によりいずれかを選択し、スタートコードレジスタ８０にスキャンデータｓｏを出力する。
【００６６】
図１０において、縦軸にドライバ回路７８Ａ,チェーン選択回路７８Ｂ〜７８Ｆの出力Ａｓｉ、Ｂｓｉ、Ｃｓｉ，Ｄｓｉ、Ｅｓｉ、ｓｏを、横軸にドライバ回路７８Ａ,チェーン選択回路７８Ｂ〜７８Ｆの入力ｓｉ、Ａｓｏ、Ｂｓｏ、Ｃｓｏ，Ｄｓｏ、Ｅｓｏを表す。前述のドライバ回路７８Ａ,チェーン選択回路７８Ｂ〜７８Ｆの接続は図１０の縦軸の出力の行に○印がある横軸の入力を選択する接続である。選択信号生成回路７６は、図１０の論理でドライバ回路７８Ａ,チェーン選択回路７８Ｂ〜７８Ｆの選択信号を生成する。
【００６７】
具体的に図１１で説明する。図１１も、縦軸にドライバ回路７８Ａ,チェーン選択回路７８Ｂ〜７８Ｆの出力Ａｓｉ、Ｂｓｉ、Ｃｓｉ，Ｄｓｉ、Ｅｓｉ、ｓｏを、横軸にドライバ回路７８Ａ,チェーン選択回路７８Ｂ〜７８Ｆの入力ｓｉ、Ａｓｏ、Ｂｓｏ、Ｃｓｏ，Ｄｓｏ、Ｅｓｏを表す。縦軸と横軸の交差ますに選択信号生成回路７６の選択信号生成条件を示す。
【００６８】
図１１の選択信号生成条件Ｎは、チェーン選択信号Ａ＿Ｅ＿ｃｈａｉｎ＿ｓｅｌの全ビットがオフ状態で且つバイパスデータＡ−Ｅ＿ＢＹＰの全ビットがオフ状態で、ユニチェーン選択信号ｕｎｉ＿ｃｈａｉｎ＿ｓｅｌがオンのＮｏｒｍａｌを意味する。選択信号生成条件Ａ、Ｂ，Ｃ、Ｄ、Ｅはチェーン選択信号Ａ＿Ｅ＿ｃｈａｉｎ＿ｓｅｌのブロックＡ〜Ｅのビットがオンであることを意味する。選択信号生成条件ａ、ｂ，ｃ、ｄ、ｅはバイパスデータＡ＿Ｅ＿ＢＹＰのブロックＡ〜Ｅのビットがオンであることを意味する。ユニチェーン選択信号ｕｎｉ＿ｃｈａｉｎ＿ｓｅｌがオンで、ユニチェーンを指定する。又、図１１中の「＋」印は、オア条件を示す。
【００６９】
図１１に従い、選択信号生成回路７６はバイパスデータＡ−Ｅ_ＢＹＰとチェーン選択信号Ａ−Ｅ＿ｃｈａｉｎ＿ｓｅｌを受け、以下のようなチェーン選択回路７８Ｂ〜７８Ｆの選択信号を生成する。
【００７０】
（１）Ｎのみの場合には、チェーン選択回路７８Ｂ〜７８Ｅが前段の出力Ａｓｏ、Ｂｓｏ、Ｃｓｏ，Ｄｓｏを選択し、チェーン選択回路７８Ｆは入力ｓｉを選択する選択信号を生成する。
【００７１】
（２）Ｂ＋ａ、Ｃ＋ａ＋ｂ、Ｄ＋ａ＋ｂ＋ｃ、Ｅ＋ａ＋ｂ＋ｃ＋ｄの場合は、各々チェーン選択回路７８Ｂ〜７８Ｅは入力ｓｉを選択する選択信号を生成する。Ａ＋ｂ＋ｃ＋ｄ＋ｅ、Ｂ＋ｃ＋ｄ＋ｅ、Ｃ＋ｄ＋ｅ、Ｄ＋ｄ＋ｅ、Ｎ＋Ｅの場合は、チェーン選択回路７８Ｆは各々の場合に対応して出力Ａｓｏ、Ｂｓｏ、Ｃｓｏ，Ｄｓｏ、Ｅｓｏを選択する選択信号を生成する。これにより、ユーザーチェーンの選択が行われる。
【００７２】
（３）次に、図１１の黒枠のバイパスデータのみを用いた選択を説明する。ｂ、ｂ＋ｃ、ｂ＋ｃ＋ｄの場合は、各々チェーン選択回路７８Ｃ〜７８Ｅは各々出力Ａｓｏを選択する選択信号を生成する。ｃ、ｃ＋ｄの場合は、チェーン選択回路７８Ｄ〜７８Ｅは各々の場合に対応し出力Ｂｓｏを選択する選択信号を生成する。ｄの場合は、チェーン選択回路が出力Ｃｓｏを選択する選択信号を生成する。
【００７３】
これらの組み合わせにより、チェーン制御回路７４はユニチェーン、指定されたユーザーチェーン、バイパスチェーンの構成を選択する。例えば、Ｎである場合（Ｎｏｒｍａｌである場合）には、チェーン選択回路７８Ｂ〜７８Ｆは前段のブロックＡ、Ｂ、Ｃ、Ｄ、Ｅの出力Ａｓｏ、Ｂｓｏ、Ｃｓｏ，Ｄｓｏ、Ｅｓｏを選択するため、ユニチェーンを形成する。
【００７４】
又、Ｂ＋ａ且つＢ＋ｃ＋ｄ＋ｅの場合（ブロックＢの選択又はブロックＡ，Ｃ，Ｄ、Ｅのバイパス指示の場合）は、チェーン選択回路７８Ｂは入力ｓｉを選択し、チェーン選択回路７８ＦはブロックＢの出力Ｂｓｏを選択する。即ち、ブロック６Ｂのみのユーザーチェーンを形成する。
【００７５】
同様に、Ｃ＋ａ＋ｂ且つＣ＋ｄ＋ｅの場合（ブロックＣの選択又はブロックＡ，Ｂ，Ｄ、Ｅのバイパス指示の場合）は、ブロック６Ｃのみのユーザーチェーンを形成する。Ｄ＋ａ＋ｂ＋ｃ且つＤ＋ｅの場合（ブロックＤの選択又はブロックＡ，Ｂ，Ｃ、Ｅのバイパス指示の場合）は、ブロック６Ｄのみのユーザーチェーンを形成する。Ｅ＋ａ＋ｂ＋ｃ＋ｄ且つＮ＋Ｅの場合（ブロックＥの選択又はブロックＡ，Ｂ，Ｃ、Ｄのバイパス指示の場合）は、ブロック６Ｅのみのユーザーチェーンを形成する。
【００７６】
次に、図１１において黒枠で囲まれたバイパス動作を説明する。ｂ（ブロックＢをバイパス）の場合は、ブロックＢのみがバイパスされる。ｃ（ブロックＣのバイパス）の場合は、ブロックＣのみがバイパスされる。ｄ（ブロックＣのバイパス）の場合は、ブロックＤのみがバイパスされる。
【００７７】
ｂ＋ｃ（ブロックＢ，Ｃのバイパス）の場合は、ブロックＢ，Ｃがバイパスされる。ｃ＋ｄ（ブロックＣ、Ｄのバイパス）の場合は、ブロックＣ、Ｄがバイパスされる。ｂ＋ｃ＋ｄ（ブロックＢ，Ｃ、Ｄのバイパス）の場合は、ブロックＢ，Ｃ、Ｄがバイパスされる。
【００７８】
このように、チェーン記憶素子群６のブロック６Ａ〜６Ｅのユニチェーン形成、単一のユーザーチェーン形成、特定のブロックをバイパスしたチェーン形成が可能となる。
【００７９】
図１２により故障個所の特定方法を説明する。ここでは、ブロックが４つの例で説明する。ユーザーチェーン（小さいチェーン）６Ａ〜６Ｄを全て接続し１本のチェーンにして、スキャンし、スキャンデータ（実測値）をメモリにログ収集する（図１２のＳ１）。ログ収集結果において、チェーンＡ（図９ではブロックＤ）、チェーンＢ（図９ではブロックＣ）、チェーンＣ（図９ではブロックＢ），チェーンＤ（図９ではブロックＡ）のスキャンデータのメモリアドレスは、それぞれ、「０ｘ００００―０ｘ０ＦＦＦ」、「０ｘ１０００−０ｘ１ＦＦＦ」、「０ｘ０００−０ｘ０ＦＦＦ」、「０ｘ１０００−０ｘ１ＦＦＦ」とする。又、スタートコード「０００１００１０」は正しいものとする。
【００８０】
ここで、エンドコードがスキャンデータの最後に発見できない場合には、どこからデータが壊れているか不明である。又、スタートコードは正しいため、プログラムの問題ではないとは推測できる（図１２のＰ１）。
【００８１】
このため、スキャン記憶素子群６の各チェーンを調査する。即ち、各チェーンＡ，Ｂ、Ｃ，Ｄを個別にスキャンする。即ち、前述のように、ＴＡＰコントローラ４にユーザーチェーンを指定し、データスキャンチェーン選択回路７２からチェーン選択信号Ａ−Ｅ＿ｃｈａｉｎ＿ｓｅｌを発行する。これとともに、データスキャンチェーン選択回路７２はスキャン記憶素子群６にシフトクロックＡ−Ｅ＿ａｃｋとＡ−Ｅ＿ｂｃｋを供給し、スタートコードレジスタ８０とエンドコードレジスタ８２にシフトクロックａｃｋとｂｃｋを供給する（図１２のＰ２）。
【００８２】
これにより、ユーザーチェーン単位でスキャンを実施し、ユーザーチェーン単位にスタートコードとエンドコードを付加されたスキャンデータを収集し、メモリに格納する（図１２のＳ２）。図１２のＳ２では、点線で囲まれたデータがスタートコードとエンドコードの部分である。
【００８３】
この収集データから各チェーンＡ，Ｂ，Ｃ，Ｄのスキャンデータに、期待値となるスタートコードとエンドコードが先頭及び最後に現れるか否かを確認する（図１２のＰ３）。図１２の例では、チェーンＣの最後にエンドコードが表れていないことが判る。即ち、故障のあるチェーンを特定する。ここでは、故障チェーンＣをバイパスし、チェーンＡ、Ｂ、Ｄを連結して、ログ解析する。
【００８４】
チェーンバイパスレジスタ８８に図１１で示したユーザーチェーンのバイパスデータを書き込み、データスキャンチェーン選択回路７２はスキャン記憶素子群６にシフトクロックＡ−Ｅ＿ａｃｋとＡ−Ｅ＿ｂｃｋを供給し、スタートコードレジスタ８０とエンドコードレジスタ８２にシフトクロックａｃｋとｂｃｋを供給する。これにより、バイパスしたチェーンＣを除いたチェーンＡ，Ｂ、Ｄのユニチェーンのスキャンデータをメモリに収集する（図１２のＳ３）。図１２のＳ３では、チェーンＡ，Ｂ、Ｄのユニチェーンのスキャンデータの先頭にスタートコード、最後にエンドコード（図１２の点線で囲まれたデータ）が表れているため、チェーンＡ，Ｂ、Ｄは正常と判定できる。
【００８５】
この実施の形態では、バイパスレジスタにユーザーチェーン単位で制御できるビットを設け、バイパス設定した後ユニチェーンモードでスキャンを行う。これにより、ユニチェーンを形成する回路が設定した問題チェーンをバイパスすることで、スキャンを可能にする。
【００８６】
このように、スキャンデータの正誤判定が一瞬でできるため、デバッグ効率が向上する。又、全収集データの確認ができるため、デバッグ品質が向上する。更に、調査時の情報提供ができるため、デバッグ効率が向上する。
【００８７】
（情報処理装置）
図１３は図１、図２のデバッグシステムを適用した情報処理装置の一実施の形態のブロック図である。図１３の情報処理装置は、サーバシステムを示す。図１３において、図１及び図２で説明したものと同一のものは同一の記号で示してある。図１３において、サーバシステムは、処理装置としての複数のシステムボード（ＳＢ：Ｓｙｓｔｅｍ  Ｂｏａｒｄ）１Ａ〜１Ｄと、システム制御装置（ＳＶＰ：ＳｅｒＶｉｃｅ  Ｐｒｏｃｅｓｓｏｒ）としての管理ボード（ＭＭＢ:ＭａｎａｇｅＭｅｎｔ  Ｂｏａｒｄ）３と、クロスバスイッチ（又はスイッチ）８Ｂと、複数の入出力ユニット（ＩＯＵ: Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｕｎｉｔ）９Ａ，９Ｂ，・・・９Ｎと、内部バス８Ａと、操作端末装置８Ｃとを有する。
【００８８】
各システムボード１Ａ〜１Ｄは図１のボード１に対応し、管理ボード３は図１のホストコンピュータ３に対応する。各システムボード１Ａ〜１Ｄは回路基板に、演算処理装置としてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５Ａと、メモリコントローラ５Ｂと、主記憶装置としてのメモリ１４と、ブリッジ回路１８と、ネットワークインターフェース回路（ＮＩＣ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１６とを有する。
【００８９】
各システムボード１Ａ〜１ＤのＮＩＣ１６は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の内部バス８Ａを介し、管理ボード３に接続する。管理ボード３は、内部バス８Ａを介し、各システムボード１Ａ〜１Ｄの状態監視、起動、停止制御等を行う。又、各システムボード１Ａ〜１Ｄは、クロスバスイッチ（またはスイッチ）８Ｂにより、ＩＯＵ９Ａ〜９Ｎと接続する。
【００９０】
ＩＯＵ９Ａ〜９Ｎは、ＬＡＮデバイス、ストレージコントローラ等のＩＯデバイスを搭載する。クロスバスイッチ８Ｂを、適切に設定することで、論理的に複数のシステムに分割が可能となり、稼動するシステムの規模に応じて、自由にシステムボードのリソースとＩＯＵのリソースを割り当てることが出来る。
【００９１】
各システムボード１Ａ〜１Ｄでは、ＣＰＵ５Ａとメモリコントローラ５Ｂと図１、図２で説明したＴＡＰコントローラ４等を１つのＬＳＩ１０に設ける。又、図１３では省略したが、図２で説明したインストラクションレジスタ７０とデータスキャンチェーン選択回路７２とチェーン制御回路７４とデータ設定回路７６とスキャン記憶素子群６とがＬＳＩ１０に設けられる。
【００９２】
ＣＰＵ５Ａが、メモリコントローラ５Ｂを介しメモリ１４に接続する。メモリコントローラ５ＢとＮＩＣ１６とがブリッジ回路１８に接続する。ＣＰＵ５Ａは、ＯＳの動作の元に、所望のアプリケーションプログラムを実行し、業務処理を行う。又、ＣＰＵ５Ａは、ブリッジ回路１８を通し、クロスバスイッチ８Ｂを介し、ＩＯＵ９Ａ〜９Ｎとコマンド、データの通信を行う。
【００９３】
ブリッジ回路１８はＮＩＣ１６とクロスバスイッチ８Ｂとに接続する。即ち、ブリッジ回路１８は、ＣＰＵ５Ａと、クロスバスイッチ８ＢとＮＩＣ１６との接続を行うブリッジ機能を果たす。
【００９４】
図１で説明したコネクタ１２が各システムボード１Ａ〜１Ｄに設けられている。コネクタ１２はＬＳＩ１０のＴＡＰコントローラ４に接続する。ＪＴＡＧコントローラ３０は管理ボード３に設けられる。各システムボード１Ａ〜１Ｄのコネクタ１２は図２で説明した専用ケーブル３４を介し管理ボード３のＪＴＡＧコントローラ３０に接続される。端末装置８Ｃは、例えば、パーソナルコンピュータ（ＰＣ：Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）で構成され、ＭＭＢ５に接続し、各種の設定等をパーソナルコンピュータの画面の項目選択等により指示し、且つＭＭＢ５の取得データを表示する。
【００９５】
従って、ＭＭＢ３はＪＴＡＧコントローラ３０を介し、専用ケーブル３４により各システムボード１Ａ〜１Ｄのコネクタ１２に接続する。コネクタ１２はＬＳＩ１０のＴＡＰコントローラ４に接続する。即ち、図１及び図２で説明したデバッグシステムがサーバシステム内に設けられる。このため、ＬＳＩ１０をボード１Ａ〜１Ｄに搭載した状態で、図１乃至図１２で説明したＬＳＩ１０の機能試験を実行できる。
【００９６】
このため、デバッグ担当者は、端末装置８Ｃを操作し、ＪＴＡＧコントローラ３０からＬＳＩ１０内部のＦＦの状態（スキャンデータ）を収集し、メモリ３２に格納する。デバッグ担当者は、端末装置８Ｃの画面又は付随するプリンタにメモリ３２の収集データを表示又は印刷する。この出力結果を見て、担当者は、スキャンが正常に実行されたか否か、収集データが正しいか否かの正誤判定を行う。
【００９７】
ＬＳＩ機能試験の初期段階では、収集データに誤りがあると、ＪＴＡＧプログラムの誤りか、スキャンチェーンの誤りかを判別する必要がある。本実施の形態では、ＪＴＡＧプログラムの誤りか、スキャンチェーンの誤りかを判別することも容易である。又、スキャンチェーンの誤り個所を容易に判別できる。
【００９８】
更に、サーバシステムの出荷後も、何らかの異常が生じた場合に、ＬＳＩ機能試験を行い、障害原因の探索に寄与できる。特に、ＬＳＩの複雑化に伴い、スキャンテストにより何十万のスキャンデータを収集するため、容易で工数の少ない正誤判定はデバッグ作業を効率化できる。
【００９９】
（他の実施の形態）
前述の実施の形態では、フリップフロップを例にスキャン記憶素子を説明したが、他のシフト可能な記憶素子を適用できる。又、スキャンテスト方法をＪＴＡＧ規格の方法で説明したが、他の専用パスを使用したスキャン方法を適用できる。更に、バイパス機能を設けた例で説明したが、バイパス機能を設けないものも適用できる。
【０１００】
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【産業上の利用可能性】
【０１０１】
スキャン記憶素子群の入力段にエンドコードレジスタを、出力段にスタートコードレジスタを設け、スキャンするため、スキャンされたデータにスタートコードとエンドコードが含まれているかを判別して、スキャンデータの正誤を容易に判断できる。
【符号の説明】
【０１０２】
１  回路基板（ボード）
３  ホストコンピュータ（システム制御装置）
４  ＴＡＰコントローラ
５  内部回路
６  スキャン記憶素子群
１０  ＬＳＩ
１２  コネクタ
３０  ＪＴＡＧコントローラ
３２  メモリ
６Ａ〜６Ｅ  ブロック
６０  スキャン素子
７０  インストラクションレジスタ
７２  データスキャンチェーン選択回路
７４  チェーン選択回路
８０  スタートレジスタ
８２  エンドレジスタ
８８  バイパスレジスタ
３８  内部バス
【図１】
0005532134.tif 000002
【図２】
0005532134.tif 000003
【図３】
0005532134.tif 000004
【図４】
0005532134.tif 000005
【図５】
0005532134.tif 000006
【図６】
0005532134.tif 000007
【図７】
0005532134.tif 000008
【図８】
0005532134.tif 000009
【図９】
0005532134.tif 000010
【図１０】
0005532134.tif 000011
【図１１】
0005532134.tif 000012
【図１２】
0005532134.tif 000013
【図１３】
0005532134.tif 000014
【図１４】
0005532134.tif 000015
【図１５】
0005532134.tif 000016