(57)【要約】【課題】　ＲＤＲの複数チェインを集積回路で実施できるようにするシステムおよび方法を提供する。【解決手段】　本発明は、少なくとも１つのＲＤＲをそれぞれが含む複数のＲＤＲチェインを実施する方式に向けられる。本方式は、第１の命令の実行に応答して、ＲＤＲチェインの１つを特定し、特定されたＲＤＲチェインのＲＤＲの１つを特定することと、特定されたＲＤＲチェインの特定されたＲＤＲからデータを読み出すことと、第２の命令の発行に応答して、ＲＤＲチェインの１つを特定し、特定されたＲＤＲチェインのＲＤＲの１つを特定することと、特定されたＲＤＲチェインの特定されたＲＤＲにデータを書き込むこととを含む。　【選択図】図１Ｂ
2004062906.tif 000002
【特許請求の範囲】
【請求項１】
　少なくとも１つの遠隔診断レジスタ（ＲＤＲ）をそれぞれが含む複数のＲＤＲチェインを実施するシステムであって、
　入力および出力を有するステージングレジスタと、
　前記ステージングレジスタの入力に接続された出力、前記複数のＲＤＲチェインの異なる１つにそれぞれ接続された複数の入力、および少なくとも１つの制御入力を含むマルチプレクサ（ＭＵＸ）と、
　前記ステージングレジスタの出力に接続された入力、前記複数のＲＤＲチェインの異なる１つにそれぞれ接続された複数の出力、および少なくとも１つの制御入力を備えるデマルチプレクサ（ＤＥＭＵＸ）と
を有し、
　前記複数のＲＤＲチェインの１つを特定するチェイン番号、および特定されるＲＤＲチェインのＲＤＲを特定するＲＤＲ番号を含む命令の実行に応答して、該チェイン番号が、前記ＭＵＸの前記少なくとも１つの制御入力および前記ＤＥＭＵＸの前記少なくとも１つの制御入力に供給されるシステム。
【請求項２】
　前記命令は、シフト−フロム命令を含み、前記シフト−フロム命令の実行に応答して、前記ＲＤＲに書き込むべきデータが、前記特定されたＲＤＲから前記特定されたチェインに沿って、前記ＭＵＸを介して前記ステージングレジスタにシフトされる請求項１記載のシステム。
【請求項３】
　前記命令はシフト−ツー命令を含み、前記シフト−ツー命令の実行に応答して、前記特定されたＲＤＲに格納されているデータが、前記ステージングレジスタから前記特定されたチェインに沿って、前記ＤＥＭＵＸを介して該特定されたＲＤＲにシフトされる請求項１または２記載のシステム。
【請求項４】
前記ステージングレジスタに接続された汎用レジスタをさらに有する請求項１、２または３記載のシステム。
【請求項５】
　前記特定されたＲＤＲに書き込まれる前記データは、前記シフト−ツー命令の実行前に、前記汎用レジスタから前記ステージングレジスタに移され、該特定されたＲＤＲから前記ステージングレジスタへシフトされたデータは、前記シフト−フロム命令の実行後に、前記ステージングレジスタから前記汎用レジスタに移される請求項４記載のシステム。
【請求項６】
　前記ステージングレジスタおよび前記ＲＤＲはシリアルシフトレジスタである請求項１、２、３、４、または５記載のシステム。
【請求項７】
　少なくとも１つのＲＤＲは共有シリアルレジスタである請求項１、２、３、４、５、または６記載のシステム。
【請求項８】
　前記ＲＤＲ番号は５ビット番号であり、前記チェイン番号も５ビット番号である請求項１、２、３、４、５、６、または７記載のシステム。
【請求項９】
　少なくとも１つのＲＤＲをそれぞれが含む複数のＲＤＲチェインを実施する装置であって、
　前記ＲＤＲチェインの１つを特定し、特定されたＲＤＲチェインの前記ＲＤＲの１つを特定する第１の命令の実行に応答して、前記特定されたＲＤＲチェインの前記特定されたＲＤＲからデータを読み出す手段と、
　前記ＲＤＲチェインの１つを特定し、特定されたＲＤＲチェインの前記ＲＤＲの１つを特定する第２の命令の発行に応答して、前記特定されたＲＤＲチェインの前記特定されたＲＤＲにデータを書き込む手段と
を有する装置。
【請求項１０】
　少なくとも１つのＲＤＲをそれぞれ含む複数のＲＤＲチェインを実施する方法であって、
　前記ＲＤＲチェインの１つを特定し、該特定されたＲＤＲチェインの前記ＲＤＲの１つを特定する第１の命令の実行に応答して、前記特定されたＲＤＲチェインの前記特定されたＲＤＲからデータを読み出すステップと、
　前記ＲＤＲチェインの１つを特定し、該特定されたＲＤＲチェインの前記ＲＤＲの１つを特定する第２の命令の発行に応答して、前記特定されたＲＤＲチェインの前記特定されたＲＤＲにデータを書き込むステップと
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、包括的に集積回路（ＩＣ）に関する。特に、本発明は、ＩＣ中の複数の遠隔診断レジスタチェインの実施を容易にする方法および装置を対象とするが、これに制限されない。
【背景技術】
【０００２】
　集積回路（ＩＣ）に含められる素子の数が増加し続けている一方で、集積回路の寸法が縮小し続けているため、このような回路を試験することはますます難しくなってきている。このような回路に対して行うことのできる試験の正確さを確保するために、診断試験回路をＩＣ内に構築することができる。一実施形態では、ＩＣ全体にわたって様々な場所に配置された複数のシフトレジスタ段を通してステージングレジスタに対してデータを順次転送することができる。この様式では、ＩＣの回路試験を迅速かつ正確に行うことができる。
【０００３】
　図１Ａは、従来技術による遠隔診断レジスタチェイン１００の実施態様を示す。チェイン１００は、ステージングレジスタ１０２と、図１Ａでは参照符号１０４（０）〜１０４（ｎ−１）でそれぞれ示され、すべて直列接続される複数の遠隔診断レジスタ（remote diagnose register, ＲＤＲ）とを備え、各レジスタ１０２、１０４（０）〜１０４（ｎ−１）の出力は、チェイン１００においてチェイン中の次のレジスタの入力に接続されている。ステージングレジスタ１０２およびＲＤＲ１０４（０）〜１０４（ｎ−１）のそれぞれは、従来の６４ビットシリアルシフトレジスタである。
【０００４】
　通常の実施態様では、以下にさらに詳細に述べる理由により、チェインは３２個のＲＤＲに制限される。したがって、ｎもまた３２に制限される。これもまた以下に述べるように、書き込み動作中、ＲＤＲ１０４（０）〜１０４（ｎ−１）のうちの指定されたＲＤＲに達するまで、適当な制御ロジックの下でデータは一度に１ビットずつ、ステージングレジスタ１０２から、チェイン１００に沿って一定方向（図示の実施形態では時計回り）に順次シフトされ、指定されたＲＤＲに達したときにそのＲＤＲに書き込まれる。
【０００５】
　読み出し動作中、データは、ステージングレジスタ１０２に達するまで、ここでも一度に１ビットずつ、ＲＤＲ１０４（０）〜１０４（ｎ−１）のうちの指定されたＲＤＲから上述した方向と同じ方向にチェインに沿って順次シフトされ、指定されたステージングレジスタ１０２に達した時点でそのステージングレジスタに書き込まれる。
【０００６】
　図１Ａに示す実施形態は、単一のプロセッサコアを含むＩＣの場合には十分に機能するが、大半の用途では、単一のコアは３２個のＲＤＲのほぼすべてを利用する。したがって、複雑性が増し、単一のチップに含められるプロセッサコアならびに共有機能ユニットの数が増大するにつれて、構成および誤り記録レジスタとして使用するためにより多くのＲＤＲが必要になる。しかし、上述したように、５ビット番号によりチェイン内の特定のＲＤＲの指定を提供する現在の規格は、ＲＤＲチェインに含められるＲＤＲの数を３２個のレジスタに制限している。
【０００７】
　さらに、現在、すべてのコアが同じ共有データにアクセス可能である必要がある状況を処理する方法はない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
　本発明の目的は、ＲＤＲの複数チェインを集積回路で実施できるようにするシステムおよび方法を提供することである。
【課題を解決するための手段】
【０００９】
　一実施形態では、本発明は、それぞれ最大３２個のＲＤＲの最大３２個のチェインの実施を可能にする。
【００１０】
　一実施形態では、本発明は、少なくとも１つのＲＤＲをそれぞれが含む複数のＲＤＲチェインを実施する方式に向けられる。本方式は、第１の命令の実行に応答して、ＲＤＲチェインの１つを特定し、特定されたＲＤＲチェインのＲＤＲの１つを特定することと、特定されたＲＤＲチェインの特定されたＲＤＲからデータを読み出すことと、第２の命令の発行に応答して、ＲＤＲチェインの１つを特定し、特定されたＲＤＲチェインのＲＤＲの１つを特定することと、特定されたＲＤＲチェインの特定されたＲＤＲにデータを書き込むこととを含む。
【００１１】
　添付図面と併せて行われる以下の詳細な説明を参照することにより、本発明のより完全な理解を得ることができる。
【発明を実施するための最良の形態】
【００１２】
　図面中、類似または同様の要素は、何枚かの図面を通して同一の参照符号で示され、図示される各種要素は必ずしも一定の比率で拡大縮小されたものではない。
【００１３】
　図１Ｂは、本発明の一実施形態による、それぞれ１１０（０）〜１１０（ｎ−１）と示される複数のＲＤＲチェインの実施態様を示す。より詳細に後述する理由により、３２個のチェインを実施することが可能であり、したがってｎは３２までの任意の数（３２を含む）であることができる。図１Ｂに示すように、各チェイン１１０（０）〜１１０（ｎ−１）は複数の６４ビットシリアルシフトＲＤＲ１１２（０）〜１１２（ｎ−１）を含む。
【００１４】
　図１Ａに示す実施形態と同様に、図１Ｂに示す実施形態は、６４ビットシリアルシフトステージングレジスタ１１４を含むが、さらに詳細に以下に述べるように、データは、マルチプレクサ（ＭＵＸ）１１６を介してチェイン１１０（０）〜１１０（ｎ−１）の１つからステージングレジスタに、またデマルチプレクサ（ＤＥＭＵＸ）１１８を介してステージングレジスタ１１４からチェイン１１０（０）〜１１０（ｎ−１）の１つにシフトされる。特に、各チェイン１１０（０）〜１１０（ｎ−１）の「入力端」は、ＤＥＭＵＸ１１８のｎ個の出力のうちの対応する１つに接続される。同様に、各チェイン１１０（０）〜１１０（ｎ−１）の「出力端」は、ＭＵＸ１１６のｎ個の入力のうちの対応する１つに接続される。後述する「シフト−ツー（shift-to)（書き込み）」命令および「シフト−フロム（shift-from)（読み出し）」命令から取り込まれるチェイン番号１２０を取り込み、これをＭＵＸ１１６およびＤＥＭＵＸ１１８への制御信号として使用して、動作のためにステージングレジスタ１１４を接続すべきチェイン１１０（０）〜１１０（ｎ−１）を制御する。
【００１５】
　図１Ｂに示す実施形態は、読み出し動作および書き込み動作の双方において、５ビットＲＤＲ番号を使用して読み出すまたは書き込むレジスタを指定することに加えて、読み出し（シフト−ツーまたは「ＳＴＤＩＡＧ」）命令または書き込み（シフト-フロムまたは「ＳＦＤＩＡＧ」）命令もまたその５ビットチェイン番号によってチェインを指定すること以外は、図１Ａを参照して上述した様式と同様に動作する。したがって、データは、指定されたチェイン中の指定されたＲＤＲに、または指定されたＲＤＲからシフトされる。このようにすると、それぞれ最大３２個のＲＤＲからなる最大３２個のチェイン、すなわち最大１０２４個のＲＤＲをシステムに配置することができる。
【００１６】
　制御ロジック１２２は、さらに詳細に後述するように、図１Ｂに示す実施形態の動作を管理することが認識されよう。
【００１７】
　図２（Ａ）および（Ｂ）はそれぞれ、本発明の実施形態を実施するＳＴＤＩＡＧ命令２００およびＳＦＤＩＡＧ命令２０２の例示的な演算コードフォーマットを示す。特に、ＳＴＤＩＡＧ命令演算コード２００およびＳＦＤＩＡＧ命令演算コード２０２のフィールド２０４は、演算コードのビット６〜１０を含み、書き込むべきまた読み出すべきそれぞれのＲＤＲ１１２（０）〜１１２（ｎ−１）のうちの１つを指定するＲＤＲ番号（ＲＤＲ＃）を含む。ＳＴＤＩＡＧ命令演算コード２００およびＳＦＤＩＡＧ命令演算コード２０２のフィールド２０６は、演算コードのビット１１〜１５を含み、書き込み動作および読み出し動作それぞれの間にステージングレジスタ１１４に接続すべきチェイン１１０（０）〜１１０（ｎ−１）のうちの１つを指定するチェイン番号（チェイン＃）を含む。ＳＴＤＩＡＧ命令演算コード２００およびＳＦＤＩＡＧ命令演算コード２０２のフィールド２０８は、演算コードのビット１９〜２６を含み、命令を読み出し（ＳＴＤＩＡＧ）命令または書き込み（ＳＦＤＩＡＧ）命令として特定する。読み出し命令と特定される場合、フィールド２０８は５５ｈを含み、書き込み命令と特定される場合、フィールド２０８は５Ｄｈを含む。
【００１８】
　図３は、複数診断レジスタチェインが一実施形態により実施されるＩＣ３００のブロック図である。ＩＣ３００は、２つのプロセッサコア３０２を含むマルチプロセッサＩＣである。プロセッサコア３０２はそれぞれ、６４ビット幅バス３０８を介して６４ビットステージングレジスタ３０６に接続される６４ビット汎用レジスタ３０４を含む。汎用レジスタ３０４の目的は、ステージングレジスタとのデータインタフェースを提供することである。特に、たとえば診断プログラムがデータを汎用レジスタ３０４に書き込み、それから本明細書に述べるようにステージングレジスタ３０６にデータをシフトし、ＲＤＲに書き込むことができる。同様に、本明細書に述べるように、ＲＤＲから読み出されたデータは、たとえば、診断プログラムによるアクセスのために、ステージングレジスタ３０６から汎用レジスタにシフトすることができる。
【００１９】
　各ステージングレジスタ３０６はシリアルシフトレジスタであり、その出力は２出力ＤＥＭＵＸ３１２の入力に接続される。ＤＥＭＵＸ３１２の第１の出力はそれぞれ、ローカルシリアルレジスタ、すなわちＲＤＲ３１０の入力に接続される。レジスタ３１０の出力はそれぞれ、２入力ＭＵＸ３１４の第１の入力に接続される。ＭＵＸ３１４の出力はそれぞれ、ステージングレジスタ３０６の入力に接続される。
【００２０】
　ＤＥＭＵＸ３１２の第２の出力はそれぞれ、２入力ＯＲゲート３１９の各入力に接続され、２入力ＯＲゲート３１９の出力は単一共有シリアルレジスタ３２０の入力に接続される。共有シリアルレジスタ３２０の出力は、ＭＵＸ３１４の第２の入力に接続される。チェイン番号３２４は、制御信号としてＭＵＸ３１４およびＤＥＭＵＸ３１２に供給される。図３に示すように、「チェイン０」と示される第１のチェインは「ローカルチェイン」（ステージングレジスタ３０６およびローカルシリアルレジスタ３１０を含む）であり、「チェイン１」と示される第２のチェインは、「共有チェイン」（ステージングレジスタ３０６および共有シリアルレジスタ３２０を含む）である。共有シリアルレジスタ３２０は、コア３０２の間で遠隔診断データを共有できるようにすることが理解されよう。以下に述べる実施形態の動作の制御に適した制御ロジックは、参照符号３２６で示される。
【００２１】
　図４Ａは、指定されたＲＤＲにデータを書き込む一実施形態の動作を示すフローチャートである。図４Ａに図示し関連付けて説明する動作は通常、適切なソフトウェア命令を実行するプロセッサまたはコントローラによって開始または実行されることが認識されよう。ブロック４００において、ＲＤＲに書き込むべきデータが、従来の様式で汎用レジスタに書き込まれる。ブロック４０２において、たとえば、「ＭＴＤＩＡＧ」命令を実行することにより、データが汎用レジスタから、ステージングレジスタ１１４（図１Ｂ）等のステージングレジスタに移動する。ブロック４０４において、「ＳＴＤＩＡＧ　Ｘ，Ｙ」命令が実行される。但し、Ｘは５ビットＲＤＲ番号であり、したがって３２個の異なるＲＤＲのうちの１つを指定することができ、またＹはＲＤＲの５ビットチェイン番号であり、したがって最大３２個の異なるＲＤＲチェインの１つを指定することができる。ブロック４０６において、チェイン番号Ｙが取り込まれ、制御信号として、ＤＥＭＵＸ１１８のような、ステージングレジスタに接続されたＤＥＭＵＸに供給される。ブロック４０８において、データがステージングレジスタからＤＥＭＵＸにシフトされる。ブロック４１０において、データが、制御信号としてＤＥＭＵＸに供給される（ブロック４０６）チェイン番号に対応するライン上で、ＤＥＭＵＸから出力される。ブロック４１２において、データが、格納される指定されたＲＤＲ（Ｘ）に達するまでチェインに沿ってシフトされる。
【００２２】
　たとえば、図１Ｂおよび図４Ａを参照して、ｎが３２に等しく、チェイン１１０（０）〜１１０（ｎ−１）それぞれがチェイン＃０〜３１に対応し、レジスタ１１２（０）〜１１２（ｎ−１）それぞれがＲＤＲ＃０〜３１に対応するものと仮定する。したがって、データをチェイン１１０（３１）上のレジスタ１１２（３１）に書き込むためには、データが、ステージングレジスタ１１４に接続された汎用レジスタ（図示せず）に書き込まれ（ブロック４００）、次いで、汎用レジスタからステージングレジスタ１１４に移される（ブロック４０２）。この時点において、ＳＴＤＩＡＧ３１，３１命令の実行に応答して、チェイン番号（３１）を取り込んでＤＥＭＵＸの制御入力に供給し、よってチェイン１１０（３１）がＤＥＭＵＸ１１８を介してステージングレジスタ１１４に接続される（ブロック４０４、４０６）。データは、レジスタ１１２（３１）に達するまで、ＤＥＭＵＸ１１８を通してステージングレジスタ１１４からチェイン１１０（３１）に沿って順次シフトされ（ブロック４０８、４１０）、レジスタ１１２（３１）に達した時点でレジスタ１１２（３１）に格納される（ブロック４１２）。
【００２３】
　図４Ｂは、ＲＤＲからデータを読み出す一実施形態の動作を示すフローチャートである。図４Ｂに図示し関連付けて説明する動作は通常、適切なソフトウェア命令を実行するプロセッサまたはコントローラによって開始または実行されることが認識されよう。ブロック４３０において、ＳＦＤＩＡＧ　Ｘ，Ｙ命令が実行される。但し、ＸはＲＤＲ番号を指定し、Ｙはチェイン番号を指定する。ブロック４３２において、チェイン番号Ｙが取り込まれ、制御信号としてＭＵＸに供給される。ブロック４３４において、ＭＵＸに達するまで、チェイン番号およびＲＤＲ番号によって特定されるＲＤＲに格納されているデータが、指定されたチェインに沿ってＲＤＲからチェイン中の他のＲＤＲに、またはＲＤＲからシフトされる。ブロック４３６において、データが、指定されたチェインに対応する入力線を介してＭＵＸに入力される。上述したように、チェイン番号をＭＵＸへの制御信号として使用すること（ブロック４３２）により、ＭＵＸから出力する指定されたチェインに対応するラインが選ばれることになる。ブロック４３８において、データがＭＵＸからステージングレジスタに出力される。ブロック４４０において、他のハードウェアおよび／またはソフトウェアによるアクセスおよび／または処理のために、データをステージングレジスタから汎用レジスタに移すことができる。
【００２４】
　たとえば、図１Ｂおよび図４Ｂを参照して、ｎが３２に等しく、よってチェイン１１０（０）〜１１０（ｎ−１）それぞれがチェイン＃０〜３１に対応し、レジスタ１１２（０）〜１１２（ｎ−１）それぞれがＲＤＲ＃０〜３１に対応するものと仮定する。したがって、チェイン１１０（３１）上のレジスタ１１２（３１）からデータを読み出すには、ＳＦＤＩＡＧ３１，３１命令が実行される（ブロック４３０）。チェイン番号（３１）がＭＵＸ１１６の制御入力に供給され、よってチェイン１１０（３１）がＭＵＸ１１６を介してステージングレジスタ１１４の入力に接続される（ブロック４３２）。データは、ステージングレジスタ１１４に達するまで、チェイン１１０（３１）に沿って順次シフトされ（ブロック４３４〜４３８）、ステージングレジスタ１１４に達した時点で、ＭＦＤＩＡＧ命令を実行することにより、データをステージングレジスタ１１４から汎用レジスタ（図示せず）に移すことができる（ブロック４４０）。データが汎用レジスタに入ると、診断機能の実行に必要なときにそのデータにアクセスすることができる。
【００２５】
　現在の規格は、チェイン当たりのＲＤＲの数の限度を３２と規定しているが、本発明の原理はそのように制限されないことが認識されよう。同様に、チェインの最大数は３２と記載されるが、ＳＴＤＩＡＧおよびＳＦＤＩＡＧ命令演算コードのチェイン＃フィールドのサイズを変更可能な場合には、かかるチェインをより多く実施することができるものと予想される。
【００２６】
　本発明について特定の例示を参照して説明したが、図示し説明した本発明の形態は、例示的な実施形態のみとして扱われることを理解されたい。併記の特許請求項によって規定される本発明の精神および範囲から逸脱することなく、各種変更形態、代替形態、および変更形態を実現することが可能である。
【図面の簡単な説明】
【００２７】
【図１Ａ】現在のＲＤＲチェインの実施態様（従来技術）を示すブロック図。
【図１Ｂ】本発明の一実施形態による複数のＲＤＲチェインの実施態様を示すブロック図。
【図２】（Ａ）は、図１Ｂに示す複数のＲＤＲチェイン実施態様と併せて使用するＳＴＤＩＡＧ命令のフォーマットを示す図であり、（Ｂ）は、図１Ｂに示す複数のＲＤＲチェイン実施態様と併せて使用するＳＦＤＩＡＧ命令のフォーマットを示す図である。
【図３】複数コアプロセッサＩＣ中の複数のＲＤＲチェインの実施形態を示すより詳細なブロック図。
【図４Ａ】選択されたＲＤＲからデータを読み出す、図１Ｂに示す複数のＲＤＲチェイン実施態様の実施形態の動作を示すフローチャートを示す図。
【図４Ｂ】選択されたＲＤＲにデータを書き込む、図１Ｂに示す複数のＲＤＲチェイン実施態様の実施形態の動作を示すフローチャートを示す図。
【符号の説明】
【００２８】
１１０　ＲＤＲチェイン
１１２　ＲＤＲ
１１４　ステージングレジスタ
１１６　ＭＵＸ
１１８　ＤＥＭＵＸ
２０４　ＲＤＲ番号
２０６　チェイン番号
【図１Ａ】
2004062906.tif 000003
【図１Ｂ】
2004062906.tif 000004
【図２】
2004062906.tif 000005
【図３】
2004062906.tif 000006
【図４Ａ】
2004062906.tif 000007
【図４Ｂ】
2004062906.tif 000008