(57)【要約】【課題】ビット単位で冗長の構成情報を持つことを要せず、また、データ処理部のアレイに新たに冗長行を追加することを要せず、少ない冗長用面積で欠陥救済を可能にする。【解決手段】ｍ（２以上の整数）ビット演算幅のデータ処理部に対してｍビットの信号配線にｉ（ｍより小さな正の整数）ビットの冗長配線を付加した信号経路を採用し、データ処理部の前段にｍ＋ｉビットの入力信号から所望位置のｍビットを選択して出力する入力セレクタを設け、データ処理部の最終段にｍビットの処理信号をｍ＋ｉビットの前記所望位置に配置して出力する出力先セレクタを設ける。入力セレクタと出力先セレクタにより、データ処理部が介在される信号経路のある部分の欠陥に対する救済結果は当該経路に等しく伝播される。【選択図】図１
2015082671.tif 000002
【特許請求の範囲】
【請求項１】
ｍ＋ｉ（ｉとｍは、ｍ≧２、ｍ＞ｉの関係を有する正の整数）ビットの入力とｍビットの出力とを有する入力セレクタと、
前記入力セレクタの前記ｍビットの出力に結合されたｍビットの入力を有するｍビットデータ処理幅のデータ処理部と、
前記データ処理部の前記ｍビットの出力に結合されたｍビットの入力と、ｍ＋ｉビットの出力とを有する出力先セレクタと、
前記入力セレクタ及び出力先セレクタに結合され、前記入力セレクタの前記ｍ＋ｉビットの入力の内から所望ビット位置のｍビットを前記入力セレクタの前記ｍビットの出力へ結合させることを可能にし、且つ、前記出力先セレクタの前記ｍビットの入力を、前記出力先セレクタの前記ｍ＋ｉビットの出力の内の前記所望ビット位置のｍビットの出力へ結合させることを可能にする信号生成部と、を有する半導体装置。
【請求項２】
前記入力セレクタ、データ処理部及び出力先セレクタをセットとする複数のデータ処理エレメントを有し、
前記複数のデータ処理エレメント間で前記入力セレクタの入力と前記出力先セレクタの出力とを可変に接続する信号経路網を更に有し、
前記信号経路網は、前記入力セレクタの入力に接続するｍ＋ｉビットのビット幅を持つ第１信号経路と、
前記出力先セレクタの出力に接続するｍ＋ｉビットのビット幅を持つ第２信号経路と、
入力に接続された複数の第２信号経路から可変に選択した一つの信号経路を、出力に接続された第１信号経路に接続する可変スイッチ部と、を有する請求項１記載の半導体装置。
【請求項３】
前記データ処理部は、ｍビット演算幅の演算器と、前記演算器によるハードウェア構成を定義するハードウェア定義記憶部とを有する、請求項２記載の半導体装置。
【請求項４】
前記信号生成部は、複数個の前記データ処理エレメントのグループ単位で共通化されている、請求項２記載の半導体装置。
【請求項５】
前記入力セレクタは、ｍ＋ｉビットの入力の最下位又は最上位の一方から１ビットずつずれた隣接するｉ＋１ビットを入力して何れか１ビットを選択するｍ個のｉ＋１ビットの入力を持つ第１セレクタによって、ｍ＋ｉビットの入力からｍビットを選択可能とする、請求項２記載の半導体装置。
【請求項６】
前記出力先セレクタは、ｍビットの入力の最下位ビットをｍ＋ｉビットの出力の最下位ビットとし、前記ｍビットの入力の最下位ビットを除く下位側からの各ビットで、当該ビットとその下位側の最大ｉビットまでの下位側ビットとを入力とするｍ−１個の第２セレクタと、ｍビットの入力の最上ビットをｍ＋ｉビットの出力の最上位ビットとし、更にｉ≧２のとき、前記ｍ＋ｉビットの出力のｍ＋１ビット目から最上位ビットの直前までの各出力ビットに対し、当該ビットからその最上位ビットまでのビット数分だけ繰り下がったｍビットの入力のビット位置からその最上位ビットに至るまでのビットを入力するｉ−１個の第３セレクタとによって、ｍ＋ｉビットの出力における入力のｍビットの配置を選択可能とする、請求項５記載の半導体装置。
【請求項７】
前記入力セレクタは、ｍ＋ｉビットの内のｍビットの入力を夫々１ビットずつ個別に入力すると共に、ｍ＋ｉビットの内の残りのｉビットを夫々共通に入力する夫々ｉ＋１個の入力を持つｍ個の第４セレクタによって、ｍ＋ｉビットの入力からｍビットを選択可能とする、請求項２記載の半導体装置。
【請求項８】
前記出力先セレクタは、ｍビットの入力からｉビットを選択する第５セレクタを有し、ｍビットの入力をｍビットの出力とし、前記第５セレクタの出力をｍビット出力の最上位に続くｉビットの出力とする、請求項７記載の半導体装置。
【請求項９】
前記入力セレクタのｍ＋ｉビットの入力に対するパリティ検出回路を有すると共に、前記データ処理部のｍビットの出力を入力してｉビットのパリティ信号を生成するパリティ生成回路を有する、請求項１記載の半導体装置。
【請求項１０】
前記出力先セレクタは、冗長モードにおいてｍ＋ｉビットの出力の最上位ビットにはｍビットの入力の最上位ビットを結合し、パリティモードにおいてｍ＋ｉビットの出力の最上位には前記パリティ生成回路で生成したパリティ信号を結合する第６セレクタを有する、請求項９記載の半導体装置。
【請求項１１】
前記入力セレクタのｍ＋ｉビットの入力に対するＥＣＣ検出及び訂正処理を行ってｍビットを出力するＥＣＣエラー検出訂正回路と、前記データ処理部のｍビットの出力を入力してｉビットのＥＣＣチェックコードを生成するＥＣＣ生成回路とを有する、請求項１記載の半導体装置。
【請求項１２】
前記入力セレクタは、ＥＣＣモードでは前記ｍ＋ｉビットの入力に対してＥＣＣ検出及び訂正処理を行って得られたｍビットを、冗長モードでは前記ｍ＋ｉビットの入力の内から所望ビット位置のｍビットを、前記入力セレクタの前記ｍビットの出力へ結合することを可能とし、
前記出力先セレクタは、ＥＣＣモードでは前記ｍビットの入力に前記ＥＣＣ生成回路で生成したｉビットのＥＣＣチェックコードを付加してｍ＋ｉビットの出力に結合し、冗長モードでは前記ｍビットの入力を、前記ｍ＋ｉビットの出力の内の前記所望ビット位置のｍビットへ結合可能とする、請求項１１記載の半導体装置。
【請求項１３】
ｍ（ｍは、ｍ≧２の関係を有する正の整数）ビットの出力を持つ複数の回路モジュールと、
夫々対応する前記回路モジュールのｍビットの出力に結合されたｍビットの入力とｍ＋ｉ（ｉは、ｍ＞ｉの関係を持つ正の整数）ビットの出力とを有する複数の出力先セレクタと、
前記複数の出力先セレクタのｍ＋ｉビットの出力を一単位としてその複数単位に結合するｍ＋ｉビットの複数単位の入力と前記複数単位の入力から選択された一単位のｍ＋ｉビットの出力とを有するモジュールセレクタと、
前記モジュールセレクタの出力に結合するｍ＋ｉビットの入力とｍビットの出力とを有する入力セレクタと、
前記出力先セレクタのｍビットの入力を、前記出力先セレクタの前記ｍ＋ｉビットの出力の内の所望ビット位置のｍビットの出力へ結合せることを可能とし、且つ、前記入力セレクタの前記ｍ＋ｉビットの入力の内から前記所望ビット位置のｍビットを前記入力セレクタの前記ｍビットの出力へ結合させることを可能とする信号生成部と、を有する半導体装置。
【請求項１４】
ｍ（ｍは、ｍ≧２の関係を有する正の整数）ビットの演算幅を有する複数個のデータ処理エレメントと、
前記データ処理エレメント間を所望に接続する信号経路網と、
冗長設定部と、を有する演算処理用の半導体装置であって、
前記信号経路網は、夫々ｍ＋ｉ（ｉは、ｍ＞ｉの関係を有する正の整数）ビットのビット幅を持つ複数の信号経路を有し、
前記データ処理エレメントは、前記信号経路から信号を受ける入力段に冗長入力セレクタを有し、且つ、前記信号経路に信号を渡す出力段に冗長出力先セレクタを有し、
前記冗長入力セレクタは、前記ｍ＋ｉビットの入力から前記冗長設定部の設定に基づいて指定されたビット位置のｍビットを選択して後段に出力し、
前記冗長出力先セレクタは、前記データ処理エレメントによるｍビットの処理結果を前記冗長設定部の設定に基づいて指定されたビット位置に配置したｍ＋ｉビットを後段に出力する、半導体装置。
【請求項１５】
前記冗長設定部は前記ビット位置を設定するための不揮発性記憶回路を有する、請求項１４記載の半導体装置。
【請求項１６】
可変信号経路網、これに接続される複数個のデータ処理エレメント、及び可変設定部を有する半導体装置であって、
前記データ処理エレメントは、ｍ＋ｉ（ｉとｍは、ｍ≧２、ｍ＞ｉの関係を有する正の整数）ビットの入力とｍビットの出力とを有する入力セレクタと、
前記入力セレクタの前記ｍビットの出力に結合されたｍビットの入力を有するｍビット演算幅の演算部と、を有し、
前記可変設定部は、前記入力セレクタに結合され、前記入力セレクタの前記ｍ＋ｉビットの入力の内から所望のｍビットを前記入力セレクタの前記ｍビットの出力へ結合させることを可能にする信号を生成し、
前記可変信号経路網は、ｍ＋ｉビットのビット幅を持つ複数の信号経路と、入力に接続された複数の信号経路から可変可能に選択した一つの信号経路を前記入力セレクタの入力に接続する可変スイッチ部とを有する、半導体装置。
【請求項１７】
可変信号経路網、これに接続される複数個のデータ処理エレメント、及び可変設定部を有する半導体装置であって、
前記データ処理エレメントは、ｍビット出力を有するｍビット演算幅の演算部と、
前記演算部の前記ｍビット出力に結合されたｍビットの入力と、ｍ＋ｉ（ｉとｍは、ｍ≧２、ｍ＞ｉの関係を有する正の整数）ビットの出力とを有する出力先セレクタと、を有し、
前記可変設定部は、前記出力先セレクタに結合され、前記出力先セレクタの前記ｍビットの入力を、前記出力先セレクタの前記ｍ＋ｉビットの出力の内の所望のｍビットの出力へ結合させることを可能にする信号を生成し、
前記可変信号経路網は、ｍ＋ｉビットのビット幅を持つ複数の信号経路と、前記複数の冗長出力先セレクタの出力に前記信号経路を介して接続するｍ＋ｉビットの入力を複数持ち、当該複数の入力の中から可変可能に選択した一つをｍ＋ｉビットの出力に接続する可変スイッチ部とを有する、半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の回路を接続する経路網の故障に対する冗長の技術に関し、例えばデータ処理機能を再構成可能な複数のデータ処理エレメントを信号経路網で可変に接続可能に構成されたプロセッサアレイに適用して有効な技術に関する。
【背景技術】
【０００２】
ＦＰＧＡ（field-programmable gate array）やＰＬＤ（(Programmable Logic Device）などの再構成可能デバイスは、プログラマブルな配線資源によって機能ブロックの接続関係を変更することによって、さまざまな処理を実現できる。プログラマブルな配線資源や機能ブロックのプログラム情報は、内蔵された構成情報メモリによって記憶される。構成情報メモリはＳＲＡＭ（Static Random Access Memory）やフリップフロップ、或いはフラッシュメモリなどの記憶素子によって構成される。そして、プログラマブルな配線資源中のスイッチの状態を、接続された構成情報メモリの内容により決定し、配線のプログラムを可能とする。
【０００３】
このような再構成可能デバイスは、非常に面積効率が悪い。ＦＰＧＡ上に論理を実装すると、同じ論理を同じプロセスのスタンダードセルでハードウェア設計した場合に比べ一般に数十〜百倍超の面積を必要とすると言われている。これは、例えゲート１段の論理を作る場合でも、ＦＰＧＡやＰＬＤではメモリから成るルックアップテーブルや何段ものプログラマブル配線、及び配線を設定する構成情報メモリなどが必要となるためである。そのため、ＦＰＧＡやＰＬＤのダイの面積（チップ面積）は、再構成可能とされない半導体集積回路よりかなり大きい傾向にあるため、一枚のシリコンウェハー上からとれるチップの個数が少なくなる上に、チップ上に製造上の欠陥が生じる可能性も大きくなり、チップコストが非常に高くなる。
【０００４】
再構成可能デバイスの回路の一部に予め冗長な領域を設けておき、欠陥部分をこの冗長な領域に置き換えることによって、半導体チップ全体が不良品とならないようにする手法が提案されている。特許文献１では再構成可能デバイスの論理アレイブロックに冗長の行を設けておき、欠陥のある行と置換することでチップを良品として出荷できるようにしている。
【０００５】
特許文献２及び特許文献３に記載されたアレイ型プロセッサは、プロセッサエレメント（データ処理エレメント）をアレイ状に並べたものをプログラマブルな配線で電気的に接続した構成からなる。このアレイ型プロセッサの特徴の一つは、内部の処理単位として複数ビット幅の演算器及びプログラマブルスイッチを持っていることである。演算器間の接続自由度を持たせるために、例えば図２５に例示するように多入力の複数のプログラマブルスイッチによって演算器が接続される。内部の処理単位はｍビットのような１種類に限定されず、ｍビット／ｎビット等複数種類から成ることもある。
【０００６】
そのようなアレイ型プロセッサは対象処理に応じて、ハードウェア構成を変更できるが、従来のＦＰＧＡやＰＬＤに比べて面積効率が優れている。これは、図２６に例示するようにＦＰＧＡはｍビット幅の演算器やプログラマブルスイッチに対してビット単位で構成情報メモリを持つ。これに対してアレイ型プロセッサは図２７に例示されるようにｍビット幅のプログラマブルスイッチや演算器が実行する命令は共通の構成情報メモリで設定できる。このように、ＦＰＧＡでは１ビット毎に設定しなければならないため、ＦＰＧＡにおけるｍビット幅の設定にはアレイ型プロセッサのｍ倍の構成情報メモリが必要になる。アレイ型プロセッサには処理の大半をｍビット演算器及びｍビットプログラマブルスイッチで効率よく行なうことで、少ない面積で汎用的な処理が実現できるという利点がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−３３６５４号公報
【特許文献２】特許第３５２８９２２号公報
【特許文献３】特開２００８−１５７７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載される再構成可能デバイスは、例えば図２５で概念化されるように論理アレイブロックの複数の演算行に対して冗長の行（冗長の演算行）を設けておき、欠陥のある行と置換する構成となっている。再構成可能デバイスは、各プログラマブル配線毎に遅延値が定義されており、これらの要素や機能ブロックの遅延値等の総和から、回路のクリティカルパスを計算し、再構成可能デバイス上に実装した回路がどれだけの速度で動くか保証する。特許文献１のように、欠陥が発生し冗長の行に置き換える際には、冗長行までの配線距離が変化するため、配線抵抗により、置き換えない場合よりも遅延が増大する。また、このデバイスでは、欠陥の発生位置によっては、置き換えない場合に比べて追加のバッファが入ることもあり、その場合バッファの分だけ遅延が増大する。同じ構成情報を設定した場合に、外部から見たチップの動作が同じにするためには、このような配線全てに関して、遅延マージンを見込んでおく必要があり、保証できる遅延性能が悪くなってしまう。大きな遅延マージンを見込まなければ、欠陥を救済したチップも、欠陥なしのチップもあわせて区別なく良品として出荷することができなくなる。要するに、外部から見たチップの動作が双方で同じにならなくなる。
【０００９】
また、このような冗長領域の持たせ方では代替不能な縦配線が生じる。特許文献１の図7のアレイブロックを縦に貫いている垂直トレース自体に欠陥が生じ、配線が切れたりショートしたりした場合は救済不能である。
【００１０】
更に、論理アレイブロックに冗長の行を設けるような手法では、冗長の行には構成情報メモリなども含まれるため、冗長領域の面積が大きくなり、チップコストが増大する。したがってアレイ型プロセッサに、冗長行を設けて欠陥救済を行なう技術を採用することは得策ではない。
【００１１】
特許文献１にも記載の再構成可能デバイスは一般的にプログラマブルな配線資源が面積の多くの部分を占めている。アレイ型プロセッサのようなデバイスでは、ｍビット幅のスイッチが共通の構成情報メモリで制御できるため、相対的に構成情報メモリの割合が下がり、プログラマブルスイッチの面積の割合が多くなる。欠陥の発生場所はチップ上の面積の多くを占める箇所で発生するため、少ない冗長用面積で欠陥救済を可能にするには、このプログラマブルスイッチなどを含む信号経路網との接続部分に着目して冗長を構成することの優位性が本発明者によって見出された。
【００１２】
上記並びにその他の課題と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される実施の形態のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１４】
すなわち、ｍビット演算幅のデータ処理部に対してｍビットの信号配線にｉビットの冗長配線を付加した信号経路を採用し、データ処理部の前段にｍ＋ｉビットの入力信号から所望位置のｍビットを選択して出力する入力セレクタを設け、データ処理部の最終段にｍビットの処理信号をｍ＋ｉビットの前記所望位置に配置して出力する出力先セレクタを設ける。入力セレクタと出力先セレクタにより、データ処理部が介在される信号経路のある部分の欠陥に対する救済結果は当該経路に等しく伝播される。したがって、ｍ＋ｉビットに対するｍビットの所望位置を設定する冗長設定情報を共有する入力セレクタ及び出力先セレクタのグループ単位で信号経路のスイッチや配線の欠陥救済が可能になる。
【発明の効果】
【００１５】
本願において開示される実施の形態のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１６】
すなわち、ビット単位で冗長の構成情報を持つことを要せず、また、データ処理部のアレイに新たに冗長行を追加することを要せず、少ない冗長用面積で欠陥救済が可能になる。
【図面の簡単な説明】
【００１７】
【図１】図１は再構成可能デバイスの接続構成を例示するブロック図である。
【図２】図２は再構成可能デバイスのアレイ構成を例示する説明図である。
【図３】図３はデータ処理部の具体例を示すブロック図である。
【図４】図４は信号生成部の具体例を示すブロック図である。
【図５】図５はｍ＝８、ｉ＝１の場合における冗長入力セレクタの一例を示すブロック図である。
【図６】図６はｍ＝８、ｉ＝１の場合における冗長出力先セレクタの一例を示すブロック図である。
【図７】図７は信号生成部における冗長制御信号ｓ０〜ｓ７の生成論理を真理値表で例示する説明図である。
【図８】図８は図７の真理値表を実現する冗長制御信号生成回路の具体的な論理を例示する論理回路図である。
【図９】図９はデータ処理エレメントのアレイ全体を２個のブロックに分けて信号生成部を個別化した例を示す説明図である。
【図１０】図１０はｍ＝８、ｉ＝２の場合における冗長入力セレクタの一例を示すブロック図である。
【図１１】図１１はｍ＝８、ｉ＝２の場合における冗長出力先セレクタの一例を示すブロック図である。
【図１２】図１２はｍ＝８、ｉ＝１の場合における冗長入力セレクタの別の例を示すブロック図である。
【図１３】図１３はｍ＝８、ｉ＝１の場合における冗長出力先セレクタの別の例を示すブロック図である。
【図１４】図１４はデータ処理エレメントにパリティ検出生成機能を追加した例を示すブロック図である。
【図１５】図１５は図６の回路にパリティ生成回路を付加した例を示すブロック図である。
【図１６】図１６は図５の回路にパリティ検出回路を付加した例を示すブロック図である。
【図１７】図１７はデータ処理エレメントにＥＣＣ機能を追加した例を示すブロック図である。
【図１８】図１８は再構成可能デバイスを搭載したマイクロコンピュータを例示するブロック図である。
【図１９】図１９は再構成可能デバイスの別の応用例を示すブロック図である。
【図２０】図２０は図１９で採用する機能再構成セルの一例を示すブロック図である。
【図２１】図２１は複数の機能再構成セルのアレイ構成を例示するブロック図である。
【図２２】図２２は再構成可能デバイスの信号経路網の他の形態を例示するブロック図である。
【図２３】図２３は夫々ｍビットの出力を形成するｎ個の回路モジュールに対するピンマルチへの応用例を示すブロック図である。
【図２４】図２４夫々ｍビットを出力する複数のモリに対する選択の応用例を示すブロック図である。
【図２５】図２５は多入力の複数のプログラマブルスイッチによって演算器が接続されるアレイ型プロセッサにおいて演算冗長行を設けた救済手法を参考として示す説明図である。
【図２６】図２６はＦＰＧＡにおいてｍビット幅の演算器やプログラマブルスイッチに対してビット単位で構成情報メモリを持つ構成を参考として示す説明図である。
【図２７】図２７はアレイ型プロセッサにおいてｍビット幅のプログラマブルスイッチや演算器が実行する命令は共通の構成情報メモリで設定可能であることを示すための説明図である。
【発明を実施するための形態】
【００１８】
１．実施の形態の概要
先ず、本願において開示される実施の形態について概要を説明する。実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１９】
〔１〕＜入力セレクタ、データ処理部、出力先セレクタ、信号生成部＞
半導体装置（１００，１２０）は、入力セレクタ（２１）、データ処理部（２０、１３５〜１４２）、出力先セレクタ（２２）、及び信号生成部（２３）を有する。入力セレクタは、ｍ＋ｉ（ｉとｍは、ｍ≧２、ｍ＞ｉの関係を有する正の整数）ビットの入力とｍビットの出力とを有する。データ処理部は、前記入力セレクタの前記ｍビットの出力に結合されたｍビットの入力を有するｍビットデータ処理幅を持つ。出力先セレクタは、前記データ処理部の前記ｍビット出力に結合されたｍビットの入力と、ｍ＋ｉビットの出力とを有する。信号生成部は、前記入力セレクタ及び出力先セレクタに結合され、前記入力セレクタの前記ｍ＋ｉビットの入力の内から所望ビット位置のｍビットを前記入力セレクタの前記ｍビットの出力へ結合させることを可能にし、且つ、前記出力先セレクタの前記ｍビットの入力を、前記出力先セレクタの前記ｍ＋ｉビットの出力の内の前記所望ビット位置のｍビットの出力へ結合させることを可能にする。
【００２０】
これによれば、ｍビット演算幅のデータ処理部の入力段に入力セレクタが配置され、出力段に出力先セレクタが配置されることによって、入力セレクタのｍ＋ｉビットの入力の内のｉビットが冗長になり、出力先セレクタのｍ＋ｉビットの出力の内のｉビットが冗長になる。双方のセレクタのｍ＋ｉビット中における所望ビット位置のｍビットの配置が等しくされるので、データ処理部のブロック単位で信号生成部を共通化すれば、ブロック毎にｍ＋ｉビット中の最大ｉビットの欠陥を救済することができる。欠陥の発生率がきわめて少ない場合にはデータ処理部のアレイ全体で信号生成部を共通化すればよい。欠陥の発生率が高い場合にはそれに応じて信号生成部を共通化するデータ処理部のブロックサイズを小さくしていけばよい。したがって、ビット単位で冗長の構成情報を持つことを要せず、また、データ処理部のアレイに冗長行を新たに追加することを要せず、少ない冗長用面積で欠陥救済が可能になる。
【００２１】
〔２〕＜可変スイッチ部＞
項１において、前記入力セレクタ、データ処理部及び出力先セレクタをセットとする複数のデータ処理エレメント（２，１３０）を有する。前記複数のデータ処理エレメント間で前記入力セレクタの入力と前記出力先セレクタの出力とを可変可能に接続する信号経路網（３）を更に有する。前記信号経路網は、前記入力セレクタの入力に接続するｍ＋ｉビットのビット幅を持つ第１信号経路（３１）と、前記出力先セレクタの出力に接続するｍ＋ｉビットのビット幅を持つ第２信号経路（３２）と、入力に接続された複数の第２信号経路から可変可能に選択した一つの信号経路を、出力に接続された第１信号経路に接続する可変スイッチ部（３３）と、を有する。
【００２２】
これによれば、可変スイッチ部による信号経路網によってデータ処理エレメントの接続形態がプログラマブルにされたアレイ型プロセッサを構成することができる。アレイ型プロセッサにおいては上記可変スイッチを含む信号経路網のようなプログラマブルな配線資源が面積の多くの部分を占めている。可変スイッチ部はビット単位ではなくｍ＋ｉビット単位で経路を選択するから可変スイッチ部をプログラマブルに設定するための情報を記憶する構成情報メモリのチップ占有率が下がり、相対的に可変スイッチ部や信号配線の面積の割合が多くなる。欠陥はチップ全体のランダムな位置で発生するため、可変スイッチ部の出力からデータ処理エレメントに至る経路に配置した入力セレクタとデータ処理エレメントの出力から可変スイッチ部の入力に至る経路に配置した出力先セレクタとによって冗長救済を設定する。これは、冗長用の少ない面積で欠陥救済を可能にするのに好適である。
【００２３】
〔３〕＜プログラマブル演算器アレイ＞
項２において、前記データ処理部は、ｍビット演算幅の演算器（２００，２０１）と、前記演算器によるハードウェア構成を定義するハードウェア定義記憶部（２０３）とを有する。
【００２４】
これによってデータ処理部単位でそのハードウェア構成がプログラマブルとなる。
【００２５】
〔４〕＜データ処理エレメント群単位で入力セレクタ及び出力先セレクタの選択態様を共通化＞
項２において、前記信号生成部は、複数個の前記データ処理エレメントのグループ（ＢＬＫ１，ＢＬＫ２）単位で共通化されている。
【００２６】
これによれば、半導体装置全体における欠陥の発生率予測に応じて前記データ処理エレメントのグループサイズを決めることにより、冗長救済に必要な構成が過小にも過大にもならず最適化される。
【００２７】
〔５〕＜選択態様による遅延性能同等の入力セレクタ＞
項２において、前記入力セレクタ（図５、図１０）は、ｍ＋ｉビットの入力の最下位又は最上位の一方から１ビットずつずれた隣接するｉ＋１ビットを入力して何れか１ビットを選択するｍ個のｉ＋１ビット入力を持つ第１セレクタ（２１０＿０〜２１０＿７）によって、ｍ＋ｉビットの入力からｍビットを選択可能とする。
【００２８】
これによれば、ｍ＋ｉビットの入力に対するｍビットの出力の結合位置に拘わらず、入力から出力に至る信号経路長がどのビットも実質的に同一になって、ビット位置に拘わりなく遅延性能同等の入力セレクタを実現することができる。
【００２９】
〔６〕＜選択態様による遅延性能同等の出力先セレクタ＞
項５において、前記出力先セレクタ（図６、図１１）は、ｍビットの入力の最下位ビット（ｉｎ０）をｍ＋ｉビットの出力の最下位ビット（ｂｉｔ０）とし、前記ｍビットの入力の最下位ビットを除く下位側からの各ビットで、当該ビットとその下位側の最大ｉビットまでの下位側ビットとを入力とするｍ−１個の第２セレクタ（２２０＿０〜２２０＿６）と、ｍビットの入力の最上ビット（ｉｎ７）をｍ＋ｉビットの出力の最上位ビットとし、更にｉ≧２のとき（図１１）、前記ｍ＋ｉビットの出力のｍ＋１ビット目（ｂｉｔ８）から最上位ビット（ｂｉｔ９）の直前までの各出力ビット（ｂｉｔ８）に対し、当該ビットからその最上位ビットまでのビット数分だけ繰り下がったｍビットの入力のビット位置からその最上位ビットに至るまでのビットを入力するｉ−１個の第３セレクタ（２２０＿７）とによって、ｍ＋ｉビットの出力における入力のｍビットの配置を選択可能とする。
【００３０】
これによれば、ｍ＋ｉビットの出力に対する入力のｍビットの配置に拘わらず、入力から出力に至る信号経路長がどのビットも実質的に同一になって、ビット位置に拘わりなく遅延性能同等の出力さきセレクタを実現することができる。
【００３１】
〔７〕＜入力セレクタの救済非選択時の高速化＞
項２において、前記入力セレクタ（図１２）は、ｍ＋ｉビットの内のｍビットの入力を夫々１ビットずつ個別に入力すると共に、ｍ＋ｉビットの内の残りのｉビットを夫々共通に入力する夫々ｉ＋１個の入力を持つｍ個の第４セレクタ（２１０Ｂ＿０〜２１０Ｂ＿７によって、ｍ＋ｉビットの入力からｍビットを選択可能とする。
【００３２】
これによれば、ｉビット中の冗長信号が通過する第４セレクタの位置は欠陥ビット位置に応じて異なるから、その相違に応じた信号経路長の差によって入力セレクタはビット位置に応じた僅かな入力遅延を生ずる。この点では項５の入力セレクタが優れる。
【００３３】
〔８〕＜出力先セレクタの救済非選択時の高速化＞
項７において、前記出力先セレクタ（図１３）は、ｍビットの入力からｉビットを選択する第５セレクタを有し、ｍビットの入力をｍビットの出力とし、前記第５セレクタ（２２０Ｂ）の出力をｍビット出力の最上位に続くｉビットの出力とする。
【００３４】
これによれば、欠陥が発生していない場合にはｍビットの出力経路には第５セレクタが介在されず、出力にはセレクタの動作遅延が全く含まれない。一方、欠陥が発生した場合には冗長ビットが多入力の第５セレクタを経由するのでその出力が大きく遅延し、結果としてｍ＋ｉビットの出力確定が大きく遅延する。したがって、第４セレクタを備えた入力セレクタ及び第５セレクタを備えた出力先セレクタを用いる場合は、項５の入力セレクタ及び項６の出力先セレクタを用いる場合に比べて、欠陥のない製品は高速動作可能で、欠陥代替をした場合は低速動作となる。製品展開の戦略上、高速版と低速版に分けることもあり、このような性質が有効とされる場合もある。
【００３５】
〔９〕＜パリティ検出、パリティ生成＞
項１において、前記入力セレクタのｍ＋ｉビットの入力に対するパリティ検出回路（２４）を有すると共に、前記データ処理部のｍビットの出力を入力してｉビットのパリティ信号を生成するパリティ生成回路（２５）を有する。
【００３６】
これによれば、前段のデータ処理部から供給される処理結果に対してパリティ検出回路を用いてパリティチェックを行なうことができる。データ処理部の処理結果に対してパリティ生成回路でパリティ信号を生成することによりその後段でパリティチェックを可能とする。これはデータ処理の信頼性向上に資するものである。
【００３７】
〔１０〕＜冗長モードとパリティモード＞
項９において、前記出力先セレクタ（２２Ｃ）は、冗長モードにおいてｍ＋ｉビットの出力の最上位ビットにはｍビットの入力の最上位ビットを結合し、パリティモードにおいてｍ＋ｉビットの出力の最上位には前記パリティ生成回路で生成したパリティ信号を結合する第６セレクタ（２２０＿７）を有する。
【００３８】
これによれば、欠陥を生じていない場合にはパリティモードによりデータ処理の信頼性向上に寄与し、欠陥を生じている場合には冗長モードによって欠陥を救済することができる。
【００３９】
〔１１〕＜ＥＣＣエラー検出訂正、ＥＣＣチェックコード生成＞
項１において、前記入力セレクタのｍ＋ｉビットの入力に対するＥＣＣ検出及び訂正処理を行ってｍビットを出力するＥＣＣエラー検出訂正回路（２６）と、前記データ処理部のｍビットの出力を入力してｉビットのＥＣＣチェックコードを生成するＥＣＣ生成回路（２７）とを有する。
【００４０】
これによれば、ＥＣＣチェックコードを用いたエラー検出及び必要な訂正を行なうことによって半導体装置におけるデータ処理の信頼性を更に向上させることができる。
【００４１】
〔１２〕＜冗長モードとＥＣＣモード＞
項１１において、前記入力セレクタは、ＥＣＣモードでは前記ｍ＋ｉビットの入力に対してＥＣＣ検出及び訂正処理を行って得られたｍビットを、冗長モードでは前記ｍ＋ｉビットの入力の内から所望ビット位置のｍビットを、前記入力セレクタの前記ｍビットの出力へ結合することを可能とする。前記出力先セレクタは、ＥＣＣモードでは前記ｍビットの入力に前記ＥＣＣ生成回路で生成したｉビットのＥＣＣチェックコードを付加してｍ＋ｉビットの出力に結合し、冗長モードでは前記ｍビットの入力を、前記ｍ＋ｉビットの出力の内の前記所望ビット位置のｍビットへ結合可能とする。
【００４２】
これによれば、欠陥を生じていない場合にはＥＣＣモードによりデータ処理の信頼性向上に寄与し、欠陥を生じている場合には冗長モードによって欠陥を救済することができる。
【００４３】
〔１３〕＜モジュールセレクタへの適用＞
別の半導体装置は、ｍ（ｍは、ｍ≧２の関係を有する正の整数）ビットの出力を持つ複数の回路モジュール（４０１，４１１）と、夫々対応する前記回路モジュールのｍビットの出力に結合されたｍビットの入力とｍ＋ｉ（ｉは、ｍ＞ｉの関係を持つ正の整数）ビットの出力とを有する複数の出力先セレクタ（２２）と、前記複数の出力先セレクタのｍ＋ｉビットの出力を一単位としてその複数単位に結合するｍ＋ｉビットの複数単位の入力と前記複数単位の入力から選択された一単位のｍ＋ｉビットの出力とを有するモジュールセレクタ（４０２，４１２）と、前記モジュールセレクタの出力に結合するｍ＋ｉビットの入力とｍビットの出力とを有する入力セレクタ（２１）とを有する。更に、前記出力先セレクタのｍビットの入力を、前記出力先セレクタの前記ｍ＋ｉビットの出力の内の所望ビット位置のｍビットの出力へ結合せることを可能とし、且つ、前記入力セレクタの前記ｍ＋ｉビットの入力の内から前記所望ビット位置のｍビットを前記入力セレクタの前記ｍビットの出力へ結合させることを可能とする信号生成部（２３）を有する。
【００４４】
これによれば、モジュールセレクタのｍ＋ｉビット単位の入力毎に出力先セレクタが配置され、モジュールセレクタの出力段に入力セレクタが配置されることによって、出力先セレクタのｍ＋ｉビット出力の内のｉビットが冗長になり、入力セレクタのｍ＋ｉビット入力の内のｉビットが冗長になり、複数の出力先セレクタ及び入力セレクタに対して信号生成部が共通化され、双方のセレクタにおける所望ビット位置のｍビットの配置が等しくされる。したがって、モジュールセレクタの入力段に接続された出力先セレクタ群毎にｍ＋ｉビット中の最大ｉビットの欠陥を救済することができる。このようにその救済範囲はｍビット単位の複数の入力に対して最大ｉビットであり、モジュールセレクタにビット単位の冗長構成を採用してビット単位で冗長の構成情報を持つことを要しない。ｍ≧２、ｍ＞ｉであるから単なる二重化による冗長構成は排除されている。
【００４５】
〔１４〕＜演算処理ユニット、冗長入力セレクタ、冗長出力先セレクタ、冗長設定部＞
更に別の半導体装置（１００，１２０）は、ｍ（ｍは、ｍ≧２の関係を有する正の整数）ビットの演算幅を有する複数個のデータ処理エレメント（２，１３０）と、前記データ処理エレメント間を所望に接続する信号経路網（３（ＩＢＵＳ、１４５））と、冗長設定部と、を有する演算処理用の半導体装置である。前記信号経路網は、夫々ｍ＋ｉ（ｉは、ｍ＞ｉの関係を有する正の整数）ビットのビット幅を持つ複数の信号経路（３１，３２（ＩＢＵＳ））を有する。前記データ処理エレメントは、前記信号経路から信号を受ける入力段に冗長入力セレクタ（２１）を有し、且つ、前記信号経路に信号を渡す出力段に冗長出力先セレクタを有する。前記冗長入力セレクタは、前記ｍ＋ｉビットの入力から前記冗長設定部の設定に基づいて指定されたビット位置のｍビットを選択して後段に出力する。前記冗長出力先セレクタは、前記データ処理エレメントによるｍビットの処理結果を前記冗長設定部の設定に基づいて指定されたビット位置に配置したｍ＋ｉビットを後段に出力する。
【００４６】
これによれば、ｍビット演算幅のデータ処理部の入力段に冗長入力セレクタが配置され、出力段に冗長出力先セレクタが配置されることによって、冗長入力セレクタのｍ＋ｉビットの入力の内のｉビットが冗長になり、冗長出力先セレクタのｍ＋ｉビットの出力の内のｉビットが冗長になる。双方のセレクタのｍ＋ｉビットにおける指定されたビット位置のｍビットの配置が等しくされるので、データ処理部のブロック単位でｍ＋ｉビットに対するｍビットの配置を共通化すれば、ブロック毎にｍ＋ｉビット中の最大ｉビットの欠陥を救済することができる。欠陥の発生率がきわめて少ない場合にはデータ処理エレメントのアレイ全体でｍビットの配置を共通化すればよい。欠陥の発生率が高い場合にはそれに応じたてｍビットの配置を共通化するデータ処理エレメントのブロックサイズを小さくしていけばよい。したがって、ビット単位で冗長の構成情報を持つことを要せず、また、データ処理エレメントのアレイに冗長行を新たに追加することを要せず、少ない冗長用面積で欠陥救済が可能になる。
【００４７】
〔１５〕＜冗長設定部の不揮発性記憶回路＞
項１４において、前記冗長設定部は前記ビット位置を設定するための不揮発性記憶回路（２３０）を有する。
【００４８】
これによれば、製造段階で発生する欠陥はもとより、半導体装置を搭載する実機システム上で後から発生する欠陥に対してもｍビットの配置を特定する救済情報を容易に書き換え可能に保持することができる。
【００４９】
〔１６〕＜入力セレクタ、演算部、信号生成部＞
更に別の半導体装置は、可変信号経路網（３）、これに接続される複数個のデータ処理エレメント（２）、及び可変設定部（２３）を有する。前記データ処理エレメントは、ｍ＋ｉ（ｉとｍは、ｍ≧２、ｍ＞ｉの関係を有する正の整数）ビットの入力とｍビットの出力とを有する入力セレクタ（２１）と、前記入力セレクタの前記ｍビットの出力に結合されたｍビットの入力を有するｍビット演算幅の演算部（２０）と、を有する。前記可変設定部は、前記入力セレクタに結合され、前記入力セレクタの前記ｍ＋ｉビットの入力の内から所望のｍビットを前記入力セレクタの前記ｍビットの出力へ結合させることを可能にする信号を生成する。前記可変信号経路網は、ｍ＋ｉビットのビット幅を持つ複数の信号経路と、入力に接続された複数の信号経路から可変可能に選択した一つの信号経路を前記入力セレクタの入力に接続する可変スイッチ部（３３）とを有する。
【００５０】
これによれば、ｍ＋ｉビットの夫々の信号経路はｉビットの冗長を持ち、可変スイッチ部を介して複数の信号経路から選択された一つの信号経路に至る経路の故障に対して入力セレクタのｍ＋ｉビットからｍビットの配置を選択することによって冗長選択を行なう。したがって、ｍビットの信号経路に対してビット単位で冗長の構成情報を持つことを要せず、また、データ処理エレメントのアレイに冗長行を新たに追加することを要せず、少ない冗長用面積で欠陥救済が可能になる。
【００５１】
〔１７〕＜出力先セレクタ、演算部、信号生成部＞
更に別の半導体装置は、可変信号経路網（３）、これに接続される複数個のデータ処理エレメント（２）、及び可変設定部（２３）を有する。前記データ処理エレメントは、ｍビット出力を有するｍビット演算幅の演算部（２０）と、前記演算部の前記ｍビット出力に結合されたｍビットの入力と、ｍ＋ｉ（ｉとｍは、ｍ≧２、ｍ＞ｉの関係を有する正の整数）ビットの出力とを有する出力先セレクタ（２２）と、を有する。前記可変設定部は、前記出力先セレクタに結合され、前記出力先セレクタの前記ｍビットの入力を、前記出力先セレクタの前記ｍ＋ｉビットの出力の内の所望のｍビットの出力へ結合させることを可能にする信号を生成する。前記可変信号経路網は、ｍ＋ｉビットのビット幅を持つ複数の信号経路と、前記複数の冗長出力先セレクタの出力に前記信号経路を介して接続するｍ＋ｉビットの入力を複数持ち、当該複数の入力の中から可変可能に選択した一つをｍ＋ｉビットの出力に接続する可変スイッチ部（３３）とを有する。
【００５２】
これによれば、ｍ＋ｉビットの夫々の信号経路はｉビットの冗長を持ち、複数個のデータ処理エレメントの夫々から可変スイッチ部の入力に至る複数の信号経路の故障に対して出力先セレクタによりｍ＋ｉビットの出力の内のｍビットの配置を選択することによって冗長選択を行なう。したがって、ｍビットの信号経路に対してビット単位で冗長の構成情報を持つことを要せず、また、データ処理エレメントのアレイに冗長行を新たに追加することを要せず、少ない冗長用面積で欠陥救済が可能になる。
【００５３】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００５４】
《再構成可能デバイス》
図２には再構成可能デバイスのアレイ構成が例示される。再構成可能デバイス１はデータ処理機能即ち演算処理機能が可変な複数個のデータ処理エレメント（ＰＥ）２がマトリクス状に配置され、それらデータ処理エレメント２の間を可変に接続する信号経路網３が設けられた、アレイ型プログラマブルプロセッサ（プログラマブル演算器アレイ）として構成される。この再構成可能デバイス１は、音声又は画像データに対する符号化復号処理、補完処理、或いは圧縮伸張処理など所望のデータ処理に応じて、夫々のデータ処理エレメント２に対する演算処理機能と信号経路網３によるデータ処理エレメントの接続形態がプログラムされる。これによって、再構成可能デバイス１には所要のデータ処理機能を可変可能に実装することができる。
【００５５】
図１には再構成可能デバイスの更に詳細な例が示される。データ処理エレメント２は、特に制限されないが、ｍ（ｍ≧２の関係を有する正の整数）ビットのデータ処理幅、即ち、ｍビットのデータ幅をデータ処理単位とする、データ処理部２０を有する。データ処理部２０は、特に制限されないが、図３に例示されるように、算術論理演算ユニット（ＡＬＵ）２０１やフィルタ演算ユニット（ＤＭＵ）２００などの演算器及びレジスタファイル（ＲＥＧ）２０２と、それらを用いて実現する幾つかのハードウェア構成を定義するコンフィギュレーションセットを保有するハードウェア定義記憶部２０３を有する。例えばポインタ（ＰＮＴ)２０４で指定されたコンフィギュレーションが読み出されることによって所要のハードウェアが構成される。ポインタ２０４で指定するコンフィギュレーションを切り替えることによってデータ処理エレメント２０で実現されるハードウェア機能が可変される。ポインタデータは例えば図示を省略するシリアルバスなどの機能制御バス２０５などを介して書き込まれる。この書き込み制御は、特に制限されないが、再構成可能デバイス１と一緒にオンチップされた中央処理装置もしくはＤＭＡＣ、或いは再構成可能デバイス１と別チップで構成されたプロセッサや外部装置などによって行われる。
【００５６】
ここではｍビットのデータ幅に対して冗長ビットｉ（ｉ＜ｍの関係を有する正の整数）を例えば１ビット（ｉ＝１）とし、信号経路網３のデータ幅をｍ＋１ビットとする。データ処理部２０のデータ処理幅はｍビットであるから、信号経路網３からデータ処理部２０へ至る入力段には、ｍ＋１ビットの入力（入力端子）とｍビットの出力（出力端子）を有する入力セレクタ（冗長入力セレクタとも記す）２１が設けられる。信号経路網３に至るデータ処理部２０の出力段にはｍビットの入力とｍ＋１ビットの出力を持つ出力先セレクタ（冗長出力先セレクタとも記す）２２が設けられる。夫々のデータ処理エレメント２は上記データ処理部２０、冗長入力セレクタ２１、及び冗長出力先セレクタ２２を有する。
【００５７】
信号経路網３は、前記冗長入力セレクタ２１の入力に接続するｍ＋１ビットのビット幅を持つ第１信号経路３１と、前記冗長出力先セレクタ２２の出力に接続するｍ＋１ビットのビット幅を持つ第２信号経路３２と、入力に接続された複数の第２信号経路３２から可変可能に選択した一つの信号経路を、出力に接続された第１信号経路３１に接続する可変スイッチ部３３とを有する。図１では可変スイッチ部３３の入力の接続先については図示を簡略化しているが、特に制限されないが、可変スイッチ部３３は一のデータ処理エレメント２に他のデータ処理エレメント２の出力を所定グループ内で選択的に供給可能にするものである。これによってデータ処理エレメント２同士を上記グループ内で任意に接続可能にされる。可変スイッチ部３３による経路選択は経路定義記憶にセットされる経路選択データで制御される。経路定義記憶は、特に制限されないが、個々の可変スイッチ部３３が有し、経路選択データは例えばシリアルバスなどの前記機能制御バス２０５を介して書き込まれる。この書き込み制御は、特に制限されないが、再構成可能デバイス１と一緒にオンチップされた中央処理装置もしくはＤＭＡＣ、或いは再構成可能デバイス１と別チップで構成されたプロセッサや外部装置などによって行われる。
【００５８】
信号経路網３における多数の配線資源３１，３２及びプログラマブルなスイッチ資源３３は再構成可能デバイスの面積の多くの部分を占めることになる。再構成可能デバイス１はデータ処理単位をｍビットとするアレイ型プロセッサとして機能される関係上、ｍビット単位で経路選択を行なえばよく、ビット単位で行なうことを要せず、経路定義記憶の記憶容量が小さくなる。結果として、相対的に経路定義記憶によるデバイス面積の占有割合が下がり、信号経路３１，３２並びに可変スイッチ部３３のようなプログラマブルスイッチの面積の割合が多くなる。欠陥はデバイスの如何なる場所でも発生し、少ない冗長用面積でそのような欠陥の救済を可能にするという観点より、信号経路３１，３２には１ビットの冗長を設け、可変スイッチ部３３には冗長ビットを含めたｍ＋１ビット単位の経路選択を行なうようにした。データ処理エレメント２に対してはｍ＋１ビットの入力における冗長ビットの位置とデータ処理エレメント２のｍ＋１ビットの出力における冗長ビットの位置とが一致するように、前記冗長入力セレクタ２１と冗長出力セレクタ２２とによる選択形態を整合させるように冗長制御信号ＣｎｔＲを生成する。信号生成部２３が冗長制御信号ＣｎｔＲを生成する。
【００５９】
信号生成部２３は、例えば図４に例示されるように、冗長制御信号生成回路２３１と欠陥記憶部２３０から成る。欠陥記憶部２３０はｍ＋１ビットの内の１ビットの欠陥ビットのビット位置を特定する救済データを保有する。救済データは、特に制限されないが、シリアルバスなどの前記機能制御バス２０５を介して書き込まれる。冗長制御信号生成回路２３１は救済データをデコードして冗長制御信号ＣｎｔＲを生成する。この救済データの書き込み制御は、特に制限されないが、再構成可能デバイス１と一緒にオンチップされた中央処理装置もしくはＤＭＡＣ、或いは再構成可能デバイス１と別チップで構成されたプロセッサや外部装置などによって行なわれる。欠陥記憶部２３０は、特に制限されないが、ヒューズ、アンチヒューズ、ＥＰＲＯＭ（Erasable Programmable Read Only Memory）、ＥＥＰＲＯＭ（（Electrically Erasable Programmable Read-Only Memory）、フラッシュメモリ、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＲｅＲＡＭ（Resistance Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）などの不揮発性記憶回路で構成されれば、電源投入の度に救済データを書き込むことを要しない。
【００６０】
冗長制御信号ＣｎｔＲは、冗長入力セレクタ２１及び冗長出力先セレクタ２２の双方に供給され、冗長入力セレクタ２１に対しては、その前記ｍ＋１ビットの入力の内から欠陥ビットを除くビット位置のｍビット（有効ビット位置のｍビット）を前記冗長入力セレクタの前記ｍビットの出力へ結合させることを可能にする。冗長出力先セレクタ２２に対しては、そのｍビットの入力を、そのｍ＋１ビットの出力の内の前記有効ビット位置のｍビット位置の出力へ結合させることを可能にする。
【００６１】
図５には冗長入力セレクタ２１の一例が示される。ここではｍ＝８、ｉ＝１を一例としている。冗長入力セレクタ２１の入力をビット０〜ビット８（ｂｉｔ０〜ｂｉｔ８）とし、その出力を出力ビットｏｕｔ０〜ｏｕｔ７として図示してある。
【００６２】
冗長入力セレクタ２１は、例えばｍ＋１ビットの入力（ｂｉｔ０〜ｂｉｔ８）の最下位から１ビットずつずれた隣接する２（＝ｉ＋１）ビットを入力して何れか１ビットを選択するｍ個の２（＝ｉ＋１）ビット入力を持つ第１セレクタ２１０＿０〜２１０＿７によって、ｍ＋１ビットの入力からｍビットを選択可能とする。冗長制御信号ＣｎｔＲはｓ０〜ｓ７の８ビットで構成され、対応する第１セレクタ２１０＿０〜２１０＿７に供給される。即ち、第１セレクタ２１０＿０にはビット０（ｂｉｔ０）及びビット１（ｂｉｔ１）が供給され、ｓ０＝０で下位側入力ビット０（ｂｉｔ０）を出力ビットｏｕｔ０として選択し、ｓ０＝１で上位側入力ビット１（ｂｉｔ１）を出力ビットｏｕｔ０として選択する。第１セレクタ２１０＿１にはビット１（ｂｉｔ１）及びビット２（ｂｉｔ２）が供給され、ｓ１＝０で下位側入力ビット１（ｂｉｔ１）を出力ビットｏｕｔ１として選択し、ｓ１＝１で上位側入力ビット２（ｂｉｔ２）を出力ビットｏｕｔ１として選択する。他の第１セレクタ２１０＿２〜２１０＿７についても同様である。
【００６３】
図６には冗長出力先セレクタ２２の一例が示される。ここでもｍ＝８，ｉ＝１を一例としている。冗長出力先セレクタ２２の入力を入力ビットｉｎ０〜ｉｎ７とし、その出力をビット０〜ビット８（ｂｉｔ０〜ｂｉｔ８）として図示してある。
【００６４】
冗長出力先セレクタ２２はｍビットの入力の最下位入力ビットｉｎ０をｍ＋１ビットの出力の最下位ビットｂｉｔ０とする。更に、前記ｍビットの入力の最下位ビットｉｎ０を除く下位側からの各ビットｉｎ１〜ｉｎ７で、当該ビットとその下位側の最大１（ｉ＝１）ビットまでの下位側ビットとを入力とする７（＝ｍ−１）個の第２セレクタ２２０＿０〜２２０＿６を有する。また、ｍビットの入力の最上位入力ビットｉｎ７をｍ＋１ビットの出力の最上位ビット（ｂｉｔ８）とする。
【００６５】
図７には信号生成部２３における冗長制御信号ＣｎｔＲはｓ０〜ｓ７の生成論理を真理値表で例示する。同図において欠陥記憶値は欠陥記憶部２３０に記憶されている救済データである。このデータの値は欠陥箇所に応じて決められる。救済データをデコードして冗長制御信号生成回路２１３が出力する冗長制御信号ｓ０〜ｓ７（ＣｎｔＲ）が救済データとの対応で示されている。冗長制御信号ｓ０〜ｓ７の論理値１は、図５の第１セレクタ２１０＿０〜２１０＿７の入力端子１側の入力を選択することを意味し、且つ図６の第２セレクタ２２０＿０〜２２０＿６の入力端子１側の入力を選択することを意味する。同様に、冗長制御信号ｓ０〜ｓ７の論理値０は、図５の第１セレクタ２１０＿０〜２１０＿７の入力端子０側の入力を選択することを意味し、且つ図６の第２セレクタ２２０＿０〜２２０＿６の入力端子０側の入力を選択することを意味する。図７の真理値表を実現する冗長制御信号生成回路２３１の具体的な論理回路は例えば図８の論理回路図で実現可能である。図８においてＩＮ［３：０］は欠陥記憶部２３０から冗長制御信号生成回路２３１に供給される４ビットの救済データである。
【００６６】
図５乃至図７の具体例から明らかな如く、入力セレクタ２１の９ビットｂｉｔ０〜ｂｉｔ８の入力の内の１ビットが冗長になり、出力先セレクタ２２の９ビットｂｉｔ０〜ｂｉｔ８の出力の内の１ビットが冗長になり、双方のセレクタ２１，２２の９ビット中における所望ビット位置の８ビットの配置は等しくされる。例えば、ｂｉｔ１に欠陥があったとすると、ｓ０＝０、ｓ１〜ｓ７＝１とされ、これによって、入力セレクタ２１側では、ｂｉｔ０＝ｏｕｔ０、ｂｉｔ２〜ｂｉｔ８＝ｏｕｔ１〜ｏｕｔ７となり、欠陥ビットｂｉｔ１はデータ処理部２０に供給されない。出力先セレクタ２２側では、ｂｉｔ０＝ｉｎ０、ｂｉｔ１＝ｉｎ１、ｂｉｔ２〜ｂｉｔ８＝ｉｎ１〜ｉｎ７となり、出力先セレクタ２２の出力ビットｂｉｔ１は欠陥ビットとして扱うことが可能になり、データ処理エレメント２に入力された信号経路３１の入力ビットｂｉｔ０〜ｂｉｔ８と当該データ処理エレメント２から出力された信号経路３２の出力ビットｂｉｔ０〜ｂｉｔ８の双方においてビットｂｉｔ１が欠陥ビットになっている。
【００６７】
したがって、複数個のデータ処理エレメント２の集合であるブロック単位で信号生成部２３を共通化すれば、ブロック毎に信号経路３１，３２のビットｂｉｔ０〜ｂｉｔ８中の１ビットの欠陥を救済することができる。欠陥の発生率がきわめて少ない場合にはデータ処理エレメント２のアレイ全体で信号生成部２３を共通化すればよい。欠陥の発生率が高い場合にはそれに応じて信号生成部２３を共通化するデータ処理エレメントのブロックサイズを小さくしていけばよい。例えば、図９に例示されるように、データ処理エレメント２のアレイ全体を２個のブロックＢＬＫ１，ＢＬＫ２に分け、、夫々のブロックＢＬＫ１，ＢＬＫ２毎に冗長制御信号生成回路２３１と欠陥記憶部２３０を設ければよい。ブロックＢＬＫ１，ＢＬＫ２はマクロな機能設定単位として把握することも可能である。
【００６８】
このように、欠陥の発生する頻度が低い習熟した製造プロセスで再構成可能デバイス１が製造されるならば、当該デバイス１全体で１箇所の欠陥を想定し、１つの欠陥記憶部２３０で欠陥を救済すればよい。そうでないならば再構成可能デバイス１をいくつかの領域に分割して、各々に欠陥記憶部２３０を持たせれば、夫々の領域で同時に欠陥が発生してもそれらの欠陥を救済することが可能である。領域を分割するか否か、更には幾つに分割するかは、コストとプロセス習熟の兼ね合いから選択すれば良い。
【００６９】
以上により、８ビットの演算幅を有する複数個のデータ処理エレメント２をマトリクス配置した再構成可能デバイスにおいて、信号経路網３には８ビット毎に１ビットの冗長を設け、データ処理エレメント２毎に入力セレクタ２１と出力先セレクタ２２を設けることによってアレイ全体又はブロック単位で１ビットの欠陥を救済する可能である。したがって、信号線のビット単位で冗長の構成情報を持つことを要せず、また、データ処理部のアレイに冗長行を新たに追加することを要せず、少ない冗長用面積で欠陥救済が可能になる。
【００７０】
また、図５の冗長入力セレクタ２１によれば、ｍ＋１ビットの入力に対するｍビットの出力の結合位置に拘わらず、入力から出力に至る信号経路長がどのビットも実質的に同一になって、ビット位置に拘わりなく遅延性能同等の入力セレクタを実現することができる。同じく、図６の冗長出力先セレクタ２２によれば、ｍ＋１ビットの出力に対する入力のｍビットの配置に拘わらず、入力から出力に至る信号経路長がどのビットも実質的に同一になって、ビット位置に拘わりなく遅延性能同等の冗長出力先セレクタを実現することができる。
【００７１】
《ｉ＝２の場合の冗長入力セレクタ及び冗長出力先セレクタ》
ｉ＝２の場合の冗長入力セレクタ及び冗長出力先セレクタの具体例を図１０及び図１１に基づいて説明する。選択論理の基本は図５及び図６の場合と同様である。この例の場合は信号経路及び可変スイッチ部の単位はｂｉｔ０〜ｂｉｔ９の１０ビットにされる。図１０、図１１において３１Ａが第１信号経路、３２Ａが第２信号経路である。信号生成部は冗長制御信号生成回路２３１Ａと欠陥記憶部２３０Ａから成る。
【００７２】
図１０にはｍ＝８、ｉ＝２の場合における冗長入力セレクタの一例が示される。この場合には冗長入力セレクタ２１Ａの入力をビット０〜ビット９（ｂｉｔ０〜ｂｉｔ９）とし、その出力を出力ビットｏｕｔ０〜ｏｕｔ７として図示してある。
【００７３】
冗長入力セレクタ２１Ａは、例えばｍ＋２ビットの入力（ｂｉｔ０〜ｂｉｔ９）の最下位から１ビットずつずれた隣接する３（＝ｉ＋１）ビットを入力して何れか１ビットを選択するｍ個の３（＝ｉ＋１）ビット入力を持つ第１セレクタ２１０Ａ＿０〜２１０Ａ＿７によって、ｍ＋２ビットの入力からｍビットを選択可能とする。冗長制御信号ＣｎｔＲは第１セレクタ２１０Ａ＿０〜２１０Ａ＿７の各セレクタ毎に２ビットの合計１６ビットで構成される。即ち、第１セレクタ２１０Ａ＿０はｂｉｔ０，ｂｉｔ１，ｂｉｔ２の何れか１ビットを選択して出力する。第１セレクタ２１０Ａ＿１はｂｉｔ１，ｂｉｔ２，ｂｉｔ３の何れか１ビットを選択して出力する。その他の第１セレクタ２１０Ａ＿２〜２１０Ａ＿７も同様である。
【００７４】
図１１にはｍ＝８、ｉ＝２の場合における冗長出力先セレクタの一例が示される。この場合には、冗長出力先セレクタ２２Ａの入力を入力ビットｉｎ０〜ｉｎ７とし、その出力をビット０〜ビット９（ｂｉｔ０〜ｂｉｔ９）として図示してある。
【００７５】
冗長出力先セレクタ２２Ａはｍビットの入力の最下位入力ビットｉｎ０をｍ＋２ビットの出力の最下位ビットｂｉｔ０とする。更に、前記ｍビットの入力の最下位ビットｉｎ０を除く下位側からの各ビットｉｎ１〜ｉｎ７で、当該ビットとその下位側の最大２（ｉ＝２）ビットまでの下位側ビットとを入力とする７（＝ｍ−１）個の３（＝ｉ＋１）ビット入力を有する第２セレクタ２２０Ａ＿０〜２２０Ａ＿６を有する。また、ｍビットの入力の最上位入力ビットｉｎ７をｍ＋２ビットの出力の最上位ビット（ｂｉｔ９）とする。更に、ｉ≧２のとき、出力ビットの内のｍ＋１ビット目（ｂｉｔ８）から最上位ビット（ｂｉｔ９）の直前までの各出力ビット（ｂｉｔ８）に対し、当該ビット（ｂｉｔ８）からその最上位ビット（ｂｉｔ９）までのビット数（１ビット）分だけ繰り下がったｍビットの入力のビット位置（ｉｎ６）からその最上位ビット（ｉｎ７）に至るまでのビットを入力する１（＝ｉ−１）個の第３セレクタ２２０Ａ＿７とによって、ｍ＋ｉビットの出力における入力のｍビットの配置を選択可能とする。即ち、第２セレクタ２２０Ａ＿０は入力ビットｉｎ０，ｉｎ１の何れか１ビットを選択して出力ビットｂｉｔ１とする。第２セレクタ２２０Ａ＿１は入力ビットｉｎ０，ｉｎ１，ｉｎ２の何れか１ビットを選択して出力ビットｂｉｔ２する。その他の第２セレクタ２１０Ａ＿２〜２１０Ａ＿６も同様である。第３セレクタ２２０Ａ＿７は入力ビットｉｎ７６，ｉｎ７の何れか１ビットを選択して出力ビットｂｉｔ８とする。
【００７６】
《救済非選択時の高速化を優先した冗長入力セレクタ及び冗長出力先セレクタ》
救済非選択時の高速化を優先した冗長入力セレクタ及び冗長出力先セレクタについて図１２及び図１３を参照しながら説明する。ここではｉ＝１の場合について説明するが、選択論理の基本は図５及び図６の場合と全く相違する。信号生成部は冗長制御信号生成回路２３１Ｂと欠陥記憶部２３０Ｂから成る。
【００７７】
図１２にはｍ＝８、ｉ＝１の場合における冗長入力セレクタの別の例が示される。同図に示される冗長入力セレクタ２１Ｂは、９（＝ｍ＋ｉ）ビットの内の８（＝ｍ）ビットｂｉｔ０〜ｂｉｔ７の入力を夫々１ビットずつ個別に入力すると共に、９（＝ｍ＋ｉ）ビットの内の残りの１（＝ｉ）ビットであるｂｉｔ８を夫々共通に入力する夫々２（＝ｉ＋１）個の入力を持つ８（＝ｍ）個の第４セレクタ２１０Ｂ＿０〜２１０Ｂ＿７によって、９（＝ｍ＋ｉ）ビットの入力から８（＝ｍ）ビットを選択可能とする。
【００７８】
冗長制御信号生成回路２３１Ｂは欠陥ビットの位置に応じて冗長選択信号ｓ０〜ｓ７の一つを１とし残りを０とする。欠陥が全くなければ冗長選択信号ｓ０〜ｓ７の全てを０とする。例えばｂｉｔ３に欠陥があれば、ｓ３を１、その他のｓ０〜ｓ２及びｓ４〜ｓ７を０とする。これにより、ｏｕｔ０〜ｏｕｔ２＝ｂｉｔ０〜ｂｉｔ２、ｏｕｔ３＝ｂｉｔ８、ｏｕｔ４〜ｏｕｔ７＝ｂｉｔ４〜ｂｉｔ７になる。
【００７９】
図１３にはｍ＝８、ｉ＝１の場合における冗長出力先セレクタの別の例が示される。同図に示される冗長出力先セレクタ２２Ｂは８（＝ｍ）ビットの入力ｉｎ０〜ｉｎ７から１（＝ｉ）ビットを選択する第５セレクタ２２０Ｂによって構成され、ｍビットの入力ｉｎ０〜ｉｎ７をｍビットの出力ｂｉｔ０〜ｂｉｔ７とし、第５セレクタ２２０Ｂの出力をｍビット出力の最上位に続く１（＝ｉ）ビットの出力ｂｉｔ８とする。
【００８０】
冗長入力セレクタ２１Ｂにおいてｂｉｔ８の冗長信号が通過することになる第４セレクタ２１０Ｂ＿０〜２１０Ｂ＿７の位置は欠陥ビット位置に応じて異なるから、その相違に応じた信号経路長の差によって冗長入力セレクタ２１Ｂはビット位置に応じた僅かな入力遅延を生ずる。この点では図５の入力セレクタが優れる。
【００８１】
冗長出力先セレクタ２２Ｂにおいて、欠陥が発生していない場合には入力ビットｉｎ０〜ｉｎ７から出力ｂｉｔ０〜ｂｉｔ７に至る経路には第５セレクタ２２０Ｂが介在されず、出力ｂｉｔ０〜ｂｉｔ７にはセレクタの動作遅延が全く含まれない。一方、欠陥が発生した場合には冗長ビットが多入力の第５セレクタ２２０Ｂを経由するのでその出力が大きく遅延し、結果としてｍ＋ｉビットの出力確定が大きく遅延する。したがって、入力セレクタ２１Ｂ及び出力先セレクタ２２Ｂを用いる場合は、図５及び図６の入力セレクタ２１及び出力先セレクタ２２を用いる場合に比べて、欠陥のない製品は高速動作可能で、欠陥代替をした場合は低速動作となる。このようなセレクタ特性は、製品展開の戦略上、高速版と低速版に分ける場合に優位性が求められる。
【００８２】
《データ処理エレメントにおけるパリティ検出生成機能》
図１４にはデータ処理エレメントにパリティ検出生成機能を追加した例が示される。ここでは図４乃至図６で説明した構成を基にして説明する。同図に示されるデータ処理エレメント２Ｃは、前記冗長入力セレクタ２１のｍ＋ｉビットの入力に対するパリティ検出回路２４を有すると共に、前記データ処理部２０のｍビットの出力を入力してｉビットのパリティ信号を生成するパリティ生成回路２５を有する。
【００８３】
図１５には図６の回路にパリティ生成回路２５を付加した例が示される。図１５においてパリティ生成回路２５はデータ処理部２０が出力する信号ｉｎ０〜ｉｎ７を入力してパリティ信号ＰＲＴＹを生成する複数の排他的論理和回路による複合ゲートで構成される。特に図示はしないが、信号ｉｎ０〜ｉｎ７を２ビットずつ入力して排他的論理和を形成する複数の排他的論理輪回路を初段に有し、初段の排他的論理和信号を２ビットずる入力して排他的論理和を形成する複数の排他的論理輪回路を次段に有し、当該次段の排他的論理和信号を２ビットずる入力して排他的論理和を形成する最終段の排他的論理輪回路によってパリティ信号ＰＲＴＹを形成する。図１５では出力ｂｉｔ８を出力するセレクタとしてのセレクタ２２０＿７が設けられ、このセレクタ２２０＿７がモード信号ＭＤＰに基づいてパリティ信号ＰＲＴＹ又は入力ｉｎ７を出力ｂｉｔ８として選択する。セレクタ２２０＿７は冗長モード（ＭＤＰ＝１）において入力ｉｎ７を出力ｂｉｔ８として選択し、パリティモード（ＭＤＰ＝０）においてパリティ信号ＰＲＴＹを出力ｂｉｔ８として選択する。冗長モードは冗長制御信号生成回路２３１によって欠陥救済が行われる場合に選択される動作モードであり、このときはパリティ機能は利用できない。パリティモードはパリティ機能を利用するとき選択される動作モードであり、このときは冗長による欠陥救済は不可能とされる。したがって、パリティモードにおいてｂｉｔ8にはｂｉｔ０〜ｂｉｔ７のデータに対するパリティ信号が次段に向けて伝播されることになる。
【００８４】
図１６には図５の回路にパリティ検出回路２４を付加した例が示される。図１６においてパリティ検出回路２４は前段から冗長入力セレクタ２１に供給されるｂｉｔ０〜ｂｉｔ８を入力してパリティ検出信号ＥＲＲを生成する。図１６においてパリティ検出回路２４はｂｉｔ０〜ｂｉｔ８を入力してパリティ検出信号ＥＲＲを生成する複数の排他的論理和回路による複合ゲートで構成される。特に図示はしないが、信号ｂｉｔ０〜ｂｉｔ７を２ビットずつ入力して排他的論理和を形成する複数の排他的論理輪回路を初段に有し、初段の排他的論理和信号を２ビットずつ入力して排他的論理和を形成する複数の排他的論理輪回路を次段に有し、当該次段の排他的論理和信号を２ビット入力して排他的論理和を形成する排他的論理輪回路を終段に有し、この終段の排他的論理輪回路の出力とｂｉｔ８とを入力する最終段の排他的論理輪回路によってパリティ検出信号ＥＲＲを形成する。
【００８５】
データ処理エレメントにおけるパリティ検出生成機能によれば、前段のデータ処理エレメントから供給される処理結果に対してパリティ検出回路２４を用いてパリティチェックを行なうことができる。データ処理部２０の処理結果に対してパリティ生成回路２５でパリティ信号ＰＲＴＹを生成することによりその後段でパリティチェックを可能とする。これによって再構成可能デバイス１によるデータ処理の信頼性向上が可能になる。更に冗長モードとパリティモードに応じて第６セレクタ２２０＿７でｉｎ７又はパリティ信号ＰＲＴＹを選択してｂｉｔ８に当てることができるから、欠陥を生じていない場合にはパリティモードによりデータ処理の信頼性向上に寄与し、欠陥を生じている場合には冗長モードによって欠陥を救済することができる。
【００８６】
パリティ検出生成機能によって、放射線等によるソフトエラーの検出や、恒久的な故障による欠陥が検出可能となる。ソフトエラーや故障の発生は、面積の大部分を占めるプログラマブルスイッチである可変スイッチ部３３で発生する可能性が高いため、パリティ検出生成機能はこの点でも信頼性を大きく上げることができる。
【００８７】
パリティ検出生成機能を搭載することにより、再構成可能デバイスの出荷後にシステム上で使用中に故障が発生した際に、動作中でもパリティエラーが発生するため、これを検出した場合にデバイステストを行い、その結果得られる故障ビットの位置を欠陥記憶部２３０に書き込み、代替を行なうことによって再び良品として復活させ、動作を継続することが可能となる。この点においても信頼性の高いデバイスを実現できる。１ビット分を冗長用に追加した可変スイッチ部（プログラマブルスイッチ）３３をパリティビット用と欠陥代替用の両方の用途で共用することができるため、各々を別々に実装した場合より追加回路量を減らすことができる。
【００８８】
出荷後はシステム上で故障箇所を特定する必要があるが、パリティ検出生成機能を持たない場合と比べると、テスト対象回路部分を一つ一つ入れ替えながら故障箇所を探索することをしなくても、パリティエラーによって故障発生箇所が簡単に特定できる。パリティ検出生成機能は一時的なソフトエラーの発生を検出することによって信頼性を高めると共に、デバイスの故障箇所の特定を容易化することにも役に立つ。
【００８９】
また、パリティ検出生成機能を持たない場合には電源投入時などにテスト動作を実行している最中にしか故障検出と欠陥代替が行なえないが、パリティ検出生成機能を持てばシステム動作中に故障した場合、即座にパリティエラーを検出して欠陥代替を行なうことが可能になるため、この点でも高い信頼性が得られる。
【００９０】
再構成可能デバイス１に上記パリティ検出生成機能を持つ回路構成を採用することにより、パリティ検出可能な高信頼性品と、パリティ検出不能だが欠陥救済可能で歩留まりの高い一般品の二種類の製品を、同一ダイ（半導体チップ）で実現することも可能であり、マスクコストの節約にもなる。
【００９１】
ここで、パリティ検出回路２４によってパリティエラーの発生を検出したときの処理例を説明する。
【００９２】
例えば再構成可能デバイス１のシステム動作中に可変スイッチ部（プログラマブルスイッチ）３３に故障が発生すると、パリティ検出回路２４から出力されるパリティ検出信号ＥＲＲが活性化される。パリティ検出信号ＥＲＲは夫々のデータ処理エレメント２が発生可能であり、その論理和信号がパリティエラー割り込み要求とされる。更に、そのとき活性化されたパリティ検出信号ＥＲＲの所在、即ちそのパリティ検出信号ＥＲＲの発生元になるデータ処理エレメント２の所在をエラー発生位置レジスタに保持して、データ処理動作を停止する。
【００９３】
パリティエラー割り込み要求は、図示を省略するＣＰＵ（例えば再構成可能デバイス１と共にオンチップされたＣＰＵ）に通知される。これによってＣＰＵは当該割り込み要求に応答して、エラーの発生位置レジスタから位置情報をリードする。ＣＰＵはリードした位置情報から得られる領域に対してエラービットを解析するための回路情報をデータ処理エレメント２及び信号経路網３に設定して動作させ、ｍ＋ｉビット中の何ビット目が故障しているかの情報を得る。ＣＰＵは欠陥記憶部２３０に欠陥ビット位置に応じた救済データを書き込む。最後に、ＣＰＵはデータ処理エレメント２及び信号経路網３に設定したエラービット解析のための回路情報を、故障発生時に実行していた元の回路情報に書き戻して、中断した動作を再開させる。
【００９４】
《データ処理エレメントにおけるＥＣＣ機能》
図１７にはデータ処理エレメントにＥＣＣ機能を追加した例が示される。特に制限されないが、ここでは８ビット（ｍビット）のデータに対してＥＣＣチェックコードを５ビット（ｉビット）とする。これに応じて信号経路網の単位を１３ビット（ｍ＋ｉ）とし、第１信号経路３１Ｄ、第２信号経路３２Ｄ，及び可変スイッチ部３３Ｄは１３ビット幅単位の構成に拡張されている。これを前提に冗長入力セレクタ２１Ｄは１３ビットの入力と８ビットの出力を有し、冗長出力先セレクタ２２Ｄは８ビットの入力と１３ビットの出力を有する。そして、冗長入力セレクタ２１Ｄの１３ビットの入力に対するＥＣＣ検出及び訂正処理を行って５ビットを出力するＥＣＣエラー検出訂正回路２６を有する。更に、データ処理部２０の８ビットの出力を入力して５ビットのＥＣＣチェックコードを生成するＥＣＣ生成回路２７を有する。
【００９５】
上記冗長入力セレクタ２１Ｄ及び冗長出力先セレクタ２２Ｄは冗長モードとＥＣＣモードでその動作形態が相違される。即ち、冗長入力セレクタ２１Ｄは、ＥＣＣモードでは前記１３ビットの入力に対してＥＣＣ検出訂正回路２６でＥＣＣ検出及び訂正処理を行って得られた８ビットを、冗長モードでは前記１３ビットの入力の内から所望ビット位置の８ビットを、当該冗長入力セレクタ２１Ｄの８ビットの出力へ結合することを可能とする。冗長出力先セレクタ２２Ｄは、ＥＣＣモードでは前記８ビットの入力に前記ＥＣＣ生成回路２７で生成した５ビットのＥＣＣチェックコードを付加して１３ビットの出力に結合し、冗長モードでは冗長入力セレクタ２１Ｄが１３ビットの入力に対して選択した８ビットの配列と同じ配列を持って、データ処理部２０から入力される８ビットを１３ビットの出力へ結合する。
【００９６】
冗長モードとＥＣＣモードに応じた上記冗長入力セレクタ２１Ｄと冗長出力セレクタ２２Ｄの動作は、モード信号ＭＤＥに従って冗長制御信号生成回路２３Ｄが冗長制御信号を用いて制御する。
【００９７】
これによれば、ｍ＝８の場合に５ビットのＥＣＣチェックビットを追加して１３ビットにする必要があり、パリティビットを追加する場合に比べて占有面積を増やす必要があるが、１ビットエラー訂正、２ビットエラー検出が可能になる。したがって、欠陥を生じていない場合にはＥＣＣモードによりデータ処理の信頼性向上に寄与し、欠陥を生じている場合には冗長モードによって欠陥を救済することができる。
【００９８】
同じマスクで高信頼品と普通信頼品を作ることができる。高信頼品にはＥＣＣモード固定とする。普通信頼品には冗長モード固定とする。当初ＥＣＣモードを設定し、システム上で故障が検出され、その故障ビットを冗長で代替して冗長モードに設定変更したとき、ＥＣＣ生成回路２７をパリティ生成回路として動作させ、ＥＣＣエラー検出訂正回路２６をパリティ検出回路として動作させ、特定の１ビットをパリティチェックビットとして用いることによって、欠陥救済品に対してもパリティチェックビットでエラー検出できるようにすることも可能になる。更に故障が発生した場合もＥＣＣチェックコードに用いた残りのビットを用いて冗長救済できるようにすることも可能である。
【００９９】
《再構成可能デバイスを搭載したマイクロコンピュータ》
図１８には再構成可能デバイスを搭載したマイクロコンピュータが例示される。同図に示されるマイクロコンピュータ１００はＳＯＣ（System On Chip）とも称される特定機能に特化した半導体集積回路であり、例えば、ＣＭＯＳ集積回路製造技術によって単結晶シリコンのような１個の半導体基板に形成される。
【０１００】
マイクロコンピュータ１００は、特に制限されないが、内部バス１０１に接続された、中央処理装置（ＣＰＵ）１０２、ＰＣＩ（Peripheral Component Interconnect）又はＰＣＩ＿Ｅｘｐｒｅｓｓ（登録商標）などのバスインタフェース回路１０３、ＤＤＲ−ＳＤＲＡＭ（Double-Data-Rate ＳＤＲＡＭ）などのメモリ制御を行なうメモリコントローラ１０４、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１０５を有する。マイクロコンピュータ１００には再構成可能デバイス１が搭載され、その信号経路網３及び図３で説明した機能制御バス２０５にデータを供給する入力ＦＩＦＯ（First in-First out）１０６、及び信号経路網３からのデータを受け取る出力ＦＩＦＯ１０７が設けられている。入力ＦＩＦＯ１０６に対するデータの書き込み、出力ＦＩＦＯ１０７に対するデータの読出しは、ＣＰＵ１０２によって設定されたデータ転送制御条件に従ってＤＭＡＣ１０５が行なう。
【０１０１】
マイクロコンピュータ１００の外部にはＤＤＲ−ＳＤＲＡＭなどの外部メモリ１１０が配置され、メモリコントローラ１０４に接続される。ＣＰＵ１０２又はＤＭＡＣ１０５による外部メモリ１１０のアクセスに際してそのアクセス要求をメモリコントローラ１０４が受け取って外部メモリ１１０のメモリ制御を行なう。
【０１０２】
例えばマイクロコンピュータ１００はストリームデータに対する静止画処理、動画処理、パケット処理、又は暗号化復号処理などに用いることができる。何れの処理に対応するかによって再構成可能デバイス１に対する機能設定が行われる。静止画処理の場合には、画像フィルタ処理、画像拡大縮小処理、データ圧縮伸張処理、及び画像認識処理の夫々を実現するための機能設定情報を、複数のデータ処理エレメント２のハードウェア定義記憶部２０３にセットすると共に、可変スイッチ部３３の経路定義記憶にセットする。この機能設定情報のセットには入力ＦＩＦＯから機能設定バス２０５などを介して行なえばよい。機能設定後に、ＣＰＵ１０２の制御に基づいてＤＭＡＣがメモリコントローラを介して外部メモリ１１０から入力画像のストリームデータを入力ＦＩＦＯに与え、与えられたデータが再構成可能デバイス１の設定に従ってデータ処理され、処理された画像データが出力ＦＩＦＯに蓄積される。蓄積された画像データはＤＭＡＣがメモリコントローラを介して外部メモリ１１０に転送し、出力画像データとして格納される。
【０１０３】
動画処理を行なう場合には、動作ストリームの統合分割処理及びデータ圧縮伸張などの夫々を実現するための機能設定情報を上記同様にセットすればよい。パケット処理を行なう場合にはパケット振り分け処理及びコンテンツサーチ処理などの夫々を実現するための機能設定情報を上記同様にセットすればよい。
【０１０４】
一方、冗長救済を要するか否かを判別するためのデバイステストについて説明する。デバイステストは製造段階でも、出荷後のシステム上での動作でも良い。デバイステストを行った際に、欠陥が、ｍビットの内、何ビット目に起こっているかを欠陥記憶部２３０に書きこむことになる。デバイステストを行なう場合、例えば電源投入後最初に毎回テスト用回路の構成情報を再構成可能デバイス１に設定して動作させ、故障を検出した場合には、故障箇所を特定して欠陥記憶部２３０に書き込む。これにより、出荷後の故障は顕在化せず、正常動作を続けることができる。場合によっては、この処理を行ったことをユーザに通知し、冗長性を失ったため早めの修理交換対応を推奨してもよい。
【０１０５】
ここでのテスト用回路の構成情報の一例としては、個々のデータ処理部２０と可変スイッチ部３３を使うテスト用回路の構成情報を用意して、一つ一つテスト用回路を入れ替えながら実行し、正常動作しないテスト回路の場所から故障箇所を特定する。
【０１０６】
製造テスト時のデバイステスト手法は、一般的なスキャンテストを実施してもよいが、出荷後に製品ボードに実装された状態（システム実装状態）での適用は困難である。そこで、再構成可能デバイス１の特性を生かし、通常のプログラム可能なユーザ向け回路であるデータ処理エレメント２のアレイ及び信号経路網３をテスト向け回路都として動作させる方法が考えられる。再構成可能デバイスのテスト手法については特許第５０３５２３９号公報に記載の手法が提案されている。この手法では故障発見箇所を逐次蓄積して、最後に故障の有無を判別しているが、今回は故障箇所の特定が必要である。そこで、故障発見箇所を蓄積しないで即時通知するようにすればよい。また、テスト開始と共にカウントアップするカウンタを用意しておけば、故障通知時のカウンタ値に基づいて故障箇所を容易に特定することが可能になる。予め用意されたテスト用回路構成情報に従って定義されるテスト用回路を用いるから、何サイクル目でどこのデータ処理エレメント２や可変スイッチ部３３がテストされているかは解っているからである。
【０１０７】
《再構成可能デバイスの他の形態》
図１９には再構成可能デバイスの別の応用例が示される。これは再公表ＷＯ２００８／１４３２８５号公報記載の技術への応用である。図１９では再構成可能デバイスを機能再構成メモリ（ＲＣＦＧＭ）１２６として構成する。機能再構成メモリ１２６は例えば中央処理装置（ＣＰＵ）１２１、ＲＯＭ１２２、ＲＡＭ１２３、及びＤＭＡＣ１２４などと共にバスＢＵＳに共通接続される。機能再構成メモリ１２６はＣＰＵ１２１等により書き込まれた論理機能設定情報（コンフィグレーション情報）に従って可変可能に論理機能が設定され、設定された論理機能に従ったデータ処理を行なう。
【０１０８】
機能再構成メモリ１２６は複数の機能再構成セル（ＡＣＭＵ）１３０、及び外部からのアクセス要求に応答して前記機能再構成セル１３０を制御するインタフェース制御回路（ＩＦＣＮＴ）１２５等を備える。機能再構成セル１３０はＣＰＵ１２１等によりバスＢＵＳから書き込まれたコンフィグレーション情報に従って可変可能に論理機能が設定される。例えば図１９においてその一部には、ＦＩＦＯバッファ（ＦＩＦＯ＿Ｂ）、１６ビットパルス幅変調回路（ＰＷＭ＿１６ｂ）、８ビットパルス幅変調回路（ＰＷＭ＿８ｂ）、シリアル送信ユニット（ＳＣＩ＿Ｔｘ）、シリアル受信ユニット（ＳＣＩ＿Ｒｘ）、２４ビットタイマ（ＴＭＲ＿２４ｂ）、及び３２ビットタイマ（ＴＭＲ＿３２ｂ）の論理機能が設定されている。残りの機能再構成セル２０はシステムバスＳＢＵＳを介してランダムアクセス可能な内部メモリ（ＩＴＮＲ＿ＲＡＭ）として利用可能にされる。
【０１０９】
図２０には機能再構成セル１３０の一例が示される。機能再構成セル１３０は記憶回路（ＭＲＹ）１３３と制御回路（ＭＣＯＮＴ）１３４を有する。記憶回路１３３は例えばシングルポートのスタティック・ランダム・アクセスメモリ（ＳＲＡＭ）１３５と、アドレスラッチ回路（ＡＤＲＬＡＴ）１３６によって構成される。ＳＲＡＭ１３５はメモリアレイ１３７、アドレスデコーダ（ＳＤＥＣ）１３８、及びタイミングコントローラ（ＴＭＣＮＴ）１３９を備える。メモリアレイ１３７はアドレスラッチ回路１３６から供給されるアドレス信号によってアクセスされるデータフィールド（ＤＦＬＤ）１３７＿Ｄと制御フィールド（ＣＦＬＤ）１３７＿Ｃを有する。アドレスデコーダ（ＳＤＥＣ）１３８はアドレスラッチ回路（ＡＤＲＬＡＴ）１３６から出力されるアドレス信号をデコードして、データフィールド（ＤＦＬＤ）１３７＿Ｄ及び制御フィールド（ＣＦＬＤ）１３７＿Ｃの夫々からアクセス単位のメモリセルを選択する。タイミングコントローラ（ＴＭＣＮＴ）１３９は選択されたアクセス単位のメモリセルに対してリード・ライト信号ＲＷ＿ｊ（ｊ＝０〜ｍ）で指示されたリード動作又はライト動作を制御する。
【０１１０】
制御回路１３４はアドレスラッチ回路１３６にアドレス信号を供給するセレクタ（ＡＤＲＳＬ）１４０、アドレスラッチ回路１３６がラッチしたアドレス信号を＋１づつインクリメントするアドレスインクリメンタ（ＩＣＲＭ）１４１、及びアクセス制御デコーダ（ＡＣＤＥＣ）１４２を有する。セレクタ１４０には、データフィールド１３７＿Ｄから読み出された情報ＤＡＴ＿Ｄ、アドレスインクリメンタ１４１の出力、及びバスＢＵＳから供給されたアクセスアドレス情報の一部のアドレス情報ＡＤＲ＿ＥＸＴが入力される。アクセス制御デコーダ１４２には制御フィールド１３７＿Ｃから読み出された制御情報ＤＡＴ＿Ｃ、外部イベント信号ＥＸＥＶＴ、当該機能再構成セル１３０に対するランダムアクセス選択信号ＲＤＭＡＥ＿ｊ、ロジックイネーブル信号ＬＯＧＥ＿ｊ、及びＩＯアクセス選択信号ＩＯＡＥ＿ｊが供給され、それに基づいてセレクタ１４０の出力動作等を制御する。メモリアレイ１３７には図示しないアドレスフィールド（ＡＦＬＤ）とアドレスフィールドの出力をセレクタ１４０への入力とするパス（ＤＡＴ＿Ａ）を更に有し、メモリアレイ１３７にアクセスしアドレスフィールドからの出力をアクセス制御デコーダ１４２によりメモリアレイ１３７の次のアクセスアドレスとすることも可能である。
【０１１１】
ランダムアクセス選択信号ＲＤＭＡＥ＿ｊがアクティブにされたときアクセス制御デコーダ１４２はセレクタ１４０にアドレス情報ＡＤＲ＿ＥＸＴを選択させ、そのアドレス情報ＡＤＲ＿ＥＸＴに従ってタイミングコントローラ１３９にリード／ライト信号ＲＷ＿ｊに従ったアクセス動作を指示する。これによってＳＲＡＭ１３５はアドレス情報ＡＤＲ＿ＥＸＴで指定されるアドレスに対してランダムアクセス可能になる。
【０１１２】
ＩＯアクセス選択信号ＩＯＡＥ＿ｊがアクティブにされ、リード／ライト信号ＲＷ＿ｊによりリード動作が指示されたとき、アクセス制御デコーダ１４２はそのときのアドレスラッチ回路１３６のアドレスラッチ状態を維持したままそのラッチアドレス情報に従ってタイミングコントローラ１３９にリードアクセス動作を指示する。これにより、機能再構成セル１３０のＩＯアクセス選択信号ＩＯＡＥ＿ｊがアクティブにされると、そのときＳＲＡＭ１３５で選択されている記憶領域に対してアクセス可能になり、ＳＲＡＭ１３５に対して一つのメモリマップドＩＯデータレジスタに対する読出しと等価なアクセス動作が可能になる。また、ＩＯアクセス選択信号ＩＯＡＥ＿ｊがアクティブにされ、リード・ライト信号ＲＷ＿ｊによりライト動作が指示されたとき、アクセス制御デコーダ１４２はアドレス情報ＡＤＲ＿ＥＸＴをアドレスセレクタ１４０に選択させ、そのアドレス情報ＡＤＲ＿ＥＸＴをアドレスラッチ１３６にセットして、ＳＲＡＭ１３５に対する読出しアドレスを初期設定することができる。このように、ＩＯアクセス選択信号ＩＯＡＥ＿ｊがイネーブルにされたとき書き込み対象とされるアドレスラッチ回路１３６は書き込み対象とされるメモリマップドＩＯレジスタと等価のレジスタとして把握することができる。
【０１１３】
ロジックイネーブル信号ＬＯＧＥ＿ｊがアクティブにされたとき、アクセス制御デコーダ１４２はそのときアドレスラッチ１３６が保持しているアドレスをスタートアドレスとして、そのアクティブ期間にＳＲＡＭ１３５のメモリリードサイクルを繰り返し起動し、サイクル毎に、制御フィールド１３７＿Ｃから読み出される制御情報ＤＡＴ＿Ｃに従ってセレクタ１４０の選択動作を制御する。外部イベント信号ＥＸＥＶＴがイネーブルにされたとき、アクセス制御デコーダ１４２は当該メモリリードサイクルにおいてアドレスセレクタ１４０に特定のアドレス（例えばＳＲＡＭ１３５の先頭アドレス）を出力させる。ロジックイネーブル信号ＬＯＧＥ＿ｊがイネーブルにされたときスタートアドレスを保持するアドレスラッチ１３６はロジック動作の開始を指示するイネーブルビットの書き込み対象とされるメモリマップドＩＯレジスタと等価のレジスタとして把握することができる。
【０１１４】
この機能再構成セル１３０によれば、記憶回路１３３の読み出しを機能再構成セル１３０それ自体で自律的に制御することができる。例えば、前記制御回路１３４はＳＲＡＭ１３５の次の読出しアドレスを先にＳＲＡＭ１３５から読出した制御フィールドＣＦＬＤの情報ＤＡＴ＿Ｃやアクセス制御デコーダ１４２に供給される外部イベント信号ＥＸＥＶＴの入力に基づいて自律的に制御することが可能である。これにより、可変論理機能を実現するための記憶回路１３３を論理回路と等価な回路として扱うことができる。したがって、実現可能な論理構成や論理規模に融通性を得ることができ、また、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。
【０１１５】
図２１には複数の機能再構成セル１３０のアレイ構成が例示される。複数の機能再構成セル１３０はマトリクス配置され、左右に隣接する機能再構成セル１３０の間には接続経路選択回路（ＲＳＷ）１４５が配置される。機能再構成セル１３０及び接続経路選択回路１４５は行単位で内部バスＩＢＵＳ＿ｉ（ｉ＝０，１，…）に接続される。内部バスＩＢＵＳ＿ｉはアドレスバスＩＡＢＵＳ＿ｉとデータバスＩＤＢＵＳ＿ｉに大別される。内部アドレスバスＩＡＢＵＳ＿ｉは制御回路１３４に前記アドレスＡＤＲ＿ＥＸＴを供給する。内部データバスＩＤＢＵＳ＿ｉは記憶回路１３３との間で情報ＤＡＴ＿Ｃ，ＤＡＴ＿Ｄを伝達する。接続経路選択回路１４５は、機能再構成セル１３０のデータＤＡＴ＿Ｃ，ＤＡＴ＿Ｄの伝達経路を上下又は左右に隣接する機能再構成セル１３０の間で選択的に接続するスイッチ回路１４６と、前記スイッチ回路１４６のスイッチ制御情報を保持するための接続用記憶回路１４７とを有する。接続用記憶回路１４７は内部バスＩＡＢＵＳ＿ｉ，ＩＤＢＵＳ＿ｉを介してランダムアクセスさせることによって所要のスイッチ制御情報が設定される。
【０１１６】
一の機能再構成セル１３０のデータＤＡＴ＿Ｃ，ＤＡＴ＿Ｄを他の機能再構成セル１３０のデータＤＡＴ＿Ｃ，ＤＡＴ＿Ｄに伝達することが可能であるから、複数の機能再構成セル１３０間でそれぞれの前記自律制御を連動させることが可能になる。複数の機能再構成セル１３０を直列的に動作させ、或いは並列的に動作させて、一単位の論理機能を実現することが可能になる。
【０１１７】
機能再構成セル１３０の記憶回路１３３には論理機能を定義するためのコンフィギュレーション情報がランダムアクセス設定され、接続経路選択回路１４５の接続用記憶回路１４７には接続経路を定義するためのコンフィグレーション情報がランダムアクセスによって設定される。論理機能が設定された機能再構成セル１３０に論理動作の開始が指示されると、その論理動作によって得られる情報は左右又は上下に配置された別の機能再構成セル１３０に接続経路選択回路１４５を介して伝達可能にされ、また、機能再構成セル１３０の論理動作による情報は前記メモリマップドＩＯレジスタに対する読出しと等価なアクセス動作により対応するバスＩＢＵＳ＿ｉを介して外部に読み出し可能にされる。
【０１１８】
図２１に例示した機能再構成セル１３０のアレイ構成においても内部バスＩＢＵＳ＿ｉなどの欠陥に対する救済手法として前述の冗長入力セレクタ２１及び冗長出力先セレクタ２２を適用することができる。例えば機能再構成セル１３０のデータ処理単位をｍビット（例えば８ビット）とし、冗長ビットをｉビット（例えば１ビット）とすれば、ＩＢＵＳ＿ｉ、ＳＤＲ＿ＥＸＴ，ＤＡＴ＿Ｄ，ＤＳＡＴ＿Ｃの各バス幅をｍ＋ｉビットに拡張し、接続経路選択回路（ＲＳＷ）１４５をそのビット数に対応させる。このとき、メモリアレイ１３７のバスＤＡＴ＿Ｄ，ＤＡＴ＿Ｃとの入出力インタフェース部分の入力回路の入力段に冗長入力セレクタ２１を配置し、当該入出力インタフェース部分の出力回路の出力段に冗長出力先セレクタ２２を配置する。更に、アクセス制御デコーダ（ＡＣＤＥＣ）１４２の入力段に冗長入力セレクタ２１を配置する。そして、セレクタ（ＡＤＲＳＬ）１４０のバスＤＡＴ＿Ｄ，ＡＤＲ＿ＥＸＴからの入力段に夫々冗長入力セレクタ２１を配置する。信号生成部２３についても上述と同様に、機能再構成セル１３０のアレイ構成の全体で共通化し、或いは機能再構成セル１３０のグループ単位で個別化しても良い。
【０１１９】
これにより、機能再構成セル１３０のアレイ構成において内部バスＩＢＵＳ＿ｉなどに生じたｉビットの欠陥を少ない面積で救済可能になる。特に図示はしないが、上述のパリティチェック機能やＥＣＣ機能を適用することも可能である。
【０１２０】
《再構成可能デバイスの信号経路網の他の形態》
信号経路網３は図１で説明した第１信号経路３１、第２信号経路３２、及び可変スイッチ部３３として把握したが、これを、図２２に例示される接続形態によって実現することも可能である。即ち、多数の接続経路選択回路３４をマトリクス状に配置、前後左右に隣接するものを互いにｍ+ｉビットのバス３５で接続して信号経路網３を構成する。データ処理エレメント２は例えば対角の接続経路選択回路３４にｍ＋ｉビットのバス３６，３７で接続される。接続経路選択回路３４は、バス35相互間の接続、バス３５とバス３６の接続、バス３５とバス２７の接続を任意に選択可能なスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持するための接続用記憶回路とを有する。これによっても、図１と同様の接続トポロジを形成することが可能である。
【０１２１】
《モジュールセレクタへの適用》
冗長出力先セレクタ及び冗長入力セレクタのモジュールセレクタへの適用例について説明する。これは、複数のモジュールからｍビット単位でモジュールセレクタに入力し、ｍビットの１の出力を選択する回路構成への応用である。例えば、半導体集積回路の限られた外部端子（外部ピン）で多様な機能を実現しようとするために、外部ピンに複数の機能割り当てを可能にするピンマルチへの応用について説明する。
【０１２２】
図２３に示される半導体集積回路（ＬＳＩ）４００は夫々ｍビットの出力を形成するｎ（２以上の整数）個の回路モジュール（ＭＬＤ１〜ＭＤＬｎ）４０１に対するピンマルチを可能にするものである。夫々の回路モジュール（ＭＬＤ１〜ＭＤＬｎ）４０１の出力ビット数ｍに対応するｍ個の外部ピンＰ１〜Ｐｍには夫々出力バッファ（ＯＦＵＦ）４０４の出力端子が接続される。４０２は回路モジュール４００を選択するためのモジュールセレクタである。ここで着目する欠陥は、モジュールセレクタ４０２の前後の信号経路における欠陥であり、ｍビットに対してｉビット（例えばｉ＝１）の冗長ビットを拡張する。モジュールセレクタ４０２はｍ＋ｉビット単位のｎ個の入力から一つのｍ＋ｉビットの入力を選択する。どれを選択するかはモジュール選択レジスタ４０３で指定される。モジュールセレクタ４０２のｍ＋ｉビット単位のｎ個の入力段には夫々前記冗長出力先セレクタ２２が配置され、モジュールセレクタ４０２のｍ＋ｉビットの出力段には前記冗長入力セレクタ２１が配置される。冗長出力先セレクタ２２は対応する回路モジュール４０１のｍビットの出力に結合されたｍビットの入力とｍ＋ｉ（ｉは、ｍ＞ｉの関係を持つ正の整数）ビットの出力とを有する。冗長入力セレクタ２１は前記モジュールセレクタ４０２の出力に結合するｍ＋ｉビットの入力とｍビットの出力とを有する。信号生成部２３は冗長出力先セレクタ２２のｍビットの入力を、当該出力先セレクタ２２の前記ｍ＋ｉビットの出力の内の所望ビット位置のｍビットの出力へ結合せることを可能とし、且つ、冗長入力セレクタ２１のｍ＋ｉビットの入力の内から前記所望ビット位置のｍビットを当該冗長入力セレクタ２１のｍビットの出力へ結合させることを可能とするものであり、上述同様に冗長制御信号生成回路２３１と欠陥記憶部２３０によって構成される。
【０１２３】
上記によれば、モジュールセレクタ４０２のｍ＋ｉビット単位の入力毎に冗長出力先セレクタ２２が配置され、モジュールセレクタ４０２の出力段に冗長入力セレクタ２１が配置されることによって、冗長出力先セレクタ２２のｍ＋ｉビット出力の内のｉビットが冗長になり、冗長入力セレクタ２１のｍ＋ｉビット入力の内のｉビットが冗長になり、複数の冗長出力先セレクタ２２及び冗長入力セレクタ２１に対して信号生成部２３が共通化され、双方のセレクタ２１，２２における所望ビット位置のｍビットの配置が等しくされる。したがって、モジュールセレクタ４０２の入力段に接続された複数個の冗長出力先セレクタ２２群毎にｍ＋ｉビット中の最大ｉビットの欠陥を救済することができる。このようにその救済範囲はｍビット単位の複数の入力に対して最大ｉビットであり、モジュールセレクタ４０２にビット単位の冗長構成を採用してビット単位で冗長の構成情報を持つことを要しない。ｍ≧２、ｍ＞ｉであるから単なる二重化による冗長構成は排除されている。回路モジュールの数が多くなるほど回路モジュールを選択するモジュールセレクタ４０２の規模が大きくなるため、ピンマルチのためのモジュールセレクタの信号経路に冗長性を持たせる意味がでてくる。
【０１２４】
その他に図２４に例示されるメモリ選択の応用例がある。即ち、複数のメモリの内の一つのメモリのリードデータを出力する例である。ここでは回路モジュールとして複数のメモリ４１１を想定する。メモリ４１１の選択はモジュールセレクタ４１２で行うが、その選択は、ｊ＋ｋビットのアドレス信号ＡＤＤＲの下位側ｋビットをラッチ回路（ＦＦ）４１５でラッチして用いる。上位側ｊビットは複数のメモリ４１１に共通に供給される。ここで着目する欠陥は、モジュールセレクタ４１２の前後の信号経路における欠陥であり、ｍビットに対してｉビット（例えばｉ＝１）の冗長ビットを拡張する。モジュールセレクタ４１２はｍ＋ｉビット単位の複数の入力から一つのｍ＋ｉビットの入力を選択する。モジュールセレクタ４１２のｍ＋ｉビット単位の複数の入力段には夫々前記冗長出力先セレクタ２２が配置され、モジュールセレクタ４０２のｍ＋ｉビットの出力段には前記冗長入力セレクタ２１が配置される。冗長出力先セレクタ２２は対応するメモリ４１１のｍビットの出力に結合されたｍビットの入力とｍ＋ｉ（ｉは、ｍ＞ｉの関係を持つ正の整数）ビットの出力とを有する。冗長入力セレクタ２１はモジュールセレクタ４１２の出力に結合するｍ＋ｉビットの入力とｍビットの出力とを有する。信号生成部２３は冗長出力先セレクタ２２のｍビットの入力を、当該出力先セレクタ２２の前記ｍ＋ｉビットの出力の内の所望ビット位置のｍビットの出力へ結合せることを可能とし、且つ、冗長入力セレクタ２１のｍ＋ｉビットの入力の内から前記所望ビット位置のｍビットを当該冗長入力セレクタ２１のｍビットの出力へ結合させることを可能とするものであり、上述同様に冗長制御信号生成回路２３１と欠陥記憶部２３０によって構成される。
【０１２５】
これによっても図２３の場合と同様の作用効果を得る。メモリの数が多くなるほどモジュールセレクタ４１２の規模が大きくなるため、メモリ選択のためのモジュールセレクタの信号経路に冗長性を持たせる意味がでてくる。
【０１２６】
本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１２７】
例えば、データ処理単位のｍビットは８ビットに限定されず、１６ビット、３２ビット、６４ビットなどその他のビット数を採用することが可能である。冗長のｉビットは１ビット、２ビットに限定されず、ｉ＜ｍの関係を満足するその他のビット数であってよい。
【０１２８】
また、冗長入力セレクタ２１の具体例として図５ではｍ＋ｉビットの入力の最下位から１ビットずつずれた隣接するｉビットを入力して何れか１ビットを選択するｍ個のｉ＋１ビット入力を持つ第１セレクタ２１０＿０〜２１０＿７を用いたが、それとは逆に、ｍ＋ｉビットの入力の最上位から１ビットずつずれた隣接するｉビットを入力して何れか１ビットを選択するｍ個のｉ＋１ビット入力を持つ第１セレクタを用いて、ｍ＋ｉビットの入力からｍビットを選択可能にしてもよい。
【０１２９】
ＥＣＣチェックコードのビット数は５ビットに限定されない。８ビットデータに対して一般的な６ビットでも良い。データビット数に対して救済可能とするビット数とエラー検出可能とするビット数に応じて決定すればよい。
【０１３０】
また、データ処理単位がｍビットとｎビットというような演算幅が異なるデータ処理エレメントや可変信号経路網を持つ再構成可能デバイスなどの場合には、ｍビットとｎビットの夫々のデータ処理系に対して別々に冗長入力セレクタ及び冗長出力先セレクタを用いた冗長救済を行ってもよい。面積とのバランスから片方だけを選択することもあり得る。デバイスの面積の大部分がｍビット要素である場合などには、ｍビットの部分だけに冗長性を設けても多くの場合は救済できる。また、ビット数がｍ＞ｎであるときは、ｍビット側の方が１ビット冗長を加えることによる面積増加割合は低く抑えられる。
【０１３１】
更に、以上の説明では再構成可能デバイスやモジュールセレクタに冗長入力セレクタ及び冗長出力先セレクタの双方を適用したが、何れか一方だけに着目する用いる応用も考えられる。
【０１３２】
即ち、前記可変信号経路網３、これに接続される複数個のデータ処理エレメント、及び可変設定部２３を有し、前記データ処理エレメントは、ｍ＋ｉ（ｉとｍは、ｍ≧２、ｍ＞ｉの関係を有する正の整数）ビットの入力とｍビットの出力とを有する冗長入力セレクタ２１と、前記入力セレクタの前記ｍビットの出力に結合されたｍビットの入力を有するｍビット演算幅の演算部２０と、を有する。冗長出力先セレクタ２２には着目しない。前記可変設定部２３は、前記冗長入力セレクタ２１に結合され、冗長入力セレクタ２１の前記ｍ＋ｉビットの入力の内から所望のｍビットを当該冗長入力セレクタ２１の前記ｍビットの出力へ結合させることを可能にする信号を生成する。可変信号経路網３は、ｍ＋ｉビットのビット幅を持つ複数の信号経路３２と、入力に接続された複数の信号経路から可変可能に選択した一つの信号経路を前記入力セレクタの入力に接続する可変スイッチ部３３とを有する。
【０１３３】
これによれば、可変スイッチ部３３を介して複数の信号経路３２から選択された一つの信号経路に至る経路の故障に対して冗長入力セレクタ２１のｍ＋ｉビットからｍビットの配置を選択することによって冗長選択を行う。したがって、ｍビットの信号経路に対してビット単位で冗長の構成情報を持つことを要せず、また、データ処理エレメントのアレイに冗長行を新たに追加することを要せず、少ない冗長用面積で欠陥救済が可能になる。
【０１３４】
同様に、冗長出力先セレクタだけに着目しても良い。即ち、可変信号経路網３、これに接続される複数個のデータ処理エレメント、及び可変設定部３を有する。前記データ処理エレメントは、ｍビット出力を有するｍビット演算幅の演算部２０と、演算部２０の前記ｍビット出力に結合されたｍビットの入力と、ｍ＋ｉ（ｉとｍは、ｍ≧２、ｍ＞ｉの関係を有する正の整数）ビットの出力とを有する冗長出力先セレクタ２２と、を有する。冗長入力セレクタには着目しない。可変設定部２３は、前記冗長出力先セレクタ２２に結合され、冗長出力先セレクタ２２の前記ｍビットの入力を、当該冗長出力先セレクタ２２の前記ｍ＋ｉビットの出力の内の所望のｍビットの出力へ結合させることを可能にする信号を生成する。前記可変信号経路網３は、ｍ＋ｉビットのビット幅を持つ複数の信号経路３２と、前記複数の冗長出力先セレクタの出力に前記信号経路３２を介して接続するｍ＋ｉビットの入力を複数持ち、当該複数の入力の中から可変可能に選択した一つをｍ＋ｉビットの出力に接続する可変スイッチ部３３とを有する。
【０１３５】
これによれば、ｍ＋ｉビットの夫々の信号経路３２はｉビットの冗長を持ち、複数個のデータ処理エレメントの夫々から可変スイッチ部３３の入力に至る複数の信号経路３２の故障に対して冗長出力先セレクタ２２によりｍ＋ｉビットの出力の内のｍビットの配置を選択することによって冗長選択を行う。したがって、ｍビットの信号経路に対してビット単位で冗長の構成情報を持つことを要せず、また、データ処理エレメントのアレイに冗長行を新たに追加することを要せず、少ない冗長用面積で欠陥救済が可能になる。
【符号の説明】
【０１３６】
１  再構成可能デバイス
２  データ処理エレメント（ＰＥ）
２Ｃ  データ処理エレメント（ＰＥ）
２Ｄ  データ処理エレメント（ＰＥ）
３  信号経路網
２０  データ処理部
２１  入力セレクタ（冗長入力セレクタ）
２１Ａ  冗長入力セレクタ
２１Ｂ  冗長入力セレクタ
２１Ｄ  冗長入力セレクタ
２２  出力先セレクタ（冗長出力先セレクタ）
２２Ａ  冗長出力先セレクタ
２２Ｄ  冗長出力先セレクタ
２３  信号生成部
２３Ｄ  信号生成部
２４  パリティ検出回路
２５  パリティ生成回路
２６  ＥＣＣ検出訂正回路
２７  ＥＣＣ生成回路
ＭＤＥ  モード信号
ＰＲＴＹ  パリティ信号
３１  第１信号経路
３１Ａ  第１信号経路
３１Ｄ  第１信号経路
３２  第２信号経路
３２Ａ  第２信号経路
３２Ｄ  第２信号経路
３３  可変スイッチ部
３３Ｄ  可変スイッチ部
３４  接続経路選択回路
３５  バス
３６，３７  バス
ＣｎｔＲ（ｓ０〜ｓ７）  冗長制御信号
１００  マイクロコンピュータ
１０１  内部バス
１０２  中央処理装置（ＣＰＵ）
１０３  バスインタフェース回路
１０４  メモリコントローラ
１０５  ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）
１０６  入力ＦＩＦ
１０７  出力ＦＩＦＯ
１１０  外部メモリ
１２１  中央処理装置（ＣＰＵ）
１２２  ＲＯＭ
１２３  ＲＡＭ
１２４  ＤＭＡＣ
１２５  インタフェース制御回路（ＩＦＣＮＴ）
１２６  機能再構成メモリ（ＲＣＦＧＭ）
１３０  機能再構成セル（ＡＣＭＵ）
１３３  記憶回路（ＭＲＹ）
１３４  制御回路（ＭＣＯＮＴ）
１３５  スタティック・ランダム・アクセスメモリ（ＳＲＡＭ）
１３６  アドレスラッチ回路（ＡＤＲＬＡＴ）
１３７  メモリアレイ
１３７＿Ｄ  データフィールド（ＤＦＬＤ）
１３７＿Ｃ  制御フィールド（ＣＦＬＤ）
１３８  アドレスデコーダ（ＳＤＥＣ）
１３９  タイミングコントローラ（ＴＭＣＮＴ）
ＩＢＵＳ＿ｉ  内部バス
１４５  接続経路選択回路（ＲＳＷ）
２０１  算術論理演算ユニット（ＡＬＵ）
２００  フィルタ演算ユニット（ＤＭＵ）
２０２  レジスタファイル（ＲＥＧ）
２０３  ハードウェア定義記憶部
２０４  ポインタ（ＰＮＴ)
２０５  機能制御バス
２１０＿０〜２１０＿７  第１セレクタ
２１０Ａ＿０〜２１０Ａ＿７  第１セレクタ
２１０Ｂ＿０〜２１０Ｂ＿７  第４セレクタ
２２０＿０〜２２０＿６  第２セレクタ
２２０Ａ＿０〜２２０Ａ＿６  第２セレクタ
２２０Ａ＿７  第３セレクタ
２２０Ｂ  第５セレクタ
ＢＬＫ１，ＢＬＫ２  ブロック
２２０＿７  第６セレクタ
ＭＤＰ  モード信号
ＥＲＲ  パリティ検出信号
２３０  欠陥記憶部
２３０Ａ  欠陥記憶部
２３０Ｂ  欠陥記憶部
２３０Ｄ  欠陥記憶部
２３１  冗長制御信号生成回路
２３１Ａ  冗長制御信号生成回路
２３１Ｂ  冗長制御信号生成回路
２３１Ｄ  冗長制御信号生成回路
４００  半導体集積回路（ＬＳＩ）
４０１  回路モジュール（ＭＬＤ１〜ＭＤＬｎ）
４０２  モジュールセレクタ
Ｐ１〜Ｐｍ  外部ピン
４０４  出力バッファ（ＯＦＵＦ）
４１１  メモリ
４１２  モジュールセレクタ
ＡＤＤＲ  アドレス信号
【図１】
2015082671.tif 000003
【図２】
2015082671.tif 000004
【図３】
2015082671.tif 000005
【図４】
2015082671.tif 000006
【図５】
2015082671.tif 000007
【図６】
2015082671.tif 000008
【図７】
2015082671.tif 000009
【図８】
2015082671.tif 000010
【図９】
2015082671.tif 000011
【図１０】
2015082671.tif 000012
【図１１】
2015082671.tif 000013
【図１２】
2015082671.tif 000014
【図１３】
2015082671.tif 000015
【図１４】
2015082671.tif 000016
【図１５】
2015082671.tif 000017
【図１６】
2015082671.tif 000018
【図１７】
2015082671.tif 000019
【図１８】
2015082671.tif 000020
【図１９】
2015082671.tif 000021
【図２０】
2015082671.tif 000022
【図２１】
2015082671.tif 000023
【図２２】
2015082671.tif 000024
【図２３】
2015082671.tif 000025
【図２４】
2015082671.tif 000026
【図２５】
2015082671.tif 000027
【図２６】
2015082671.tif 000028
【図２７】
2015082671.tif 000029