(57)【要約】【課題】  ソフトウェアで検知できない潜在的に存在している不具合を実際に使用される現場で回避することは困難である。【解決手段】  ＣＰＵ１１３を含む複数の回路ブロック、及び少なくとも１つのリコンフィギュラブル回路１０２を具備する情報処理装置であって、リコンフィギュアラブル回路１０２に、複数の回路ブロック１０３〜１０５のそれぞれの動作状況を示す信号を入力し、これら動作状況を示す信号を基に回路ブロックのいずれかにおける不具合の発生を検知すると、リコンフィギュアラブル回路１０２からＣＰＵ１１３に割り込みを発生し、ＣＰＵ１１３は、その割り込みに応じて不具合を発生した回路ブロックを初期化する。【選択図】  図１
2006309349.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵを含む複数の回路ブロック、及び少なくとも１つのリコンフィギュラブル回路を具備する情報処理装置であって、
前記リコンフィギュアラブル回路は、
前記複数の回路ブロックのそれぞれの動作状況を示す信号を入力する入力手段と、
前記入力手段により入力される前記動作状況を示す信号を基に前記回路ブロックのいずれかにおける不具合の発生を検知する不具合検知手段と、
前記不具合検知手段により前記不具合の発生が検知されると前記ＣＰＵに割り込みを発生する割り込み信号発生手段とを有し、
前記ＣＰＵは、前記割り込み信号発生手段により発生された割り込みに応じて前記不具合を発生した回路ブロックを初期化することを特徴とする情報処理装置。
【請求項２】
ＣＰＵを含む複数の回路ブロック、及び少なくとも１つのリコンフィギュラブル回路を具備する情報処理装置であって、
前記リコンフィギュアラブル回路は、
前記複数の回路ブロックのそれぞれの動作状況を示す信号を入力する入力手段と、
前記入力手段により入力される前記動作状況を示す信号を基に前記回路ブロックのいずれかにおける不具合の発生を検知する不具合検知手段と、
前記不具合検知手段により前記不具合の発生が検知されると前記回路をリセットするリセット手段とを有し、
前記リセット手段により発生されたリセット信号に応じて、前記リコンフィギュアラブル回路の動作プログラムを更新する更新手段と、
を有することを特徴とする情報処理装置。
【請求項３】
前記リコンフィギュアラブル回路の前記動作プログラムを不揮発で書換え可能に記憶するメモリを更に有することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
ＣＰＵを含む複数の回路ブロック、及び少なくとも１つのリコンフィギュラブル回路を具備する情報処理装置における制御方法であって、
前記複数の回路ブロックのそれぞれの動作状況を示す信号を入力する入力工程と、
前記入力工程で入力される前記動作状況を示す信号を基に前記回路ブロックのいずれかにおける不具合の発生を検知する不具合検知工程と、
前記不具合検知工程で前記不具合の発生が検知されると前記ＣＰＵに割り込みを発生する割り込み信号発生工程と、
前記割り込み信号発生工程により発生された割り込みに応じて前記不具合を発生した回路ブロックを初期化する工程と、
を有することを特徴とする情報処理装置における制御方法。
【請求項５】
ＣＰＵを含む複数の回路ブロック、及び少なくとも１つのリコンフィギュラブル回路を具備する情報処理装置における制御方法であって、
前記複数の回路ブロックのそれぞれの動作状況を示す信号を入力する入力工程と、
前記入力工程で入力される前記動作状況を示す信号を基に前記回路ブロックのいずれかにおける不具合の発生を検知する不具合検知工程と、
前記不具合検知工程で前記不具合の発生が検知されると前記回路をリセットするリセット工程と、
前記リセット工程で発生されたリセット信号に応じて、前記リコンフィギュアラブル回路の動作プログラムを更新する更新工程と、
を有することを特徴とする情報処理装置における制御方法。
【請求項６】
前記リコンフィギュアラブル回路の前記動作プログラムを不揮発で書換え可能に記憶するメモリを更に有することを特徴とする請求項５に記載の情報処理装置における制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リコンフィギュアラブル回路を含む回路ブロックを有する情報処理装置及びその制御方法に関する。
【背景技術】
【０００２】
集積回路を含む論理回路を備えるシステムの規模は年毎に増加している。それに伴い、このようなシステムの複雑度は指数関数的に増大し、そのシステムが要求された仕様を満たすかどうかを検証する困難度も増加している。一方市場では、信頼性の高い商品が求められており、不具合が生じた場合は莫大な回収費等が発生する。更には、このような不具合は、そのメーカとしてのブランド力の低下や競争力の低下を招き、ひいては事業存続の危機を招くことにもなりかねない。そのため、このような論理回路を含むシステムの信頼性を検証する必要が生じている。
【０００３】
一般的な論理回路として、ＣＰＵ、このＣＰＵにより実行されるプログラムなどを記憶するメモリ、メインメモリと外部デバイスとの間でのＤＭＡ（ダイレクトメモリアクセス）によるデータ転送を制御する複数の内部ブロック、これら複数の内部ブロックの動作を調停する調停回路等を含む回路が挙げられる（例えば、特許文献１）。このような回路において、ある内部ブロックの制御の下に、メインメモリと外部デバイスとの間でＤＭＡによりデータ転送が実行され、そのＤＭＡデータ転送が終了すると、その内部ブロックは割り込み信号を発行してＣＰＵにＤＭＡによるデータ転送の終了を通知することが行われる。このＤＭＡデータ転送終了の割込みを入力したＣＰＵは、割り込みハンドラー等の制御により、その内部ブロックの割り込みレジスタを読み出してＤＭＡデータ転送終了の割り込みフラグを確認し、確認できると割り込みフラグを解除する。これにより、各ブロックから発行された割り込み信号も解除される。
【０００４】
このような論理回路において、初期状態で、複数の内部ブロックからのＤＭＡ要求信号が同時に発行された場合、これら要求信号に対する許可信号が発生されず、許可信号の発行を待ち続けるといった不具合（デッドロック）に陥る。このようなデッドロックの状態が発生すると、それをソフトウェアにより検知する手段がないため、そのソフトウェアを実行しているＣＰＵは割り込みを待ち続ける状態となる。
【０００５】
このような状態を回避する従来手法として、
（ａ）タイムアウト割り込みによる処理で、これら内部ブロックを初期化する。
（ｂ）複数の内部ブロックの同時起動を禁止する。
（ｃ）ＦＰＧＡ（フィールド・プログラマブル・ゲートアレイ）に代表される再構成可能な半導体を回路に採用し、この回路全体を実際の使用現場で修正する。
（ｄ）このような不具合を有する回路を使用した製品を回収する。
などが考えられる。
【特許文献１】特開２００１−１６６９５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように従来の論理回路では、ソフトウェアで検知できない潜在的に存在している不具合を実際に使用される現場で回避することは困難である。上述の回避方法においては、（ａ）は、タイムアウトによる予測に過ぎない状態への対応であり、別要因によるタイムアウトとの明確な切り分けはできない。また（ｂ）の手法は、複数の内部ブロックの同時起動が必須の機能である場合はこの方法は採用できない。また例えこの方法（ｂ）を採ったとしても、同時起動を禁止することにより機能が低下し競合製品に対する競争力が低下する。また（ｃ）の手法は、高集積、高速、低価格、低消費電力が求められる競争力ある製品に採用することは困難である。また論理回路の再構成に伴う信号の遅延条件の変更による新たな不具合も懸念される。更に（ｄ）の手法は莫大な回収費等を伴い、更にブランド力の低下を招き、競合他社に対する競争力の低下により事業存続の危機を招く。
【０００７】
本発明は、上記従来技術の欠点を解決することにある。
【０００８】
また本願発明の特徴は、ソフトウェアでは検知不可能な不具合を検知し、それに伴って回路が動作不能になるのを回避する手法を提供することにある。
【課題を解決するための手段】
【０００９】
上記特徴は、独立クレームに記載の特徴の組み合わせにより達成され、従属項は発明の単なる有利な具体例を規定するものである。
【００１０】
本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
ＣＰＵを含む複数の回路ブロック、及び少なくとも１つのリコンフィギュラブル回路を具備する情報処理装置であって、
前記リコンフィギュアラブル回路は、
前記複数の回路ブロックのそれぞれの動作状況を示す信号を入力する入力手段と、
前記入力手段により入力される前記動作状況を示す信号を基に前記回路ブロックのいずれかにおける不具合の発生を検知する不具合検知手段と、
前記不具合検知手段により前記不具合の発生が検知されると前記ＣＰＵに割り込みを発生する割り込み信号発生手段とを有し、
前記ＣＰＵは、前記割り込み信号発生手段により発生された割り込みに応じて前記不具合を発生した回路ブロックを初期化することを特徴とする。
【００１１】
本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
ＣＰＵを含む複数の回路ブロック、及び少なくとも１つのリコンフィギュラブル回路を具備する情報処理装置であって、
前記リコンフィギュアラブル回路は、
前記複数の回路ブロックのそれぞれの動作状況を示す信号を入力する入力手段と、
前記入力手段により入力される前記動作状況を示す信号を基に前記回路ブロックのいずれかにおける不具合の発生を検知する不具合検知手段と、
前記不具合検知手段により前記不具合の発生が検知されると前記回路をリセットするリセット手段とを有し、
前記リセット手段により発生されたリセット信号に応じて、前記リコンフィギュアラブル回路の動作プログラムを更新する更新手段とを有することを特徴とする。
【００１２】
本発明の一態様に係る情報処理装置における制御方法は以下のような工程を備える。即ち、
ＣＰＵを含む複数の回路ブロック、及び少なくとも１つのリコンフィギュラブル回路を具備する情報処理装置における制御方法であって、
前記複数の回路ブロックのそれぞれの動作状況を示す信号を入力する入力工程と、
前記入力工程で入力される前記動作状況を示す信号を基に前記回路ブロックのいずれかにおける不具合の発生を検知する不具合検知工程と、
前記不具合検知工程で前記不具合の発生が検知されると前記ＣＰＵに割り込みを発生する割り込み信号発生工程と、
前記割り込み信号発生工程により発生された割り込みに応じて前記不具合を発生した回路ブロックを初期化する工程とを有することを特徴とする。
【００１３】
本発明の一態様に係る情報処理装置における制御方法は以下のような工程を備える。即ち、
ＣＰＵを含む複数の回路ブロック、及び少なくとも１つのリコンフィギュラブル回路を具備する情報処理装置における制御方法であって、
前記複数の回路ブロックのそれぞれの動作状況を示す信号を入力する入力工程と、
前記入力工程で入力される前記動作状況を示す信号を基に前記回路ブロックのいずれかにおける不具合の発生を検知する不具合検知工程と、
前記不具合検知工程で前記不具合の発生が検知されると前記回路をリセットするリセット工程と、
前記リセット工程で発生されたリセット信号に応じて、前記リコンフィギュアラブル回路の動作プログラムを更新する更新工程とを有することを特徴とする。
【００１４】
尚、この発明の概要は、必要な特徴を全て列挙しているものでなく、よって、これら特徴群のサブコンビネーションも発明になり得る。
【発明の効果】
【００１５】
本発明によれば、従来の回路では、その回路の設計時には想定できず、ソフトウェアでは検知不可能であった不具合を、その回路の実際の使用現場にて検知し、それに伴う不具合の発生を回避できる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１７】
［実施の形態１］
図１は、本発明の実施の形態１に係る集積回路１０１の回路構成を示すブロック図である。
【００１８】
この集積回路１０１は、中央制御装置であるＣＰＵ１１３を有している。フラッシュメモリ１１４は、書き換え可能なソフトウェア及びリコンフィギュアラブル回路１０２の構成プログラムを格納している。割り込み信号１１１は、リコンフィギュアラブル回路１０２から出力される割り込み信号である。メモリコントローラ１１５は、フラッシュメモリ１１４からのデータの読出し、及びフラッシュメモリ１１４へのデータの書込みを制御する。メモリコントローラ１１７は、メインメモリ１１６へのデータの書込み、及びメインメモリ１１６からのデータの読出しを制御する。内部ブロックＡ１０３は、外部デバイス１１０とメインメモリ１１６との間でＤＭＡ（ダイレクトメモリアクセス）によるデータ転送を制御する。また内部ブロックＢ１０４は、内部ブロックＡ１０３と同様に、メインメモリ１１６と外部デバイス１１０との間でＤＭＡによるデータ転送を制御する。ブロックＣ１０５（アービタ）は、内部ブロックＡ１０３と内部ブロックＢ１０４の調停回路である。要求信号１０６は、内部ブロックＡ１０３から調停回路１０５への要求信号、要求信号１０７は内部ブロックＢ１０４から調停回路１０５への要求信号である。また許可信号１０８は、調停回路１０５から内部ブロックＡ１０３への許可信号、許可信号１０９は、調停回路１０５から内部ブロックＢ１０４への許可信号である。割り込み制御回路１１２は、リコンフィギュアラブル回路１０２、内部ブロックＡ１０３及び内部ブロックＢ１０４からの割り込み信号を入力し、予め指定された優先順位に従ってＣＰＵ１１３に割り込みをかける。リセットコントローラ１１９は、内部ブロックＡ１０３，Ｂ１０４をリセットする。システムバス１１８は、ＣＰＵ１１３と内部ブロックＡ１０３，Ｂ１０４や各コントローラなどを論理的に接続するシステムバスである。
【００１９】
この集積回路１０１において、リセット状態から解除されると、ＣＰＵ１１３はフラッシュメモリ１１４に格納されたリセットベクタアドレスの命令を読み出し、その読み出した命令を実行する。そして、それ以降、ＣＰＵ１１３内のプログラムカウンタに従って順次命令の実行を繰り返す。
【００２０】
図２は、本実施の形態に係る集積回路１０１のフラッシュメモリ１１４に記憶されているプログラムに従って、ＣＰＵ１１３が内部ブロックＡ１０３及び内部ブロックＢ１０４によるＤＭＡデータ転送を起動する場合の動作例を示すフローチャートである。
【００２１】
まずステップＳ２０１で、ＤＭＡデータ転送の開始アドレスを、対応する内部ブロックのレジスタに設定し、次にステップＳ２０２で、ＤＭＡデータの転送データ長を、その対応する内部ブロックのレジスタに設定する。次にステップＳ２０３で、データの転送方向及びＤＭＡの起動を、その対応する内部ブロックのレジスタを設定することで、その内部ブロックの制御の下で、主記憶メモリ１１６と外部デバイス１１０の間でＤＭＡでのデータ転送が開始される。そして、このＤＭＡデータ転送が終了すると、内部ブロックＡ１０３又は内部ブロックＢ１０４は、割り込み信号を発行してＣＰＵ１１３にＤＭＡデータ転送の終了を通知する。これによりステップＳ２０４で、ＣＰＵ１１３は割り込み制御回路１１２からの割込み信号に基づいてＤＭＡデータ転送の終了を検知し、割り込みハンドラー等の制御によりステップＳ２０５で、その内部ブロックの割り込みレジスタを読み出してＤＭＡデータ転送終了の割り込みフラグを確認する。こうして確認するとステップＳ２０６で、割り込みフラグを解除する。これにより、各ブロックから発行された割り込み信号も解除される。尚、ＤＭＡデータ転送におけるデータ長が設定されたレジスタの値は、データ転送ごとに、その内部ブロックで減算される。よって、このレジスタの値を読み出すことにより残りのデータの転送量を知ることができる。
【００２２】
図３は、本実施の形態に係る集積回路１０１の内部ブロックＡ１０３と内部ブロックＢ１０４の調停回路１０５の状態遷移例を示す図である。
【００２３】
図において、３００は開始状態を示し、この状態ではＣＰＵ１１３、内部ブロックＡ１０３，Ｂ１０４、リコンフィギュアラブル回路１０２などがリセットされた状態にある。このリセット状態が解除されるとＣＰＵ１１３は動作可能な状態となり初期状態３０１に移行する。この初期状態３０１で、内部ブロックＡ１０３が内部ブロックＣ（アービタ）１０５に対して要求信号（req_A）１０６を発行し、内部ブロックＡ１０３がアービタ１０５からの許可信号（gnt_A）１０８を受け取ると状態３０２に遷移し、内部ブロックＡ１０３によるＤＭＡ転送が開始される。この状態３０２では、要求信号（req_A）１０６が「１」で許可信号（gnt_A）１０８も「１」である（但し、許可信号（gnt_B）１０９は「０」である）。こうして内部ブロックＡ１０３によるＤＭＡ転送が終了すると要求信号（req_A）１０６が「０」になり、元の初期状態３０１に戻る。
【００２４】
また、この初期状態３０１から、内部ブロックＡ１０３が内部ブロックＣ（アービタ）１０５に対して要求信号（req_A）１０６を発行していない条件で、内部ブロックＢ１０４が内部ブロックＣ（アービタ）１０５に対して要求信号（req_B）１０７を発行し、内部ブロックＢ１０４がアービタ１０５からの許可信号（gnt_B）１０９を受け取ると状態３０３に移行して、内部ブロックＢ１０４によるＤＭＡ転送が開始される。この状態３０３では、要求信号（req_B）１０７が「１」で許可信号（gnt_B）１０９も「１」である（但し、許可信号（gnt_A）１０８は「０」である）。こうして内部ブロックＢ１０４によるＤＭＡでのデータ転送が終了すると要求信号（req_B）１０７が「０」になり、元の初期状態３０１に戻る。
【００２５】
このようにこの図３では、内部ブロックＡ１０３によるＤＭＡデータ転送の優先度を、内部ブロックＢ１０４によるＤＭＡデータ転送の優先度よりも高くしている。これにより内部ブロックＡ１０３と内部ブロックＢ１０４から同時にＤＭＡデータ転送要求が発行されると、内部ブロックＡ１０３による制御を優先させることにより対処している。
【００２６】
図４は、本実施の形態に係る集積回路１０１の内部ブロックＡ１０３と内部ブロックＢ１０４の調停回路１０５の状態遷移例を示す図で、ここでは内部ブロックＡ１０３と内部ブロックＢ１０４とは同じ優先度である。
【００２７】
図において、４００は開始状態を示し、この状態４００ではＣＰＵ１１３、内部ブロックＡ１０３，Ｂ１０４、リコンフィギュアラブル回路１０２などがリセットされた状態にある。このリセット状態が解除されるとＣＰＵ１１３は動作可能な状態となり初期状態４０１に移行する。この初期状態４０１から、内部ブロックＢ１０４が内部ブロックＣ（アービタ）１０５に対して要求信号（req_B）１０７を発行していない条件の下で、内部ブロックＡ１０３が内部ブロックＣ（アービタ）１０５に対して要求信号（req_A）１０６を発行し、内部ブロックＡ１０３がアービタ１０５からの許可信号（gnt_A）１０８を受け取ると、内部ブロックＡ１０３によるＤＭＡ転送が開始される（４０２）。この状態４０２では、要求信号（req_A）１０６が「１」で許可信号（gnt_A）１０８も「１」である（但し、許可信号（gnt_B）１０９は「０」である）。こうして内部ブロックＡ１０３によるＤＭＡ転送が終了すると要求信号（req_A）１０６が「０」になり、元の初期状態４０１に戻る。
【００２８】
また初期状態４０１から、内部ブロックＡ１０３が内部ブロックＣ（アービタ）１０５に対して要求信号（req_A）１０６を発行していない条件で、内部ブロックＢ１０４が内部ブロックＣ（アービタ）１０５に対して要求信号（req_B）１０７を発行し、内部ブロックＢ１０４がアービタ１０５からの許可信号（gnt_B）１０９を受け取ると、内部ブロックＢ１０４によるＤＭＡ転送が開始される（４０３）。この状態４０３では、要求信号（req_B）１０７が「１」で許可信号（gnt_B）１０９も「１」である（但し、許可信号（gnt_A）１０８は「０」である）。こうして内部ブロックＢ１０４によるＤＭＡ転送が終了すると要求信号（req_B）１０７が「０」になり、元の初期状態４０１に戻る。
【００２９】
この図４の例では、内部ブロックＡ１０３と内部ブロックＢ１０４から同時にＤＭＡデータ転送要求が発行されると、いずれの内部ブロックによる制御も開始されないようにして上記不具合に対処できるようにしている。
【００３０】
図５は、本実施の形態に係る集積回路１０１の調停回路１０５の状態遷移例を示す図で、ここでは調停回路１０５が不具合を検知する状態遷移を示す図である。
【００３１】
図において、５００は開始状態を示し、この状態５００ではＣＰＵ１１３、内部ブロックＡ１０３，Ｂ１０４、リコンフィギュアラブル回路１０２などがリセットされた状態にある。このリセット状態が解除されるとＣＰＵ１１３は動作可能な状態となり初期状態５０１（reset_reconf=0）に移行する。この初期状態５０１から、内部ブロックＢ１０４が内部ブロックＣ（アービタ）１０５に対して要求信号（req_B）１０７を発行していない条件の下で、内部ブロックＡ１０３が内部ブロックＣ（アービタ）１０５に対して要求信号（req_A）１０６を発行するか、或は内部ブロックＡ１０３が内部ブロックＣ（アービタ）１０５に対して要求信号（req_A）１０６を発行していない条件の下で、内部ブロックＢ１０４が内部ブロックＣ（アービタ）１０５に対して要求信号（req_B）１０７を発行すると状態５０２に遷移する。この状態５０２では、要求信号（req_A）１０６が「１」或は要求信号（req_B）１０７が「１」で、それぞれ対応する許可信号（gnt_A）１０８が「１」、許可信号（gnt_B）１０９が「１」である。こうして内部ブロックＡ１０３，Ｂ１０４によるＤＭＡ転送が終了すると要求信号（req_A）１０６、或は要求信号（req_B）１０７が「０」になり、元の初期状態５０１に戻る。
【００３２】
この場合、初期状態５０１で、内部ブロックＡ１０３，Ｂ１０４からの要求信号（req_A）１０６と（req_B）１０７が同時に発行されると不具合検知状態５０３に移行する。この不具合検知状態５０３では、内部ブロックＣ（アービタ）１０５から許可信号（gnt_A）１０８と（gnt_B）１０９が共に発行されない。これにより内部ブロックＡ１０３，Ｂ１０４は共に内部ブロックＣ（アービタ）１０５からの許可信号の待ち状態に入り、次の処理に進めないといった不具合（デッドロック）に陥る。
【００３３】
本実施の形態１では、この状態５０３をリコンフィギュアラブル回路１０２で検知し、割り込み信号（int_reconf）１１１を発行する。これにより、割り込み制御回路１１２を介してＣＰＵ１１３に割り込み信号が入力され、ＣＰＵ１１３の割り込み処理が起動される。後述する図８は、この割り込み信号１１１により起動されるＣＰＵ１１３による割り込み処理を説明するフローチャートで、この処理の後、割り込み状態フラグ（int_stat_conf）をリセットすることにより、この割り込み信号１１１が解除される。
【００３４】
図６は、本実施の形態に係るリコンフィギュアラブル回路１０２を構成するアルゴリズムの例を示す図である。
【００３５】
リコンフィギュアラブル回路１０２は、プログラムで書き換え可能な回路である。変更可能な回路の例としてＦＰＧＡがある。また近年、極めて短時間で内部構成を書き換え可能なリコンフィギュアラブル回路が発表されている（特開平８−３３０９４５号公報に記載された「プログラム可能ゲート・アレイの動的再構成システム」）。
【００３６】
本実施の形態１によれば、リコンフィギュアラブル回路１０２の構成に依存しないので、どの再構成可能な回路を用いてもよい。例えば前記公報記載のリコンフィギュアラブル回路でも構成することも可能である。また今後、より高性能なリコンフィギュアラブル回路が発表されたならば、それを使用することも可能である。
【００３７】
本実施の形態１では、リコンフィギュアラブル回路１０２の内部状態を構成するに必要なプログラムが書き換え可能なフラッシュメモリ１１４に格納されており、その情報を読み出すことでリコンフィギュアラブル回路１０２を構成する例を示す。
【００３８】
まずステップＳ６０１で、集積回路１０１がリセット状態から解除されるとステップＳ６０２に進み、リコンフィギュアラブル回路１０２は、リコンフィギュアラブル回路の内部状態を構成するのに必要なプログラムが格納されたフラッシュメモリ１１４の所定のアドレスからその情報を読み出す。次にステップＳ６０３で、リコンフィギュアラブル回路１０２の回路の再構成処理を実行し、ステップＳ６０４で、再構成が完了したか否かを判定し、完了でなければステップＳ６０２に戻って前述の処理を実行するが、完了すると、この処理を終了する。
【００３９】
図７は、本実施の形態に係る書き換え可能なフラッシュメモリ１１４のメモリマップを説明する図である。
【００４０】
７０１は、フラッシュメモリ１１４のアドレス空間に割り当てられた格納領域を示す。７０２はソフトウェアのリセットベクタアドレス、７０３はソフトウェアのプログラムが格納されたメモリ領域を示す。７０４はリコンフィギュアラブル回路１０２がリセット解除後に読み出しを開始する開始アドレスである。７０５は、リコンフィギュアラブル回路１０２を再構成するプログラムが格納されたメモリ領域を示している。７０６は不具合発生時の割り込みベクタアドレスである。７０７は、図５に示すデッドロック不具合の状態５０３に対処するソフトウェアのワークアラウンド回避プログラムが格納されているメモリ領域である。
【００４１】
図８は、デッドロック不具合に対処するソフトウェアによるワークアラウンド回避プログラムのアルゴリズムを説明するフローチャートで、この処理はＣＰＵ１１３が割り込み信号１１１を受付けることにより開始される。
【００４２】
まずステップＳ８０１で、内部ブロックＡ１０３及び内部ブロックＢ１０４のＤＭＡデータ転送のデータ長が設定されているレジスタの内容を読み出す。次にステップＳ８０２で、リセットコントローラ１１９を制御して内部ブロックＡ１０３及び内部ブロックＢ１０４をリセット及び解除し初期化を行う。次にステップＳ８０３で、内部ブロックＡ１０３及び内部ブロックＢ１０４を介した転送先の外部デバイス１１０の初期化が必要かどうかを判断し、初期化が必要でなければステップＳ８０４に進むが、必要であればステップＳ８０６に進み、外部デバイス１１０の初期化を実行してステップＳ８０４に進む。ステップＳ８０４では、ステップＳ８０１で読み出した転送データ長の値から残りの転送分の開始アドレスを再計算する。そしてステップＳ８０５で、ステップＳ８０４で計算した値から図２に示した動作フローを再度実行する。そして割り込みフラグ（intt_stat_conf）を解除することにより、この割り込みが解除される。
【００４３】
図９は、書き換え可能なプログラマブルメモリであるフラッシュメモリ１１４を書き換える処理を説明するフローチャートである。
【００４４】
本実施の形態１に係る不具合の回避方法を実現しているリコンフィギュアラブル回路１０２の再構成プログラム情報及び、不具合発生時の割り込み制御ソフトウェアプログラムはこのフラッシュメモリ１１４に格納されている。よって、本実施の形態１に係る集積回路１０１の実使用現場において、このフラッシュメモリ１１４の内容を書き換えることにより不具合を回避できる。
【００４５】
ここで例えば、内部ブロックＡ１０３が通信制御回路、外部デバイス１１０が通信端末である場合、ステップＳ９０１で、通信先からフラッシュメモリ１１４の更新データを図２に示すＤＭＡデータ転送の動作シーケンスを用いて主記憶メモリ１１６に転送する。このＤＭＡデータ転送が終了すると、内部ブロックＡ１０３は割り込み信号を発行してＣＰＵ１１３にＤＭＡデータ転送の終了を通知する。ステップＳ９０２では、この割り込み信号が入力されるのを待ち、ＤＭＡ転送の終了が通知されるとステップＳ９０３に進み、割り込みハンドラー等の制御により、内部ブロックＡ１０３の割り込みフラグを確認して割り込みを解除する。これにより、内部ブロックＡ１０３から発行された割り込み信号も解除される。次にステップＳ９０４で、主記憶メモリ１１６に転送されたデータをフラッシュメモリ１１４に転送し、ステップＳ９０５で、フラッシュメモリ１１４へのデータ転送が完了した時点で、この処理を終了する。
【００４６】
これにより、ソフトウェアでは検知不可能であった内部アービタのデッドロックの不具合が起きる条件を割り込みで通知し、ソフトウェアの割り込み処理による不具合回避を行うプログラムを、実使用現場における書き換え可能なメモリの修正で行うことで、不具合の回避が可能となる。
【００４７】
［実施の形態２］
図１０は、本発明の実施の形態２に係る集積回路１０１ａの回路構成を示すブロック図で、前述の実施の形態１に係る図１の回路構成と共通する部分は同じ記号で示し、その説明を省略する。
【００４８】
この実施の形態２では、リコンフィギュアラブル回路１０２からリセットコントローラ１１９に対して初期化要求信号１０１１が出力されると、リセットコントローラ１１９は各部に対してリセット信号を出力する。
【００４９】
なお、この実施の形態２における処理の流れは、前述の図２乃至図４の説明の如くであるため、その説明を省略する。
【００５０】
図１１は、本実施の形態２において、図４に示したブロックＣ１０５が不具合の状態を検出して、リコンフィギュアラブル回路１０２が期化要求信号１０１１を出力して論理回路を再構成する場合の状態遷移図の例である。
【００５１】
初期状態１５０１で、内部ブロックＡ１０３，Ｂ１０４からの要求信号（req_A）１０６と（req_B）１０７が同時に発行されると不具合検知状態１５０３に移行する。この不具合検知状態１５０３を検出すると、リコンフィギュアラブル回路１０２は初期化要求信号１０１１であるreset_reconf信号を発行する。尚、この初期化要求信号１０１１は、初期化要求信号１０１１が入力されるリセットコントローラ１１９からのブロックごとのリセット信号により解除される。尚、個別要求信号発生１５０２は、図５の個別要求信号発生５０２と同じである。
【００５２】
図１２は、本実施の形態２に係るリコンフィギュアラブル回路１０２を構成するアルゴリズムの例を示す図である。
【００５３】
リコンフィギュアラブル回路１０２は、先に述べたようにプログラムで書き換え可能な回路である。
【００５４】
本実施の形態２によれば、リコンフィギュアラブル回路１０２の構成に依存しないので、どの再構成可能な回路を用いてもよい。例えば前記公報記載のリコンフィギュアラブル回路でも構成することも可能である。また今後、より高性能なリコンフィギュアラブル回路が発表されたならば、それを使用することも可能である。
【００５５】
本実施の形態２では、リコンフィギュアラブル回路１０２の内部状態を構成するに必要なプログラムが書き換え可能なフラッシュメモリ１１４に格納されており、その情報を読み出すことでリコンフィギュアラブル回路１０２を構成する例を示す。
【００５６】
まずステップＳ１６０１で、集積回路１０１がリセット状態から解除されるとステップＳ１６０２に進み、リコンフィギュアラブル回路１０２は、リコンフィギュアラブル回路の内部状態を構成するのに必要なプログラムが格納されたフラッシュメモリ１１４の所定のアドレスからその情報を読み出す。次にステップＳ１６０３で、リコンフィギュアラブル回路１０２の回路の再構成処理を実行し、ステップＳ１６０４で、再構成が完了したか否かを判定し、完了でなければステップＳ１６０２に戻って前述の処理を実行するが、完了するとステップＳ１６０５に進み、リセット信号の入力を待ち、リセット信号が入力されるとステップＳ１６０１に戻り、リセット解除からの処理を実行する。
【００５７】
又ステップＳ１６０５でリセット信号が入力されないときはステップＳ１６０６に進み、電源がオフされたかどうかを調べ、オフされると処理を終了するが、オフされないときはステップＳ１６０５に戻り、リセットの入力を待つ。
【００５８】
図１３は、本実施の形態２に係るフラッシュメモリ１１４のメモリ空間を説明する図である。
【００５９】
図において、１１０１はフラッシュメモリ１１４のアドレス空間に割り当てられた格納領域を示し、１１０５はソフトウェアのリセットベクタアドレス、１１０３はソフトウェアのプログラムが格納されたメモリ領域を示している。アドレス１１０４は、リセット解除後に、リコンフィギュアラブル回路１０２が読み出しを開始するアドレスを示している。またアドレス１１０２乃至１１０６は、図６に示したリコンフィギュアラブル回路１０２を構成するプログラムが格納されたメモリ領域を示している。
【００６０】
以上説明したように本実施の形態２によれば、集積回路の内部ブロック間の信号の任意の状態を初期化要求信号で通知するリコンフィギュアラブル回路構成プログラムを、その集積回路の実使用現場で更新可能にできる。これにより従来の集積回路において、回路設計時には想定できず、ソフトウェアでは検知不可能であった不具合にも対処できるようになる。
【００６１】
これにより、ソフトウェアが検知不可能であるために、外部デバイスの暴走等に伴う故障の原因となったり、重要なファイル情報の破壊などといった致命的な状況に陥るのを防止できる。その結果、従来の集積回路交換に伴って発生する膨大な回収費や、機能や性能を犠牲にした回避策による製品の競争力低下を防ぎ、実使用現場における柔軟な不具合の回避方法を提供でき信頼性の向上が図れる。
【００６２】
なお本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが、その供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００６３】
プログラムを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。その他のプログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【００６４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件を満足するユーザに対してインターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００６５】
またコンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００６６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態１に係る集積回路の構成を示すブロック図である。
【図２】本実施の形態に係る集積回路において、ＣＰＵが内部ブロック及び内部ブロックの両ＤＭＡデータ転送を起動する場合の動作例を示すフローチャートである。
【図３】本実施の形態に係る集積回路の内部ブロックＡと内部ブロックＢの調停回路の状態遷移例を示す図である。
【図４】本実施の形態に係る集積回路の内部ブロックＡと内部ブロックＢの調停回路の状態遷移例を示す図である。
【図５】本実施の形態に係る集積回路の調停回路の状態遷移例を示す図である。
【図６】本実施の形態に係るリコンフィギュアラブル回路を構成するアルゴリズムの例を示すフローチャートである。
【図７】本実施の形態に係る書き換え可能なフラッシュメモリのメモリマップを説明する図である。
【図８】デッドロック不具合に対処するソフトウェアによるワークアラウンド回避プログラムのアルゴリズムを説明するフローチャートである。
【図９】本実施の形態に係るフラッシュメモリを書き換える処理を説明するフローチャートである。
【図１０】本発明の実施の形態２に係る集積回路の回路構成を示すブロック図である。
【図１１】本実施の形態２において、図４に示したブロックＣが不具合の状態を検出して、リコンフィギュアラブル回路が期化要求信号を出力して論理回路を再構成する場合の状態遷移図の例である。
【図１２】本実施の形態２に係るリコンフィギュアラブル回路を構成するアルゴリズムの例を示すフローチャートである。
【図１３】本実施の形態２に係るフラッシュメモリのメモリ空間を説明する図である。
【図１】
2006309349.tif 000003
【図２】
2006309349.tif 000004
【図３】
2006309349.tif 000005
【図４】
2006309349.tif 000006
【図５】
2006309349.tif 000007
【図６】
2006309349.tif 000008
【図７】
2006309349.tif 000009
【図８】
2006309349.tif 000010
【図９】
2006309349.tif 000011
【図１０】
2006309349.tif 000012
【図１１】
2006309349.tif 000013
【図１２】
2006309349.tif 000014
【図１３】
2006309349.tif 000015