(57)【要約】【課題】故障情報を共有するのに要する時間を可及的に短くすることを可能にする。【解決手段】複数のプロセッサエレメントであって、各プロセッサエレメントがこのプロセッサエレメントの故障の有無をテストし、テスト結果を出力するテスト回路を有する複数のプロセッサエレメント２と、各プロセッサエレメントに対応して設けられ、他のプロセッサエレメントの情報を記憶するテーブルを有し、テーブルに記憶された情報に基づいて、対応するプロセッサエレメントの情報を他のプロセッサエレメントに送信する複数のスイッチボックス８と、各プロセッサエレメントに対応して設けられ、テスト回路の出力に基づいて、故障したプロセッサエレメントを特定し、この特定されたプロセッサエレメントの位置情報を出力する複数の特定回路４，６と、前記特定回路から出力される特定されたプロセッサエレメントの位置情報を、前記スイッチボックスのそれぞれに送信する送信回路と、を備えている。【選択図】図１
2009205258.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサエレメントであって、各プロセッサエレメントがこのプロセッサエレメントの故障の有無をテストし、テスト結果を出力するテスト回路を有する複数のプロセッサエレメントと、
各プロセッサエレメントに対応して設けられ、他のプロセッサエレメントの情報を記憶するテーブルを有し、前記テーブルに記憶された情報に基づいて、対応するプロセッサエレメントの情報を前記他のプロセッサエレメントに送信する複数のスイッチボックスと、
各プロセッサエレメントに対応して設けられ、前記テスト回路の出力に基づいて、故障したプロセッサエレメントを特定し、この特定されたプロセッサエレメントの位置情報を出力する複数の特定回路と、
前記特定回路から出力される特定されたプロセッサエレメントの位置情報を、前記スイッチボックスのそれぞれに送信する送信回路と、
を備えていることを特徴とする半導体集積回路。
【請求項２】
複数の前記特定回路のそれぞれは、対応するプロセッサエレメントの前記テスト回路によるテスト結果が、故障が有ることを示している場合に記憶状態が変化する不揮発性のメモリ素子を有していることを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記メモリ素子は、対応する前記プロセッサエレメントの直上に設けられていることを特徴とする請求項２記載の半導体集積回路。
【請求項４】
複数のプロセッサエレメントであって、各プロセッサエレメントがこのプロセッサエレメントの故障の有無をテストし、テスト結果を出力するテスト回路を有する複数のプロセッサエレメントと、
各プロセッサエレメントに対応して設けられた複数のスイッチボックスであって、各スイッチボックスは、全ての前記プロセッサエレメントの情報を記憶するテーブルと、前記テスト回路のそれぞれの出力に基づいて、故障したプロセッサエレメントを特定し、この特定されたプロセッサエレメントの情報を、前記テーブルに送出する特定回路と、を有し、前記テーブルに記憶された情報に基づいて、対応するプロセッサエレメントの情報を前記他のプロセッサエレメントに送信する複数のスイッチボックスと、
を備えていることを特徴とする半導体集積回路。
【請求項５】
前記特定回路は、各プロセッサエレメントに対応して設けられる、前記テスト回路によるテスト結果が、故障が有ることを示している場合に記憶状態が変化する不揮発性のメモリ素子を備えていることを特徴とする請求項４記載の半導体集積回路。
【請求項６】
前記テーブルは、対応する前記プロセッサエレメントの直上に設けられていることを特徴とする請求項５記載の半導体集積回路。
【請求項７】
前記特定回路は、各プロセッサエレメントの位置情報を記憶するＲＯＭを備えていることを特徴とする請求項４乃至６のいずれかに記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関する。
【背景技術】
【０００２】
半導体システムの集積度が上がり、１チップに含まれる素子の数が増えてくると、その１チップ中に欠陥を含む事象および欠陥が生成される事象が増えてくることが懸念される。また、そのような大規模システムにおいては、システム全体を検査することも困難になるので、チップ上で欠陥があるかどうかを検査する機能や、欠陥が存在してもシステムが動作するような機能が、半導体システム中に作り込まれていることが望ましい。１システム上に複数のプロセッサを持つ、マルチプロセッサシステムにおいてこれを実現するためには、各プロセッサがお互いの故障の有無を知っていることが必要になる。特に、１チップ上に形成された、プロセッサやメモリやＩ／Ｏなどを有するシステム上の要素がネットワーク的につながる、ネットワークオンチップのシステムにおいては、各要素が保持しているお互いのアドレス情報テーブルに、欠陥情報を共有して持っていなければならない。
【０００３】
マルチプロセッサにおいて、お互いの欠陥情報を共有する方法としては、例えば特許文献１、特許文献２に開示されているような方法があった。この特許文献１に記載された方法では、各プロセッサがそれぞれで故障検出のテストが行われ、そこで故障が検出された場合には、各々のプロセッサが持つ故障テーブルにその情報を記録した後、サービスプロセッサがそれらの情報を集めて記録する、というものである。また、特許文献２に記載された方法では、それぞれのプロセッサ内に故障検出のための装置を持ち、故障が検出された場合には、それを他のプロセッサに連絡して、各プロセッサで再構成テーブルを参照する、というものである。
【特許文献１】特開平５−２３３５８０号公報
【特許文献２】特開２００１−２２５９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、これら特許文献１および２に記載された構成では、故障情報を各プロセッサで共有するのに時間がかかるという問題があった。また、ネットワークオンチップのシステムでこれを適用しようとすれば、故障情報の通信をしている間に、別のプロセッサエレメントが故障プロセッサに情報を送ってしまう可能性があり、故障耐性の上で問題があった。
【０００５】
本発明は、上記事情を考慮してなされたものであって、故障情報を共有するのに要する時間を可及的に短くすることのできる半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の態様による半導体集積回路は、複数のプロセッサエレメントであって、各プロセッサエレメントがこのプロセッサエレメントの故障の有無をテストし、テスト結果を出力するテスト回路を有する複数のプロセッサエレメントと、各プロセッサエレメントに対応して設けられ、他のプロセッサエレメントの情報を記憶するテーブルを有し、前記テーブルに記憶された情報に基づいて、対応するプロセッサエレメントの情報を前記他のプロセッサエレメントに送信する複数のスイッチボックスと、各プロセッサエレメントに対応して設けられ、前記テスト回路の出力に基づいて、故障したプロセッサエレメントを特定し、この特定されたプロセッサエレメントの位置情報を出力する複数の特定回路と、前記特定回路から出力される特定されたプロセッサエレメントの位置情報を、前記スイッチボックスのそれぞれに送信する送信回路と、を備えていることを特徴とする。
【０００７】
また、本発明の第２の態様による半導体集積回路は、複数のプロセッサエレメントであって、各プロセッサエレメントがこのプロセッサエレメントの故障の有無をテストし、テスト結果を出力するテスト回路を有する複数のプロセッサエレメントと、各プロセッサエレメントに対応して設けられた複数のスイッチボックスであって、各スイッチボックスは、全ての前記プロセッサエレメントの情報を記憶するテーブルと、前記テスト回路のそれぞれの出力に基づいて、故障したプロセッサエレメントを特定し、この特定されたプロセッサエレメントの情報を、前記テーブルに送出する特定回路と、を有し、前記テーブルに記憶された情報に基づいて、対応するプロセッサエレメントの情報を前記他のプロセッサエレメントに送信する複数のスイッチボックスと、を備えていることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、故障情報を共有するのに要する時間を可及的に短くすることが可能な半導体集積回路を提供することができる。
【発明を実施するための最良の形態】
【０００９】
本発明の実施形態を以下に図面を参照して詳細に説明する。
【００１０】
（第１実施形態）
本発明の第１実施形態による半導体集積回路を図１に示す。図１は、本実施形態による半導体集積回路を示す３次元的な模式図である。１チップ上に複数のプロセッサエレメント２が配置され、各プロセッサエレメント２の直上に、選択トランジスタ４と、ヒューズもしくは可変抵抗からなるメモリ素子６とが設けられている。これら選択トランジスタ４と、メモリ素子６とは直列に接続されて、対応するプロセッサエレメント２と電気的に接続されている。なお、これら選択トランジスタ４と、メモリ素子６とは３次元的に直上に配置される必要はなく、各プロセッサエレメント２と一対一に対応しかつ電気的に接続されていれば、どの場所に置かれてもかまわない。しかし、図１に示すように、３次元的に各プロセッサエレメント２の直上に配置すれば、回路面積が縮小され、また故障したプロセッサエレメント２との対応が分かりやすいという利点がある。図１では、各プロセッサエレメント２、選択トランジスタ４、およびメモリ素子６はマトリックス状に配置されている。しかし、実際のチップ上では、複数のプロセッサエレメント２はマトリクス状に配置されていない。そこで、本実施形態では、これらのプロセッサ２を仮想的にマトリクス状に配置し、この配置に基づいた行情報（Ｘ座標）および列情報（Ｙ座標）でプロセッサエレメント２の位置が特定できるようにしている。すなわち行情報（Ｘ座標）および列情報（Ｙ座標）がプロセッサエレメント２の位置情報を構成する。図１は、上記仮想的に配置に基づいた回路図を示している。本明細書では、プロセッサエレメントは、プロセッサ、メモリ、インターフェース回路、またはロジック回路等を意味する。
【００１１】
また、本実施形態においては、各プロセッサエレメント２には他のプロセッサエレメント２と通信するための経路の選択を行うスイッチボックス８が電気的に接続される。しかし、プロセッサエレメント２とスイッチボックス８は必ずしも１対１に接続される必要はない。選択トランジスタ４の一方の端子（メモリ素子６に接続されていない端子）と、メモリ素子６の一方の端子（選択トランジスタ４に接続されていない端子）を、図１に示すように配線１２、１４でそれぞれ接続する。配線１２は上記仮想的に配置されたとき同一行（または同一列）となるプロセッサエレメント２同士を接続し、配線１４は上記仮想的に配置されたとき同一列（または同一行）となるプロセッサエレメント２同士を接続する。これら配線１２、１４は、送信回路１０に接続される。メモリ素子６から得られる情報は、故障したプロセッサエレメント２の位置情報そのものであるので、この位置情報は、送信回路１０によって、スイッチボックス８に含まれる後述するアドレステーブルで用いられるアドレス情報に変換され、このアドレス情報が、各スイッチボックス８のアドレステーブルへ一括で送信される。
【００１２】
図２に示すように、各プロセッサエレメント２は、プロセッサ、メモリ、インターフェース回路、または任意のロジック回路で構成される本体部２ａと、スイッチボックス８とのインターフェースを行うインターフェース部２ｂと、プロセッサエレメント２自身の故障の有無をテストするためのテスト回路２ｃとを含んでいる。図３に示すように、テスト回路２ｃは、テストデータ保持部２ｃ１と、テストデータ入力レジスタ２ｃ２と、テストデータ出力レジスタ２ｃ３と、比較回路２ｃ４と、出力回路２ｃ５とを備えている。このテスト回路２ｃは、チップ外部から送られて来る故障検出命令によって、プロセッサエレメント２自身のテストを開始する。すなわち、故障検出命令を受けると、テストデータが保持されているテストデータ保持部２ｃ１からテストデータがテストデータレジスタ２ｃ２に送られて記憶されるとともに、上記テストデータがプロセッサエレメント２に入力されたときに、このプロセッサエレメント２が正常な場合にこのプロセッサエレメント２から出力されると期待される値（期待値）が比較回路２ｃ４に送られる。その後、テストデータ入力レジスタ２ｃ２から本体部２ａにテストデータが送られる。そして、このテストデータに応じた本体部２ａからの出力データがテストデータ出力レジスタ２ｃ３に送られ、記憶される。このテストデータ出力レジスタ２ｃ３に記憶された出力データが比較回路２ｃ４に送られ、上記期待値と比較される。上記出力データと上記期待値が同じ場合には本体部２ａは問題ないと判断し、異なる場合には本体部２ａに問題があるとして判断する、比較の結果が出力回路２ｃ５を介して選択トランジスタ８に出力される。例えば、プロセッサエレメント２の本体部２ａに問題がない場合には値「１」を外部に出力し、何か問題があった場合には、値を出力せず「０」のままとするなどである。もちろんこれに限るものではない。
【００１３】
スイッチボックス８は、図４に示すように、他のスイッチボックス８すなわち他のプロセッサエレメント２へ、演算結果や命令などの情報を送る経路を選択する経路選択回路８ａと、行き先となるプロセッサエレメント２のアドレス情報が記録されているアドレステーブル８ｂとを備えている。経路を介して送られる情報は、パケットデータとして送られる。プロセッサエレメント２は、受け取ったパケットデータのアドレス情報を、上記プロセッサエレメントに対応するスイッチボックス８のアドレステーブル８ｂに送信する。アドレステーブル８ｂは、そのアドレス情報から次にデータを送るべきプロセッサエレメント２のアドレス情報を出力する。アドレス情報は、例えばそのパケットデータが送られる目的のプロセッサエレメント２の位置情報や、実現させたい機能を示す情報などを使用する。
【００１４】
なお、本明細書では、ネットワークオンチップとは、それぞれの機能を実現するエレメント（プロセッサエレメント２）がスイッチボックス８を介してそれぞれに通信を行って演算や仕事を実現するシステム構成を言う。図５に示すように、本明細書では通信を行う回路をスイッチボックスと呼んでいる。
【００１５】
図６は、故障したプロセッサエレメント２を特定する回路、すなわち選択トランジスタ４と、例えばヒューズからなるメモリ素子６を含む回路構成の一例を示したものである。ヒューズ素子６は後で述べる複数個の故障に対して耐性を持たせる場合や履歴を記録する場合以外は、必ずしも必要ではなく、選択トランジスタ４のみでもかまわない。ここでは、各プロセッサエレメントに番号をつけ、ｎ番目のプロセッサエレメントを２ｎとしている。高電位側の電圧Ｖ＿ｈｉｇｈは、ｐ型ＭＯＳＦＥＴ２０を介してヒューズ素子６の一端に印加され、低電位側の電圧Ｖ＿ｌｏｗは、ｎ型ＭＯＳＦＥＴ２２を介して選択トランジスタ４の一端に印加されている。なお、高電圧Ｖ＿ｈｉｇｈと低電圧Ｖ＿ｌｏｗの印加位置の関係は逆になってもよい。すなわち高電圧Ｖ＿ｈｉｇｈをＭＯＳＦＥＴを介して選択トランジスタ４の一端に印加し、低電圧Ｖ＿ｌｏｗをＭＯＳＦＥＴを介してヒューズ素子６の一端に印加するようにしてもよい。この場合は、高電圧Ｖ＿ｈｉｇｈにはｐ型ＭＯＳＦＥＴ２０を、低電圧Ｖ＿ｌｏｗにはｎ型ＭＯＳＦＥＴ２２を接続した方が良い。図６では、タイマー２４が記載されているが、このタイマー２４は、プロセッサエレメントのテストの時間を決めるもので、例えば、テストの実行時間の終了時に、タイマー２４から出力されるパルスが「１」に立ち上がる、等により、テスト時間が決められる。回路動作は、テスト時間の終了直後（すなわち、上記パルスが「１」に立ち上がった直後）までにテスト回路２ｃから信号が得られなかった場合に、そのテストを受けたプロセッサエレメントは故障していると判断し、選択トランジスタ４をＯＮさせる。選択トランジスタ４がＯＮすると、高電圧Ｖ＿ｈｉｇｈと低電圧Ｖ＿ｌｏｗとの間に配線１４、ヒューズ素子６、選択トランジスタ６、配線１２を介して電流が流れ、それらの配線１４、１２の電圧が降下、上昇する。その電圧変化を読み取り、この電圧変化があった配線の位置情報が故障したプロセッサエレメントの位置情報となる。場合によっては、それらの電圧変化をセンスアンプ３０等で増幅して読み取り、故障したプロセッサエレメントの位置情報を検出する。なお、図６においては、センスアンプ３０において、配線１２の電圧変化は基準電圧Ｖ＿ｒｅｆ１と比較され、配線１４の電圧変化は基準電圧Ｖ＿ｒｅｆ２と比較される。これらの位置情報を送信回路１０に入力し、故障したプロセッサエレメントのアドレス情報に変換する。選択トランジスタ４をＯＮさせる回路として、図６では、ＡＮＤ回路３を用いているが、これは便宜上のもので、タイマー２４やテスト回路２ｃの出力が負論理や正論理であるか、選択トランジスタ４がｐ型ＭＯＳＦＥＴまたはｎ型ＭＯＳＦＥＴかに応じて変更される。また、プロセッサエレメント内でいくつかの領域に分けてテストを行う場合などは、テスト回路出力が複数ビットになる場合があり、その場合、それぞれの出力を合成して１ビットとして表現する回路を付加することになる。なお、ヒューズ素子６に接続される選択トランジスタ４を駆動する回路を、このようにＡＮＤ回路３とするためには、通常動作時はテスト回路２ｃの出力を常に「Ｈ」レベルとしておき、テスト時に「Ｌ」レベルにし、テスト結果に応じて故障がなければ再び「Ｈ」レベルにするようにする。
【００１６】
図７に、本実施形態の半導体集積回路の動作タイミングを示す。テスト回路２ｃが起動されると、タイマー２４が動作を開始し、カウントを始める。タイマー２４は典型的には周知のカウンター回路で実現できる。タイマー２４の動作している間に、テスト回路２ｃは各プロセッサエレメントに対してテストを実行する。テストの結果、プロセッサエレメントが故障していないと判断された場合、テスト終了信号が出力されるが、逆に故障していると判断された場合には、信号は出力されない。タイマー２４により所定時間が計測された後、テスト終了信号が出力されているかどうかで、プロセッサエレメントが故障しているかどうかが最終的に判断される。故障していると判断された場合には、ヒューズ素子６の状態を書き換える。なお、ここでは故障が無い場合に出力信号を出し、故障している場合には出力しないとしたが、逆であっても構わない。ただし、故障している場合に信号が出力されない方が、テスト回路２ｃ自身の異常も検出できる可能性が高い。また、テストに合格した場合の信号は、テスト回路２ｃを起動していない場合は常に出力し続けるようにしても良い。
【００１７】
図８は、送信回路１０の構成を示したものである。送信回路１０は、アドレス逆変換テーブル１０ａと、出力回路１０ｂとからなる。アドレス逆変換テーブル１０ａは、プロセッサエレメントに一対一で対応付けられた選択トランジスタ４やヒューズ６から得られる列情報、行情報から、スイッチボックス内のアドレステーブルの対応するアドレス情報や、デコーダの番号に変換するものである。出力回路１０ｂは、アドレス逆変換テーブル１０ａの内容を、それぞれのスイッチボックスに出力するためのバッファ回路である。スイッチボックスは送信回路１０からデータを受け取った場合、それをもとに故障情報を自身のアドレステーブルに記録するか、故障を示すフラグを記録するなどして、故障情報を取得する。
【００１８】
図９はアドレス逆変換テーブル１０ａを模式図に示したものである。プロセッサエレメントに一対一で対応付けられた選択トランジスタ４やヒューズ６から得られる列情報、行情報をアドレス逆変換テーブル１０に入力すると、列情報と行情報との交点に記録されているデータが、各プロセッサエレメントに接続されるアドレステーブル８ｂで用いられるアドレス情報になるように、アドレス逆変換テーブル１０ａを構成する。例えば、各プロセッサエレメント上記列情報、行情報は、全てのプロセッサエレメントに通し番号を割り振ったとき、この通し番号にアドレス逆変換テーブル１０によって変換され、上記通し番号がアドレス情報の一部を構成することになる。なお、行情報と列情報をそのまま、プロセッサエレメント２の位置情報とする場合には、アドレス逆変換は行わない。
【００１９】
図１０は、複数個の故障に耐性を持たせるための回路、すなわち、ＡＮＤ回路３と、選択トランジスタ４と、例えばヒューズからなるメモリ素子６と、タイマー２４とを含む回路の一例を示す図である。初期状態として、ヒューズ素子６は低抵抗状態（ＯＮ状態）である。テストの結果により、プロセッサエレメントに故障が無ければ、選択トランジスタ４はＯＦＦのままなので、ヒューズ素子６に電流は流れない。故障が発見された場合には、選択トランジスタ４がＯＮし、ヒューズ素子６に電流が流れる。それにより、電圧降下が起き、故障したプロセッサエレメントの箇所を知らせるが、その電流値でヒューズ素子６が壊れるなどの変化が起き、高抵抗状態になるように、ヒューズや電流値を設計しておく。なお、ヒューズ素子の代わりに例えば可変抵抗型のメモリ素子を用いる場合には、上記電流値で状態が例えばＯＦＦになる等の変化が起きてメモリ素子が高抵抗状態になるように、メモリ素子や電流値を設計しておく。このとき、ヒューズ素子やメモリ素子の状態変化は、故障したプロセッサエレメントの位置情報をセンスアンプ３０や送信回路１０が取得した後に起こる必要があるので、センスアンプ３０や送信回路１０が上記位置情報を取得するまでの時間は、ヒューズの状態変化が起こる程度に時間がかかって構わない。このようにすると、次回のテスト時にも故障したプロセッサエレメントのため選択トランジスタ４はＯＮするが、その場合はヒューズ素子やメモリ素子が高インピーダンスのため、電流は流れない。つまり、この構成では、最初にプロセッサエレメントが故障したときのみ電流が流れ、電圧降下が起こる。プロセッサエレメントの故障が一度のテストで一つしか起きないとすれば、これで複数個のプロセッサエレメントが順に故障しても対応できる。この場合、送信回路１０やスイッチボックス８やその他の場所に、故障したプロセッサエレメントの履歴を記録し、その履歴に記載されているプロセッサエレメントを使用しないように設定する。
【００２０】
また、最初に電源を投入した時に、高電圧Ｖ＿ｈｉｇｈと低電圧Ｖ＿ｌｏｗとの電位差をヒューズ素子６の状態が書き換わらない程度に小さく設定し、各ヒューズ素子６を選択するトランジスタ４を、各行または各列ごとスキャンしながら、ヒューズ素子６の状態を検査して故障したプロセッサエレメントの情報を図示しない履歴テーブルに記録していくことで、次回の回路使用時も故障したプロセッサエレメントの使用を回避することができる。スキャンのための信号は、ヒューズ素子６を書き換えるための信号とスキャン信号とのＯＲ演算を取った後の信号を用いても良いし、スキャンのための選択トランジスタを別に設けても良い。もし一度のテストでプロセッサエレメントの故障が一つという条件が満たされないときは、一度にテストするプロセッサエレメントの数を、それが満たされる程度に減らし、全体のテストを複数回に分けて行えばよい。ヒューズ素子やメモリ素子を使うことで、面積を縮小することができる。特に３次元化すると、半導体集積回路の面積をより縮小することができる。
【００２１】
図１１は別の回路で実現する例である。ここではヒューズ素子の代わりにトランジスタ７を用いている。テスト結果の出力を不揮発メモリ５に記録し、トランジスタ７の駆動を不揮発メモリ５で行う。また、ここでは電源投入時のテストのためのスキャン信号を別のトランジスタ９を用意することで行う例を示している。トランジスタ９は、通常動作させる場合は常にONさせておき、スキャンを行う時は、スキャンするトランジスタをONさせ、それ以外はOFFさせて使用する。トランジスタはｎ型ＭＯＳＦＥＴでもｐ型ＭＯＳＦＥＴでも構わないが、不揮発メモリ５やスキャン用信号をゲートに受ける。不揮発メモリ５はヒューズ素子のような２端子メモリでもよいし、フラッシュメモリのような３端子メモリでも良い。
【００２２】
以上説明したように、本実施形態によれば、まず、各プロセッサエレメントと１対１に対応したスイッチ素子、例えばトランジスタやヒューズ、メモリ素子を設け、故障したプロセッサエレメントがあれば、それに対応したスイッチ素子の状態を変えて、故障したプロセッサエレメントを特定する。次に、故障したプロセッサエレメントの位置情報から、スイッチボックスのアドレステーブル内の消去すべきアドレスを認識し、全てのプロセッサエレメントの持つアドレステーブルを一括に書き換える。すなわち、複数のプロセッサエレメント間で故障情報を瞬時に共有することができる。そして、プロセッサエレメントは、読み出そうとしたテーブルの内容が故障情報であれば、それを無視して、アドレステーブルの次の情報を再読み込みすることで、システムとして故障耐性を持たせることが出来る。
【００２３】
（第２実施形態）
次に、本発明の第２実施形態による半導体集積回路を図１２に示す。本実施形態の半導体集積回路においては、各プロセッサエレメント２のアドレス情報を有するアドレステーブルを備えたスイッチボックス８は３次元的に、各プロセッサエレメント２の直上に設けられているが、プロセッサエレメント２と対応していれば良い。ただし、３次元的に配置することで、回路面積を小さくすることが可能になり、また、アドレステーブル間の配線が容易になる。各アドレステーブル８ｂには、図１３に示すように、それぞれのプロセッサエレメント２が使用可能か否かのフラグビットを設け、そのフラグビットを制御する選択トランジスタのゲートは、同じプロセッサエレメントの情報であれば、全て共通に接続する。図１３は、アドレステーブル８ｂの構成の一例を示したものである。例えば、パケットに付加されている情報をもとにデータを取得すると、プロセッサエレメントのＸ座標、Ｙ座標などの位置情報が得られるが、それと共にプロセッサエレメント２が使用可能かどうかを示すフラグビットを付ける。フラグビットは例えば、「１」のときは使用可能で、「０」のときは使用不可、というように区別する。もちろん、逆でも構わない。スイッチボックス８がデータを他のプロセッサエレメントへ送信するときにアドレステーブル８ｂを参照するが、そのときフラグビットが「０」である場合には、そのプロセッサエレメントは指定されず、別のプロセッサエレメント、例えば、アドレス順で次のプロセッサエレメントなどへ送信先を変更する。ただし、アドレス順で次のプロセッサエレメントに送信先を変更する場合は、送信先のプロセッサエレメンが同種のプロセッサエレメントであるか否かに注意する。例えば、送信側のプロセッサエレメントがプロセッサの場合は送信先のプロセッサエレメントはプロセッサとなるようにし、送信側のプロセッサエレメントがメモリである場合は、送信先のプロセッサエレメントがメモリとなるようにする。
【００２４】
図１４は、本実施形態に係る各スイッチボックス８のアドレステーブルを実現する回路の一例を示す図である。図１４に示すＲＯＭ回路５０は通常のＲＯＭ回路で、ここでは、ＲＯＭ回路のメモリ素子となるトランジスタのソースがグランドに結線されているかどうかをセンスするようにしているが、別の種類のＲＯＭ回路でも構わない。ＲＯＭ回路５０の一つのワードラインに接続されているメモリ素子に記憶されているデータが一つのプロセッサエレメントの位置情報となる。この位置情報はワードラインを例えば「Ｈ」レベルにすることにより、このワードラインに接続されているメモリ素子の記憶されているデータをセンスアンプ３０によって読み出すことにより得られる。フラグビット生成回路４０は、各プロセッサエレメントに対応して設けられた、選択トランジスタ４０ａ、ヒューズ素子４０ｂ、およびプログラム用トランジスタ４２を備えている。選択トランジスタ４０ａのゲートはワードラインに接続され、ドレインがビットラインを介してセンスアンプ３０に接続され、ソースがヒューズ素子４０の一端に接続されている。ヒューズ素子４０ｂの他端は接地されている。プログラム用トランジスタは、ｐ型ＭＯＳＦＥＴであって、ゲートにプログラム信号を受け、ドレインに高電圧Ｖ＿ｈｉｇｈが印加され、ソースがヒューズ素子４０ｂの上記一端に接続している。なお、このプログラム信号は、本実施形態においては、図６に示す回路内のＡＮＤ回路の出力を反転した信号となっている。すなわち、本実施形態においても、図６に示すタイマー回路２４およびＡＮＤ回路３を備えている。
【００２５】
トランジスタ４２のＯＦＦ抵抗は、ヒューズ素子４０ｂの高抵抗状態と低抵抗状態の間の抵抗値にしておく場合には、この図１４に示す構成では、ワードラインにより選択トランジスタ４０ａがＯＮされた時に、ヒューズ素子４０ｂが低抵抗状態であれば「Ｌ」レベルの信号を、高抵抗状態であれば「Ｈ」レベルの信号がビットラインに出力される。トランジスタ４２とヒューズ素子４０ｂの位置を逆にすれば、逆の関係となる。トランジスタ４２のＯＦＦ抵抗がヒューズ素子４０ｂの抵抗状態によらず高い場合には、ビットラインを「Ｈ」レベルにプリチャージしておき、ワードラインにより選択トランジスタ４０aがＯＮされた時に、ヒューズ素子４０ｂの抵抗状態に応じてビットラインの電圧が変わることを利用して、その差をセンスアンプで読み出すことで、情報を読み出すことができる。このフラグビットを示す信号は、ワードラインを例えば「Ｈ」レベルにすることにより、センスアンプ３０によって読み出される。このとき、対応するプロセッサエレメントの位置情報も同時にセンスアンプ３０によって読み出される。このフラグビット生成回路４０をプログラムするためのプログラム信号は、全てのスイッチボックス８のアドレステーブルで共通とする。このように、ヒューズ素子で実現したフラグビットをＲＯＭ５０と同じワードラインで選択することで、アドレステーブルでプロセッサエレメントの位置情報と同時にそのプロセッサエレメントの故障状態を示すことができる。また、ヒューズの状態がそのままプロセッサエレメントの状態を示し、このヒューズの状態は不揮発性なので、第１実施形態と異なり、電源投入時にスキャンをして故障情報を読み込まなくても良い。本実施形態においては、フラグビット生成回路４０およびＲＯＭ回路５０が、故障したプロセッサエレメントを特定する回路となっている。
【００２６】
図１５はフラグビット生成回路４０の他の具体例を示す回路図である。３端子の浮遊ゲート型メモリ素子４０ｃと、ゲートがワードラインに接続された選択トランジスタ４０ａとを備えている。選択トランジスタ４０ａのドレインがビットラインを介してセンスアンプ３０に接続され、ソースがメモリ素子４０ｃの一端に接続されている。メモリ素子４０ｃは、他端が接地され、ゲートにプログラム信号を受ける。ビットラインを高電位までプリチャージし選択トランジスタ４０ａをＯＮとすると、メモリ素子４０ｃの閾値が高い場合には出力は「Ｈ」レベルとなり、閾値が低い場合には「Ｌ」レベルとなる。閾値の状態は、プロセッサエレメントのテスト結果によって生成される信号によってプログラムされる。プロセッサエレメントの故障の有無のどちらを高い閾値にし、どちらを低い閾値にするかは任意である。なお、３端子メモリ４０ｃの他端を高電位側につなぎ、ビットラインを「Ｌ」レベルにプリチャージすることもできる。同じプロセッサエレメントの情報を表す選択トランジスタ４０ａのゲートを、全てのスイッチボックス８で共有することで、一括にフラグビットを書き込むことができる。プロセッサエレメント２はこの値を読むことで、送信しようとするプロセッサエレメント２が故障しているかどうかを判断することができる。また、メモリ素子４０ｃの状態がそのままプロセッサエレメントの状態を示し、このメモリ素子４０ｃは不揮発性なので、第１実施形態の場合と異なり、電源投入時にスキャンをして故障情報を読み込まなくても良い。このように、フラグビットや故障状態を示すメモリは、３端子メモリ素子を用いても実現できる。
【００２７】
以上説明したように、本発明の各実施形態によれば、各エレメントの故障情報を瞬時に共有することができるので、より故障耐性に優れた回路を作製することができる。上記実施形態では、ネットワークオンチップシステムを意識して、各エレメントがアドレステーブルを持つ構成を例にして説明したが、それ以外のマルチプロセッサシステムに、本発明を適用して、各プロセッサが持つ故障テーブルを瞬時に更新する、といった使用方法も考えられる。この場合、故障情報の共有がすぐに行われるので、システムのパフォーマンスの低下を抑えられるという利点が得られる。
【図面の簡単な説明】
【００２８】
【図１】本発明の第１実施形態による半導体集積回路を示す模式図。
【図２】第１実施形態に係るプロセッサエレメントを示すブロック図。
【図３】第１実施形態に係るプロセッサエレメントのテスト回路を示すブロック図。
【図４】第１実施形態に係るスイッチボックスを示すブロック図。
【図５】ネットワークオンチップを示す図。
【図６】故障したプロセッサエレメントを特定するための回路を示す回路図。
【図７】テスト回路の動作を説明する図。
【図８】送信回路を示すブロック図。
【図９】アドレス逆変換テーブルの一例を示す図。
【図１０】複数のプロセッサエレメントの故障に耐性を持たせる回路の一例を示す図。
【図１１】複数のプロセッサエレメントの故障に耐性を持たせる回路の他の例を示す図。
【図１２】第２実施形態による半導体集積回路を示す模式図。
【図１３】第２実施形態におけるアドレステーブルの一例を示す図。
【図１４】図１３に示すアドレステーブルを実現する回路図。
【図１５】フラグビット生成回路の他の具体例を示す回路図。
【符号の説明】
【００２９】
２  プロセッサエレメント
２ａ  本体部
２ｂ  インターフェース部
２ｃ  テスト回路
２ｃ１  テストデータ保持回路
２ｃ２  テストデータ入力レジスタ
２ｃ３  テストデータ出力レジスタ
２ｃ４  比較回路
２ｃ５  出力回路
３  ＡＮＤ回路
４  選択トランジスタ
５  不揮発性メモリ
６  メモリ素子
７  ｎ型ＭＯＳＦＥＴ
８  スイッチボックス
８ａ  経路選択回路
８ｂ  アドレステーブル
９  ｎ型ＭＯＳＦＥＴ
１０  送信回路
１０ａ  アドレス逆変換テーブル
１０ｂ  出力回路
１２  配線
１４  配線
２０  ｐ型ＭＯＳＦＥＴ
２２  ｎ型ＭＯＳＦＥＴ
２４  タイマー
３０  センスアンプ
４０  フラグビット生成回路
４０ａ  ｎ型ＭＯＳＦＥＴ
４０ｂ  ヒューズ素子
４０ｃ  浮遊ゲート型メモリ素子
４２  ｐ型ＭＯＳＦＥＴ
５０  ＲＯＭ回路
【図１】
2009205258.tif 000003
【図２】
2009205258.tif 000004
【図３】
2009205258.tif 000005
【図４】
2009205258.tif 000006
【図５】
2009205258.tif 000007
【図６】
2009205258.tif 000008
【図７】
2009205258.tif 000009
【図８】
2009205258.tif 000010
【図９】
2009205258.tif 000011
【図１０】
2009205258.tif 000012
【図１１】
2009205258.tif 000013
【図１２】
2009205258.tif 000014
【図１３】
2009205258.tif 000015
【図１４】
2009205258.tif 000016
【図１５】
2009205258.tif 000017