(57)【要約】【課題】  論理回路において遅延故障が発生した場合においても、処理性能を低下させること無く動作可能な論理回路構成技術を提供する。【解決手段】  １以上の論理ブロックと書き換え可能ブロックとを含む論理回路において、第１のクロックにおいて遅延故障が発生した論理ブロックを検出する検出手段と、少なくとも遅延故障が発生した論理ブロックと等価な論理ブロックが並列に２以上配置された論理ブロックを第１のクロックより遅い第２のクロックにおいて動作可能な書き換え可能ブロックの中に構成する論理ブロック構成手段とを有することを特徴とする。【選択図】図１
2007078638.tif 000002
【特許請求の範囲】
【請求項１】
１以上の論理ブロックと書き換え可能ブロックとを含む論理回路において、
第１のクロックにおいて遅延故障が発生した論理ブロックを検出する検出手段と、
少なくとも遅延故障が発生した前記論理ブロックと等価な論理ブロックが並列に２以上配置された論理ブロックを、前記第１のクロックより遅い第２のクロックにおいて動作可能な前記書き換え可能ブロックの中に構成する論理ブロック構成手段と、
を有することを特徴とする論理回路。
【請求項２】
遅延故障が発生した前記論理ブロックは２以上のサブブロックから構成され、遅延故障は一部のサブブロックで発生しており、
遅延故障が発生したサブブロックは、該サブブロックに入力されるデータをバイパス出力するためのバイパス手段を有し、
前記論理ブロック構成手段は、前記バイパス手段によりバイパスされるサブブロックと等価な論理ブロックが並列に２以上配置された論理ブロックを、前記書き換え可能ブロックの中に構成することを特徴とする請求項１に記載の論理回路。
【請求項３】
１以上の論理ブロックと書き換え可能ブロックとを含む論理回路において、
第１のクロックにおいて遅延故障が発生した論理ブロックを検出する検出手段と、
遅延故障が発生した前記論理ブロックを、前記第１のクロックより遅い第２のクロックで動作させるようクロック制御を行うクロック制御手段と、
前記クロック制御手段による動作クロック低下により生じた前記論理ブロックの処理能力低下を補完するため、少なくとも遅延故障が発生した前記論理ブロックと等価な処理を行う論理ブロックを１以上含む論理ブロックを、前記第１のクロックより遅い第３のクロックにおいて動作可能な前記論理回路内に構成する論理ブロック構成手段と、
を有することを特徴とする論理回路。
【請求項４】
前記第２のクロックと前記第３のクロックとは同一の速度であることを特徴とする請求項３に記載の論理回路。
【請求項５】
１以上の論理ブロックと書き換え可能ブロックとを含む論理回路の回路構成方法であって、
第１のクロックにおいて遅延故障が発生した論理ブロックを検出する検出工程と、
少なくとも遅延故障が発生した前記論理ブロックと等価な論理ブロックが並列に２以上配置された論理ブロックを、前記第１のクロックより遅い第２のクロックにおいて動作可能な前記書き換え可能ブロックの中に構成する論理ブロック構成工程と、
を有することを特徴とする回路構成方法。
【請求項６】
１以上の論理ブロックと書き換え可能ブロックとを含む論理回路の回路構成方法であって、
第１のクロックにおいて遅延故障が発生した論理ブロックを検出する検出工程と、
遅延故障が発生した前記論理ブロックを、前記第１のクロックより遅い第２のクロックで動作させるようクロック制御を行うクロック制御工程と、
前記クロック制御工程による動作クロック低下により生じた前記論理ブロックの処理能力低下を補完するため、少なくとも遅延故障が発生した前記論理ブロックと等価な処理を行う論理ブロックを１以上含む論理ブロックを、前記第１のクロックより遅い第３のクロックにおいて動作可能な前記論理回路内に構成する論理ブロック構成工程と、
を有することを特徴とする回路構成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遅延故障対策のための論理回路の構成技術に関するものである。
【背景技術】
【０００２】
従来、ＡＳＩＣ（特定用途向けＩＣ）等の論理回路のレイアウト工程において、タイミングを考慮した配置配線を行っている。例えば、ＩＲドロップやクロストークによる遅延の変動、クロックパス及びデータパスのチップ内変動を考慮したタイミング解析を行い、ＡＳＩＣ内の全ての論理ブロックがタイミング制約を満たすことを確認する。また、高速動作する部分については、出荷テスト時にアットスピードテストを行い、タイミング制約を満たす製品を選別している。
【０００３】
しかし、近年のＡＳＩＣの大規模化や動作周波数の向上に伴い、ＡＳＩＣ内部の部分的な遅延故障の発生が問題になっている。目標動作クロックにおいて遅延故障が発生した場合、例えば、遅延故障が発生しない程度にまで動作クロックを下げＡＳＩＣを動作させる必要がある（特許文献１）。
【特許文献１】特開平１１−２８８４３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＡＳＩＣ全体の動作クロックを下げる方法では、処理性能が低下してしまうという問題がある。
【０００５】
一方、製造したＡＳＩＣの多くが遅延故障を起こす場合は再設計を行う必要があるが、コストが増大につながるという問題がある。また、製造したＡＳＩＣの製品寿命の短期化につながるという問題もある。
【０００６】
本発明は、上記問題点に鑑みてなされたものであり、論理回路において遅延故障が発生した場合においても、処理性能を低下させること無く動作可能な論理構成技術を提供することを目的としている。
【課題を解決するための手段】
【０００７】
１以上の論理ブロックと書き換え可能ブロックとを含む論理回路において、第１のクロックにおいて遅延故障が発生した論理ブロックを検出する検出手段と、少なくとも遅延故障が発生した論理ブロックと等価な論理ブロックが並列に２以上配置された論理ブロックを第１のクロックより遅い第２のクロックにおいて動作可能な書き換え可能ブロックの中に構成する論理ブロック構成手段とを有することを特徴とする。
【０００８】
さらに、遅延故障が発生した論理ブロックは２以上のサブブロックから構成され、遅延故障は一部のサブブロックで発生しており、遅延故障が発生したサブブロックはサブブロックに入力されるデータをバイパス出力するためのバイパス手段を有し、論理ブロック構成手段はバイパス手段によりバイパスされるサブブロックと等価な論理ブロックが並列に２以上配置された論理ブロックを書き換え可能ブロックの中に構成することを特徴とする。
【０００９】
または、１以上の論理ブロックと書き換え可能ブロックとを含む論理回路において、第１のクロックにおいて遅延故障が発生した論理ブロックを検出する検出手段と、遅延故障が発生した論理ブロックを第１のクロックより遅い第２のクロックで動作させるようクロック制御を行うクロック制御手段と、クロック制御手段による動作クロック低下により生じた論理ブロックの処理能力低下を補完するため少なくとも遅延故障が発生した論理ブロックと等価な処理を行う論理ブロックを１以上含む論理ブロックを第１のクロックより遅い第３のクロックにおいて動作可能な論理回路内に構成する論理ブロック構成手段とを有することを特徴とする。
【００１０】
ここで、第２のクロックと第３のクロックとは同一の速度であることを特徴とする。
【００１１】
１以上の論理ブロックと書き換え可能ブロックとを含む論理回路の回路構成方法であって、第１のクロックにおいて遅延故障が発生した論理ブロックを検出する検出工程と、少なくとも遅延故障が発生した論理ブロックと等価な論理ブロックが並列に２以上配置された論理ブロックを第１のクロックより遅い第２のクロックにおいて動作可能な書き換え可能ブロックの中に構成する論理ブロック構成工程とを有することを特徴とする。
【００１２】
または、１以上の論理ブロックと書き換え可能ブロックとを含む論理回路の回路構成方法であって、第１のクロックにおいて遅延故障が発生した論理ブロックを検出する検出工程と、遅延故障が発生した論理ブロックを第１のクロックより遅い第２のクロックで動作させるようクロック制御を行うクロック制御工程と、クロック制御工程による動作クロック低下により生じた論理ブロックの処理能力低下を補完するため少なくとも遅延故障が発生した論理ブロックと等価な処理を行う論理ブロックを１以上含む論理ブロックを第１のクロックより遅い第３のクロックにおいて動作可能な論理回路内に構成する論理ブロック構成工程とを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、論理回路において遅延故障が発生した場合においても、処理性能を低下させること無く論理回路の動作を可能とする技術を提供することが出来る。
【発明を実施するための最良の形態】
【００１４】
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１５】
（第１実施形態）
＜概要＞
第１実施形態では、ＡＳＩＣ内部において、遅延故障の発生した論理ブロックの利用を停止し、この論理回路と等価な回路をＡＳＩＣ内部に設けられた書き換え可能回路に構成し利用する。これにより、ＡＳＩＣの処理性能を低下させること無く動作を可能とすることを可能としている。
【００１６】
＜ＡＳＩＣの構成＞
図１は、第１実施形態に係る、ＡＳＩＣ内部の回路構成の一例を示す図である。
【００１７】
ＡＳＩＣ１００は、主に、論理ブロック１０１、論理ブロック１０２、書き換え可能（ＲＣ）ブロック１０３、メモリ１１０およびＣＰＵ１２０を有している。論理ブロック１０１および論理ブロック１０２は、ＡＳＩＣ１００の外部から入力されるデータをＣＰＵ１２０からの制御に従い処理する。メモリ１１０は、各種データの記憶領域や、ＡＳＩＣ１００で処理中のデータのバッファとして利用される。ＣＰＵ１２０は、ＡＳＩＣ１００内の各部の制御および、ＡＳＩＣ外部から入力されたデータの前処理などを行う。なお、ＣＰＵ１２０は、制御線１２１〜１２３を用いて論理ブロック１０１、論理ブロック１０２およびＲＣブロック１０３の制御を行う。なお、ここでは説明を簡単にするため、ＡＳＩＣ１００の外部とのデータ入出力部については図示していない。
【００１８】
なお、論理ブロック１０１、１０２は、それぞれ遅延故障が発生した場合には、メモリ１１０内の状態記憶部（不図示）に対し異常状態であることを示すデータを書き込む。例えば、正常動作時はビットフラグとして”０”が設定されている領域に対して、遅延故障発生時には”１”を書き込む。ＣＰＵ１２０は、状態記憶部を読み取ることにより各論理ブロックにおける遅延故障の有無を確認することが出来る。
【００１９】
論理ブロック１０１および論理ブロック１０２の各部は、入力制御部１０４ａ、１０４ｂ、出力制御部１０５ａ、１０５ｂを介してシステムバス１３０に接続され、メモリ１１０およびＣＰＵ１２０との間で処理データのやり取りが行われる。さらに、ＣＰＵ１２０とＲＣブロック１０３とは、ＲＣブロック１０３の書き換え（コンフィギュレーション）のためのコンフィギュレーションバス１２５で接続される。なお、図では、ＲＣブロック１０３に対する入力制御部および出力制御部は、ＲＣブロック１０３内に構成することを想定し図示していない。つまり、ＲＣブロック１０３の書き換え時に、論理ブロックと併せて構成する。もちろん、あらかじめＲＣブロック１０３とは別に構成しておいても良い。
【００２０】
ＡＳＩＣ１００には、外部から各部の基準動作クロックに利用されるクロック１５１（第１のクロック）とクロック１５２（第２のクロック）が入力されている。なお、クロック１５２はクロック１５１より低速であり、以下では、クロック１５２はクロック１５１の半分の速度であるとして説明する。
【００２１】
論理ブロック１０１、論理ブロック１０２およびＲＣブロック１０３はそれぞれ異なるクロックで動作可能である。論理ブロック１０１および論理ブロック１０２のクロック入力部には、使用するクロックを選択するためのセレクタ１４１およびセレクタ１４２が配置されている。なお、ＲＣブロック１０３には、クロック１５１およびクロック１５２の両方が入力されているとする。
【００２２】
なお、ここではＣＰＵ１２０がセレクタ１２１、１２２を制御することによりクロックの切り換えを行う構成の例を示している。しかし、例えばクロック切り換え用のスイッチ（不図示）をＡＳＩＣ１００の外部に設け、ユーザによるスイッチ操作によりクロック切り換えを受け付けるよう構成してもよい。また、ここでは論理ブロック１０１、論理ブロック１０２およびＲＣブロック１０３に入力されるクロックが２種類である例を示しているが、より多くの種類のクロックを選択入力可能となるよう構成しても良い。
【００２３】
＜論理ブロックの構成＞
図２は、論理ブロック１０１内部の構成を示す図である。
【００２４】
論理ブロック１０１は、サブブロック２０１およびサブブロック２０２を有しており、直列に接続されている。つまり、サブブロック２０２はサブブロック２０１の出力データに対して処理を行う。そのため、サブブロック２０１およびサブブロック２０２の何れかに遅延故障が発生した場合、論理ブロック１０１全体が正常に機能しないことになる。
【００２５】
＜遅延故障が発生していないＡＳＩＣにおけるデータの処理フロー＞
図３は、遅延故障が発生していないＡＳＩＣによるデータの処理フローを示す図である。図３（ａ）は、ＡＳＩＣ１００内の各論理ブロックにおける処理の流れを示す図であり、図３（ｂ）は、ＡＳＩＣ内の各論理ブロックのタイミングチャートである。なお、図３（ａ）、（ｂ）では各論理ブロックにおける処理のみを示しているが、各論理ブロックで処理され出力されたデータは、メモリ１１０上のバッファ領域を経由してＣＰＵ１２０により次の論理ブロックに入力される。
【００２６】
なお、遅延故障が発生していない場合は、論理ブロック１０１および論理ブロック１０２は何れもクロック１５１で動作しており、ＲＣブロックは使用されない。
【００２７】
ＡＳＩＣ１００の外部から入力されたデータは、まず論理ブロック１０１で処理可能な形式となるようＣＰＵ１２０により前処理がなされる。処理されたデータはメモリ上のバッファ領域に一時記憶される。
【００２８】
メモリ上１１０のバッファ領域に一時記憶されたデータは、入力制御部１０４ａを経由して論理ブロック１０１に入力され、論理ブロック１０１による処理がなされる。処理されたデータは出力制御部１０５ａを経由してメモリ上のバッファ領域に一時記憶される。
【００２９】
メモリ上１１０のバッファ領域に一時記憶されたデータは、入力制御部１０４ｂを経由して論理ブロック１０２に入力され、論理ブロック１０２による処理がなされる。処理されたデータは出力制御部１０５ｂを経由してＡＳＩＣ１００の外部に出力される。
【００３０】
なお、ここでは、各入力制御部および出力制御部の制御はＣＰＵ１２０が行うことを想定しているが、各入力制御部および出力制御部に対応する各機能ブロックが行っても良い。また、メモリ１１０上のバッファ領域を介さずに各機能ブロック１０１、１０２およびＣＰＵ１２０間で直接データの授受を行うよう構成してもよい。
【００３１】
＜遅延故障発生時のＲＣブロック構成動作＞
図４は、論理ブロック１０１に遅延故障が発生した場合におけるＡＳＩＣ１００の動作フローチャートである。以下のフローはＡＳＩＣ１００への電源投入をトリガに開始される。なお、メモリ１１０にはあらかじめ論理ブロック１０１と等価な論理ブロック構成データが記憶されているとする。なお、以下では論理ブロック１０１に遅延故障が発生した場合について説明を行うが、論理ブロック１０２に遅延故障が発生した場合にも同様の手順で実現可能である。その場合は、論理ブロック１０２と等価な論理ブロック構成データをメモリ１１０に記憶しておく。
【００３２】
ステップＳ４０１では、ＣＰＵ１２０は、論理ブロック１０１、１０２に対しクロック１５１が入力されるようセレクタ１２１、１２２を制御し、ＡＳＩＣ１００はデータ処理動作を開始する。この際、ＣＰＵ１２０は、メモリ１１０内に、論理ブロック１０１、１０２の入出力データに対するバッファ領域をそれぞれ確保する。また、それぞれのバッファ領域のスタートアドレスを入力制御部１０４ａ、出力制御部１０５ａ、および、入力制御部１０４ｂ、出力制御部１０５ｂに設定する。
【００３３】
ステップＳ４０２では、ＣＰＵ１２０は、状態記憶部を読み取ることにより各論理ブロックにおける遅延故障の有無の検出を開始する。遅延故障の発生を検出したらステップＳ４０３に進む。遅延故障が無ければ、再び監視状態に戻る。なお、一定時間遅延故障が発生しない場合は、そのＡＳＩＣ１００には遅延故障が発生しないと見なし、フローを終了するよう構成してもよい。
【００３４】
ステップＳ４０３では、ＣＰＵ１２０は、メモリ１１０から遅延故障が発生した論理ブロック１０１と等価な論理ブロック構成データを読み込み、コンフィギュレーションバス２５を用いてＲＣブロック１０３内に論理ブロックを構成する。なお、ＲＣブロック１０３内に構成する論理ブロックとしては、論理ブロック１０１と論理的に等価な処理を行う構成であれば、全く同一でなくても良い。また、以下に説明するように処理性能を向上するために並列に複数の論理ブロックを構成してもよい。
【００３５】
図５は、ＲＣブロック内に構成される論理ブロックの構成例である。
【００３６】
５０１ａおよび５０１ｂはそれぞれ論理ブロック１０１と等価な処理を行う論理ブロックである。また、入力制御部５１０および出力制御部５２０は５０１ａおよび５０１ｂへのデータ入出力を制御する回路である。なお、ブロック５１１ａおよび５１１ｂはサブブロック２０１と等価なブロックを示し、ブロック５１２ａおよび５１２ｂはサブブロック２０２と等価なブロックを示している。なお、ブロック５０１ａ、５０１ｂに対してはクロック１５２が入力され、入力制御部５１０および出力制御部５２０のデータバス１３０側にはクロック１５１が入力されるよう構成される。
【００３７】
ステップＳ４０４では、ＣＰＵ１２０は、ステップＳ４０１で確保した論理ブロック１０１に対するバッファを開放する。また、新たにメモリ１１０内に、ＲＣブロック１０３の入出力データに対応するバッファ領域を確保する。そして、バッファ領域のスタートアドレスをＲＣブロック１０３の入力制御部５１０、出力制御部５２０に設定する。
【００３８】
ステップＳ４０５では、ＣＰＵ１２０は、ＲＣブロック１０３に対しクロック１５１および１５２が入力されるよう制御を行い、ＡＳＩＣ１００はデータ処理動作を再開する。
【００３９】
なお、ここでは、論理ブロック１０１と等価な論理ブロック構成データをメモリ１１０にあらかじめ記憶するよう説明を行ったが、ＡＳＩＣ１００の外部の記憶装置（不図示）に記憶するよう構成しても良い。
【００４０】
＜ＲＣブロック構成後のＡＳＩＣにおけるデータの処理フロー＞
図６は、ＲＣブロック構成後のＡＳＩＣによるデータの処理フローを示す図である。図６（ａ）は、ＡＳＩＣ１００内の各論理ブロックにおける処理の流れを示す図であり、図６（ｂ）は、ＡＳＩＣ１００内の各論理ブロックのタイミングチャートである。
【００４１】
ＡＳＩＣ１００の外部から入力されたデータは、まずＲＣブロック１０３で処理可能な形式となるようＣＰＵ１２０により前処理がなされる。処理されたデータはメモリ上のバッファ領域に一時記憶される。なお、ＲＣブロック１０３は論理的には論理ブロック１０１と等価であるため、ＣＰＵ１２０による処理は遅延故障の発生していない場合と同様である。
【００４２】
メモリ上１１０のバッファ領域に一時記憶されたデータは、入力制御部５１０を経由してブロック５０１ａおよびブロック５０１ｂに入力され、クロック１５２で動作するブロック５０１ａおよびブロック５０１ｂにより並列に処理がなされる。ブロック５０１ａおよびブロック５０１ｂにより処理されたデータは出力制御部５２０を経由してメモリ上のバッファ領域に一時記憶される。入力制御部５１０および出力制御部５２０は、ブロック５０１ａおよびブロック５０１ｂによる並列処理を行うための制御を行っている。
【００４３】
メモリ上１１０のバッファ領域に一時記憶されたデータは、入力制御部１０４ｂを経由して論理ブロック１０２に入力され、論理ブロック１０２による処理がなされる。処理されたデータは出力制御部１０５ｂを経由してＡＳＩＣ１００の外部に出力される。
【００４４】
遅延故障が発生していない場合（図３（ｂ））と同様、バッファ動作を除くと、１つのデータに対して必要となるクロック数は実質８クロックであることが分かる。つまり、クロック１５１の半分のクロック１５２で動作する論理ブロックを並列に２個動作させることにより、同等の性能を実現しているのである。
【００４５】
以上、説明したように、ＡＳＩＣ１００内の論理ブロック１０１に遅延故障が発生した場合においても、ＡＳＩＣ全体としての処理能力は保持されることが分かる。なお、ここでは物理的な回路であるＡＳＩＣに適用した形態について説明を行った。しかしながら、例えばタイミング解析等のシミュレーションの際に用いられる論理的な回路として適用することも可能である。また、ここでは、ＲＣブロックをＡＳＩＣの内部に配置し説明を行ったが、ＡＳＩＣの外部にＲＣブロックを配置する別体構成としても良い。
【００４６】
（第２実施形態）
＜概要＞
第２実施形態では、論理ブロック内の一部のサブブロックについて遅延故障が発生している場合において、遅延故障が発生したサブブロックと等価な回路をＲＣブロック内に構成する。これにより、第１実施形態に比較し、より少ないＲＣブロック領域でＡＳＩＣの処理性能を低下させること無く動作を可能としている。なお、ＡＳＩＣ回路構成については第１実施形態と同様であるため詳細な説明は省略する。
【００４７】
＜論理ブロックの構成＞
図７は、論理ブロック１０１内部の詳細構成を示す図である。図２とほぼ同様であるが、サブブロック２０１をさらに詳細に示している。
【００４８】
サブブロック２０１は、演算回路７０１、動作モード選択レジスタ７０３、およびセレクタ７０２から構成されている。サブブロック２０１は、ＣＰＵ１２０が設定した動作モード選択レジスタ２０７の状態に応じて切り替わる２つの動作モードを有する。動作モードには、演算回路７０１による処理を行う”通常モード”、および、演算回路７０１による処理を行わず入力されたデータをバイパスする”バイパスモード”がある。
【００４９】
通常モードで動作するサブブロック２０１では、入力制御部１０４ａから入力されるデータは、演算回路７０１で処理された後セレクタ７０２を経由してサブブロック２０２に入力される。一方、バイパスモードで動作するサブブロック２０１では、入力制御部１０４ａから入力されるデータはそのままセレクタ７０２を経由してサブブロック２０２に入力される。
【００５０】
＜遅延故障の発生したＡＳＩＣの動作＞
図８は、サブブロック２０１に遅延故障が発生した場合におけるＡＳＩＣ１００の動作フローチャートである。以下のフローはＡＳＩＣ１００への電源投入をトリガに開始される。なお、メモリ１１０にはあらかじめサブブロック２０１と等価な論理ブロック構成データが記憶されているとする。なお、サブブロック２０２には遅延故障が発生せず、サブブロック２０１はバイパスモードでは正常動作可能であるとする。
【００５１】
ステップＳ８０１では、ＣＰＵ１２０は、論理ブロック１０１、１０２に対しクロック１５１が入力されるようセレクタ１２１、１２２を制御する。その後、ＡＳＩＣ１００はデータ処理動作を開始する。この際、ＣＰＵ１２０は、メモリ１１０内に、論理ブロック１０１、１０２の入出力データに対するバッファ領域をそれぞれ確保する。そして、それぞれのバッファ領域のスタートアドレスを入力制御部１０４ａ、出力制御部１０５ａ、および、入力制御部１０４ｂ、出力制御部１０５ｂに設定する。
【００５２】
ステップＳ８０２では、ＣＰＵ１２０は、状態記憶部を読み取ることにより各論理ブロックおよびそのサブブロックにおける遅延故障の有無の検出を開始する。遅延故障の発生を検出したらステップＳ８０３に進む。遅延故障が無ければ、再び監視状態に戻る。なお、一定時間遅延故障が発生しない場合は、そのＡＳＩＣ１００には遅延故障が発生しないと見なし、フローを終了するよう構成してもよい。
【００５３】
ステップＳ８０３では、ＣＰＵ１２０は、サブブロック２０１がバイパスモードで動作するように動作モード選択レジスタ７０３を設定変更する。
【００５４】
ステップＳ８０４では、ＣＰＵ１２０は、メモリ１１０から遅延故障が発生したサブブロック２０１と等価な論理ブロック構成データを読み込み、コンフィギュレーションバス２５を用いてＲＣブロック１０３内に論理ブロックを構成する。もちろん、データ処理機能として等価である演算回路７０１と等価な論理ブロック構成データを用いてもよい。
【００５５】
図９は、ＲＣブロック内に構成される論理ブロックの構成例である。
【００５６】
９０１ａおよび９０１ｂはそれぞれサブブロック２０１と等価な処理を行う論理ブロックである。また、入力制御部９１０および出力制御部９２０は９０１ａおよび９０１ｂへのデータ入出力を制御する回路である。なお、ブロック９０１ａ、９０１ｂに対してはクロック１５２が入力され、入力制御部９１０および出力制御部９２０のデータバス１３０側にはクロック１５１が入力されるよう構成される。
【００５７】
ステップＳ８０５では、ＣＰＵ１２０は、新たにメモリ１１０内に、ＲＣブロック１０３の入出力データに対応するバッファ領域を確保し、そのスタートアドレスをＲＣブロック１０３の入力制御部５１０、出力制御部５２０に設定する。また、論理ブロック１０１にＲＣブロック１０３の出力データが入力されるように、ＣＰＵ１２０はスタートアドレスを論理ブロック１０１の入力制御部１０４ａ、出力制御部１０５ａに設定変更する。
【００５８】
ステップＳ８０６では、ＣＰＵ１２０は、ＲＣブロック１０３に対しクロック１５１および１５２が入力されるよう制御を行い、ＡＳＩＣ１００はデータ処理動作を再開する。
【００５９】
＜ＲＣブロック構成後のＡＳＩＣにおけるデータの処理フロー＞
図１０は、ＲＣブロック構成後のＡＳＩＣによるデータの処理フローを示す図である。図１０（ａ）は、ＡＳＩＣ１００内の各論理ブロックにおける処理の流れを示す図であり、図１０（ｂ）は、ＡＳＩＣ１００内の各論理ブロックのタイミングチャートである。
【００６０】
ＡＳＩＣ１００の外部から入力されたデータは、まずＲＣブロック１０３で処理可能な形式となるようＣＰＵ１２０により前処理がなされる。処理されたデータはメモリ上のバッファ領域に一時記憶される。なお、ＲＣブロック１０３に入力されるデータは論理的には論理ブロック１０１に入力されるデータと等価であるため、ＣＰＵ１２０による処理は遅延故障の発生していない場合と同様である。
【００６１】
メモリ上１１０のバッファ領域に一時記憶されたデータは、入力制御部９１０を経由してブロック９０１ａおよびブロック９０１ｂに入力され、クロック１５２で動作するブロック９０１ａおよびブロック９０１ｂにより並列に処理がなされる。ブロック９０１ａおよびブロック９０１ｂにより処理されたデータは出力制御部９２０を経由してメモリ上のバッファ領域に一時記憶される。入力制御部９１０および出力制御部９２０は、ブロック９０１ａおよびブロック９０１ｂによる並列処理を行うための制御を行っている。
【００６２】
メモリ上１１０のバッファ領域に一時記憶されたデータは、入力制御部１０４ａを経由して論理ブロック１０１に入力され、論理ブロック１０１による処理がなされる。なお、この時、サブブロック２０１はバイパスモードで動作しているため、論理的にはサブブロック２０２の処理のみが実行される。処理されたデータは出力制御部１０５ａを経由してメモリ上のバッファ領域に一時記憶される。
【００６３】
メモリ上１１０のバッファ領域に一時記憶されたデータは、入力制御部１０４ｂを経由して論理ブロック１０２に入力され、論理ブロック１０２による処理がなされる。処理されたデータは出力制御部１０５ｂを経由してＡＳＩＣ１００の外部に出力される。
【００６４】
遅延故障が発生していない場合（図３（ｂ））と同様、バッファ動作を除くと、１つのデータに対して必要となるクロック数は実質８クロックであることが分かる。つまり、クロック１５１の半分のクロック１５２で動作する論理ブロックを並列に２個動作させることにより、同等の性能を実現しているのである。  以上、説明したように、ＡＳＩＣ１００内のサブブロック２０１に遅延故障が発生した場合においても、ＡＳＩＣ全体としての処理能力は保持されることが分かる。また、ＲＣブロック１０３には、サブブロック２０１あるいは演算回路７０１を単位として論理回路が構成されるため、第１実施形態に比較し、より少ないＲＣブロック領域で実現可能である。
【００６５】
なお、バイパス機能を実現する回路は、全てのサブブロック対し配置するように構成してもよいが、その場合、回路規模が大きくなってしまう。そのため、事前のタイミング解析などにより遅延故障発生しやすいサブブロックを特定しておき、そのブロックにのみバイパス回路を配置することが好適である。
【００６６】
（第３実施形態）
＜概要＞
第３実施形態では、第１のクロックにおいて論理ブロックに遅延故障が発生する場合において、遅延故障が発生している回路を第１のクロックより遅い第２のクロックで動作させる。さらに、動作クロック低下による処理不足を補うための論理ブロックをＲＣブロック上に構成する。そうすることにより、故障修正に必要となる書き換え可能回路の回路規模を抑制することができる。なお、ＡＳＩＣ回路構成については第１実施形態と同様であるため詳細な説明は省略する。
【００６７】
＜遅延故障の発生したＡＳＩＣの動作＞
図１１は、サブブロック２０１に遅延故障が発生した場合におけるＡＳＩＣ１００の動作フローチャートである。以下のフローはＡＳＩＣ１００への電源投入をトリガに開始される。なお、メモリ１１０にはあらかじめ論理ブロック１０１と等価な論理ブロック構成データが記憶されているとする。なお、論理ブロック１０１はクロック１５１では遅延故障が発生するが、クロック１５２では正常に動作するものとする。
【００６８】
ステップＳ１１０１では、ＣＰＵ１２０は、論理ブロック１０１、１０２に対しクロック１５１が入力されるようセレクタ１２１、１２２を制御し、ＡＳＩＣ１００はデータ処理動作を開始する。この際、ＣＰＵ１２０は、メモリ１１０内に、論理ブロック１０１、１０２の入出力データに対するバッファ領域をそれぞれ確保する。そして、それぞれのバッファ領域のスタートアドレスを入力制御部１０４ａ、出力制御部１０５ａ、および、入力制御部１０４ｂ、出力制御部１０５ｂに設定する。
【００６９】
ステップＳ１１０２では、ＣＰＵ１２０は、状態記憶部を読み取ることにより各論理ブロックおよびそのサブブロックにおける遅延故障の有無の検出を開始する。遅延故障の発生を検出したらステップＳ１１０３に進む。遅延故障が無ければ、再び監視状態に戻る。なお、一定時間遅延故障が発生しない場合は、そのＡＳＩＣ１００には遅延故障が発生しないと見なし、フローを終了するよう構成してもよい。
【００７０】
ステップＳ１１０３では、ＣＰＵ１２０は、論理ブロック１０１にクロック１５２が入力されるようにセレクタ１２１を制御する。
【００７１】
ステップＳ１１０４では、ＣＰＵ１２０は、メモリ１１０から遅延故障が発生した論理ブロック１０１と等価な論理ブロック構成データを読み込み、コンフィギュレーションバス２５を用いてＲＣブロック１０３内に論理ブロックを構成する。この時、クロック低下により不足した処理能力を補完できるように１以上の論理が並列に構成される。ここでは、論理ブロック１０１、入力制御部１０４ａおよび出力制御部１０５ａに対応する回路をそれぞれ１つずつＲＣブロック１０３内に構成するとする（不図示）。
【００７２】
ステップＳ１１０５では、ＣＰＵ１２０は、新たにメモリ１１０内に、ＲＣブロック１０３の入出力データに対応するバッファ領域を確保し、そのスタートアドレスをＲＣブロック１０３内に構成された入力制御部、出力制御部に設定する。もちろん既存の論理ブロック１０１に割り当てられたバッファを共用するようにしても良い。
【００７３】
ステップＳ１１０６では、ＣＰＵ１２０は、ＲＣブロック１０３に対し１５２が入力されるよう制御を行い、ＡＳＩＣ１００はデータ処理動作を再開する。
【００７４】
＜ＲＣブロック構成後のＡＳＩＣにおけるデータの処理フロー＞
図１２は、ＲＣブロック構成後のＡＳＩＣによるデータの処理フローを示す図である。図１２（ａ）は、ＡＳＩＣ１００内の各論理ブロックにおける処理の流れを示す図であり、図１２（ｂ）は、ＡＳＩＣ１００内の各論理ブロックのタイミングチャートである。
【００７５】
ＡＳＩＣ１００の外部から入力されたデータは、まず論理ブロック１０１およびＲＣブロック１０３で処理可能な形式となるようＣＰＵ１２０により前処理がなされる。処理されたデータはメモリ上のバッファ領域に一時記憶される。なお、ＲＣブロック１０３に入力されるデータは論理的には論理ブロック１０１に入力されるデータと等価であるため、ＣＰＵ１２０による処理は遅延故障の発生していない場合と同様である。ただし、ＣＰＵ１２０はさらに論理ブロック１０１およびＲＣブロック１０３に対するデータの振り分け管理を行う必要がある。
【００７６】
メモリ上１１０のバッファ領域に一時記憶されたデータは、論理ブロック１０１およびＲＣブロック１０３のそれぞれに入力され、並列に処理が行われ、メモリ上のバッファ領域に一時記憶される。
【００７７】
メモリ上１１０のバッファ領域に一時記憶されたデータは、入力制御部１０４ｂを経由して論理ブロック１０２に入力され、論理ブロック１０２による処理がなされる。処理されたデータは出力制御部１０５ｂを経由してＡＳＩＣ１００の外部に出力される。
【００７８】
以上、説明したように、ＡＳＩＣ１００内のサブブロック２０１に遅延故障が発生した場合においても、ＡＳＩＣ全体としての処理能力は保持されることが分かる。また、ＲＣブロック１０３には、論理ブロック１０１による処理低下を補完するための論理回路が構成されるため、第１実施形態に比較し並列配置する個数を低減できるため、より少ないＲＣブロック領域で実現可能である。
【図面の簡単な説明】
【００７９】
【図１】第１実施形態に係るＡＳＩＣ内部の回路構成の一例を示す図である。
【図２】論理ブロック１０１の内部構成を示す図である。
【図３】遅延故障が発生していないＡＳＩＣにおけるデータの処理フローを示す図である。
【図４】第１実施形態に係るＡＳＩＣの動作フローを示す図である。
【図５】第１実施形態に係るＡＳＩＣのＲＣブロック１０３に構成される論理ブロックを示す図である。
【図６】第１実施形態に係るＡＳＩＣのＲＣブロック１０３構成後のデータの処理フローを示す図である。
【図７】第２実施形態に係る論理ブロック１０１の内部構成詳細を示す図である。
【図８】第２実施形態に係るＡＳＩＣの動作フローを示す図である。
【図９】第２実施形態に係るＡＳＩＣのＲＣブロック１０３に構成される論理ブロックを示す図である。
【図１０】第２実施形態に係るＡＳＩＣのＲＣブロック１０３構成後のデータの処理フローを示す図である。
【図１１】第３実施形態に係るＡＳＩＣの動作フローを示す図である。
【図１２】第３実施形態に係るＡＳＩＣのＲＣブロック１０３構成後のデータの処理フローを示す図である。
【図１】
2007078638.tif 000003
【図２】
2007078638.tif 000004
【図３】
2007078638.tif 000005
【図４】
2007078638.tif 000006
【図５】
2007078638.tif 000007
【図６】
2007078638.tif 000008
【図７】
2007078638.tif 000009
【図８】
2007078638.tif 000010
【図９】
2007078638.tif 000011
【図１０】
2007078638.tif 000012
【図１１】
2007078638.tif 000013
【図１２】
2007078638.tif 000014