(57)【要約】【解決課題】第１の大規模集積回路動作中に論理ブロックの不良を検出しても、停止することなく動作を継続する。【解決手段】半導体集積回路装置は、複数の１の論理ブロックを有する第１の大規模集積回路と、第１の大規模集積回路に接続するとともに第２の論理ブロックを有する書換え可能な第２の大規模集積回路と、複数の第１の論理ブロックで実行される用途を実現するためのデータを保存するメモリと、第１の大規模集積回路の動作中に第１の論理ブロックの不良を検出した場合に、前第２の論理ブロックに不良を検出した第１の論理ブロックと対応するメモリに保存されたデータを書き込み、不良を検出した第１の論理ブロックの代替として第２の論理ブロックを使用する制御を行なう制御部とを備える。【選択図】図１
2009065547.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路装置であって、
複数の第１の論理ブロックを有する第１の大規模集積回路と、
前記第１の大規模集積回路に接続するとともに第２の論理ブロックを有する書換え可能な第２の大規模集積回路と、
前記複数の第１の論理ブロックで実行される用途を実現するためのデータを保存するメモリと、
前記第１の大規模集積回路の動作中に前記第１の論理ブロックの不良を検出した場合に、前記不良を検出した第１の論理ブロックと対応する前記メモリに保存されたデータを前記第２の論理ブロックに書き込み、前記不良を検出した第１の論理ブロックの代替として前記第２の論理ブロックを使用する制御を行なう制御部と、
を備えることを特徴とする半導体集積回路装置。
【請求項２】
前記第１の大規模集積回路は、前記複数の第１の論理ブロックが内部バスにより接続されており、
前記第１の大規模集積回路及び前記第２の大規模集積回路は前記内部バスの信号とシリアルインタフェースを互いに変換するインタフェース回路を有し、
前記第１の大規模集積回路と前記第２の大規模集積回路は前記インタフェース回路を用いて接続されること、
を特徴とする請求項１記載の半導体集積回路装置。
【請求項３】
前記複数の第１の論理ブロックは、前記第１の大規模集積回路の動作中に不良を検出した場合、不良の原因がハードエラーによるものか、ソフトエラーによるものかを判別可能な判別部を備えること、
を特徴とする請求項１記載の半導体集積回路装置。
【請求項４】
前記第１の大規模集積回路を複数備え、
前記第２の大規模集積回路は前記複数の第１の大規模集積回路と接続し、
前記制御部は、前記複数の第１の大規模集積回路を制御するとともに、前記複数の第１の大規模集積回路のうちの１つの第１の大規模集積回路において不良を検出した場合、その不良を検出した第１の大規模集積回路の前記不良を検出した第１の論理ブロックの代替として前記第２の大規模集積回路の第２の論理ブロックを使用する制御を行なうこと、
を特徴とする請求項１に記載の半導体集積回路装置。
【請求項５】
前記第２の大規模集積回路を複数備え、
前記制御部は、前記第１の大規模集積回路の動作中に前記第１の論理ブロックの不良を２つ以上検出した場合に、その不良を検出した２つ以上の第１の論理ブロックと対応する前記メモリに保存されたデータを前記複数の大規集積回路の第２の論理ブロックにそれぞれに書き込むこと、
を特徴とする請求項１記載の半導体集積回路装置。
【請求項６】
前記第１の大規模集積回路を複数備えるとともに前記第２の大規模集積回路を複数備え、
前記制御部は、前記複数の第１の大規模集積回路の動作中に前記第１の論理ブロックの不良を２つ以上検出した場合に、その不良を検出した２以上の第１の論理ブロックと対応する前記メモリに保存されたデータを前記複数の大規集積回路の第２の論理ブロックそれぞれに書き込むこと、
を特徴とする請求項１記載の半導体集積回路装置。
【請求項７】
前記第１の大規模集積回路の複数の第１の論理ブロックの一部を二重化し、
前記第２の大規模集積回路は前記第２の論理ブロックを複数有し、
前記制御部は、前記第１の大規模集積回路の動作中に前記二重化された第１の論理ブロックの処理結果の不一致を検出した場合に、その不一致を検出した第１の論理ブロックと対応する前記メモリに保存されたデータを前記第２の論理ブロックにそれぞれ書き込み、前記二重化された第１の論理ブロックの代替として前記第２の論理ブロックを使用すること、
を特徴とする請求項１記載の半導体集積回路装置。
【請求項８】
前記第１の大規模集積回路はＡＳＩＣ（Application Specific Integrated Circuit）であり、前記第２の大規模集積回路はＦＰＧＡ（Field Programmable Gate Array）であること、
を特徴とする請求項１記載の半導体集積回路装置。
【請求項９】
外部のホストコンピュータと情報の授受を行うための半導体集積回路装置が搭載されたチャネルアダプタボードと、
外部のディスクとデータの授受を行うための半導体集積回路装置が搭載されたディスクアダプタボードと、
前記ホストコンピュータから前記ディスクとの間で授受する情報を一時的に保持するための半導体集積回路装置が搭載されたキャッシャボードと、
前記チャネルアダプタボードと前記キャッシュボードおよび前記ディスクアダプタボード間のデータ転送を制御するための半導体集積回路装置が搭載されたスイッチボードとを備えたストレージ装置であって、
前記チャネルアダプタボード、前記ディスクアダプタボート、前記キャッシュボード及び前記スイッチボードの各ボードに搭載された半導体集積回路装置は、
複数の１の論理ブロックを有する第１の大規模集積回路と、
前記第１の大規模集積回路に接続するとともに第２の論理ブロックを有する書換え可能な第２の大規模集積回路と、
前記複数の第１の論理ブロックで実行される用途を実現するためのデータを保存するメモリと、
前記第１の大規模集積回路の動作中に前記第１の論理ブロックの不良を検出した場合に、その不良を検出した第１の論理ブロックと対応する前記メモリに保存されたデータを前記第２の論理ブロックに書き込み、前記不良を検出した第１の論理ブロックの代替として前記第２の論理ブロックを使用する制御を行なう制御部と、
を備えることを特徴とするストレージ装置。
【請求項１０】
前記第１の大規模集積回路は、前記複数の第１の論理ブロックが内部バスにより接続されており、
前記第１の大規模集積回路及び前記第２の大規模集積回路は前記内部バスの信号とシリアルインタフェースを互いに変換するインタフェース回路を有し、
前記第１の大規模集積回路と前記第２の大規模集積回路は前記インタフェース回路を用いて接続されること、
を特徴とする請求項９記載のストレージ装置。
【請求項１１】
前記複数の第１の論理ブロックは、前記第１の大規模集積回路の動作中に不良を検出した場合、不良の原因がハードエラーによるものか、ソフトエラーによるものかを判別可能な判別部を備えること、
を特徴とする請求項９記載のストレージ装置。
【請求項１２】
前記第１の大規模集積回路を複数備え、
前記第２の大規模集積回路は前記複数の第１の大規模集積回路と接続し、
前記制御部は、前記複数の第１の大規模集積回路を制御するとともに、前記複数の第１の大規模集積回路のうちの１つの第１の大規模集積回路において不良を検出した場合、その不良を検出した第１の大規模集積回路の前記不良を検出した第１の論理ブロックの代替として前記第２の大規模集積回路の第２の論理ブロックを使用する制御を行なうこと、
を特徴とする請求項９に記載のストレージ装置。
【請求項１３】
前記第２の大規模集積回路を複数備え、
前記制御部は、前記第１の大規模集積回路の動作中に前記第１の論理ブロックの不良を２つ以上検出した場合に、その不良を検出した２つ以上の第１の論理ブロックと対応する前記メモリに保存されたデータを前記複数の大規集積回路の第２の論理ブロックにそれぞれに書き込むこと、
を特徴とする請求項９記載のストレージ装置。
【請求項１４】
前記第１の大規模集積回路を複数備えるとともに前記第２の大規模集積回路を複数備え、
前記制御部は、前記複数の第１の大規模集積回路の動作中に前記第１の論理ブロックの不良を２つ以上検出した場合に、その不良を検出した２以上の第１の論理ブロックと対応する前記メモリに保存されたデータを前記複数の大規集積回路の第２の論理ブロックそれぞれに書き込むこと、
を特徴とする請求項９記載のストレージ装置。
【請求項１５】
前記第１の大規模集積回路の複数の第１の論理ブロックの一部を二重化し、
前記第２の大規模集積回路は前記第２の論理ブロックを複数有し、
前記制御部は、前記第１の大規模集積回路の動作中に前記二重化された第１の論理ブロックの処理結果の不一致を検出した場合に、その不一致を検出した第１の論理ブロックと対応する前記メモリに保存されたデータを前記第２の論理ブロックにそれぞれ書き込み、前記二重化された第１の論理ブロックの代替として前記第２の論理ブロックを使用すること、
を特徴とする請求項９記載のストレージ装置。
【請求項１６】
前記第１の大規模集積回路はＡＳＩＣ（Application Specific Integrated Circuit）であり、前記第２の大規模集積回路はＦＰＧＡ（Field Programmable Gate Array）であること、
を特徴とする請求項９記載のストレージ装置。
【請求項１７】
半導体集積回路装置の論理ブロック代替方法であって、
前記半導体集積回路装置は、
複数の１の論理ブロックを有する第１の大規模集積回路と、
前記第１の大規模集積回路に接続するとともに第２の論理ブロックを有する書換え可能な第２の大規模集積回路と、
前記複数の第１の論理ブロックで実行される用途を実現するためのデータを保存するメモリとを備え、
前記第１の大規模集積回路の動作中に前記第１の論理ブロックの不良を検出するステップと、
このステップで不良を検出した場合に、前第２の論理ブロックに前記不良を検出した第１の論理ブロックと対応する前記メモリに保存されたデータを書き込むステップと、
前記不良を検出した第１の論理ブロックの代替として前記第２の論理ブロックを使用するステップと、
を備えることを特徴とする半導体集積回路装置の論理ブロック代替方法。
【請求項１８】
前記不良を検出するステップが不良を検出した場合、不良の原因がハードエラーによるものか、ソフトエラーによるものかを判別するステップを備えること、
を特徴とする請求項１７記載の半導体集積回路装置の論理ブロック代替方法。
【請求項１９】
前記第１の大規模集積回路はＡＳＩＣ（Application Specific Integrated Circuit）であり、前記第２の大規模集積回路はＦＰＧＡ（Field Programmable Gate Array）であること、
を特徴とする請求項１７記載の半導体集積回路装置の論理ブロック代替方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置及びストレージ装置に関し、特に大規模集積回路に不具合が生じた場合に書換え可能な大規模集積回路を使用することで正常な装置動作を実現する半導体集積回路装置及びその半導体集積回路装置を備えるストレージ装置に適用しても好適なものである。
【背景技術】
【０００２】
近年、半導体技術の向上によりＬＳＩ（Large Scale Integration circuit）またはＡＳＩＣ（Application Specific Integrated Circuit）と呼ばれる半導体集積回路の製造プロセスの微細化による集積度向上・高速化・高性能化が進んでいる。ＡＳＩＣは一度製造してしまうと、仕様変更や論理回路にバグがあったとしても修正することができず、新たな論理回路を用いてＡＳＩＣを再製する必要がある。特に近年はプロセスの微細化によりＡＳＩＣの開発費用および開発に要する期間が増加しており、再製に伴うコストが膨大になっている。
【０００３】
この問題を解決するため、ＦＰＧＡ（Field Programmable Gate Array）とＡＳＩＣを併用することでＡＳＩＣの再製を不要とする技術が知られている。この技術では、ＡＳＩＣを構成する論理ブロックの１つにバグがあった場合や、仕様変更により論理を変更する必要がある場合に、該当論理ブロックをＦＰＧＡに実装して使用することでＡＳＩＣを再製することなくバグ修正や仕様変更に対応することを可能としている（例えば、特許文献１参照）。
【０００４】
また、別の技術としてＡＳＩＣに搭載された自己診断機能によりＡＳＩＣの不良を検出し、不良となった部分をＦＰＧＡで置き換えることによりＡＳＩＣを交換しなくても動作可能となるものもある。
【特許文献１】特開２００１−１７７０５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来技術では、ＦＰＧＡで置き換える論理ブロックは固定されている。例えば、バグのあるブロックや、仕様変更により修正となったブロックをＦＰＧＡで置き換える場合、置き換え対象となる論理ブロックは既知であり、事前にＦＰＧＡに実装した上で使用され、ＡＳＩＣ内の該当ブロックは使用されない。
【０００６】
また、自己診断機能を用いる場合でも、ＡＳＩＣが動作していないとき、例えば電源起動時などに自己診断を行い不良となった論理ブロックをＦＰＧＡで置き換えるものであり、置き換え対象となる論理ブロックはＡＳＩＣ動作中には変更されない。
【０００７】
近年、半導体集積回路の製造プロセスの微細化により、製造時にＡＳＩＣに付着した微小なゴミなどが不良の要因となりえる。プロセスの微細化によりＡＳＩＣ内部のトランジスタや配線の集積度が向上しており、従来のプロセスでは問題とならなかった微小なゴミなどでもＡＳＩＣの不良となる場合がある。
【０００８】
また、ＡＳＩＣ不良の中には、当初は正常に動作しているがしばらく通電していることによりＡＳＩＣ内部の配線ショートや断線を引き起こし、不良が発生する場合もある。このような経年劣化不良を自己診断機能のみで検出するのは困難である。例えば自己診断機能を実施した際は不良には至っていないが、その直後に不良に至る可能性がある。この場合自己診断機能の結果は正常となるが、実際には不良が存在していることとなる。定期的に自己診断を実施することで経年劣化を検出することは可能であるが、より信頼性を高めるためには頻繁に自己診断を実施する必要がある。しかしながら、ＡＳＩＣの自己診断を行うには、ＡＳＩＣは通常の処理を行うことができず、一旦通常動作を止めて自己診断機能を有効にする必要がある。さらには、通常動作を止める際、自己診断後に再度継続動作ができるよう、必要な情報を保存しておく必要がある。
【０００９】
従って、動作中に頻繁に自己診断を行うとＡＳＩＣの性能劣化の要因となる。例えばストレージ装置に搭載されるＡＳＩＣは主にデータ転送を行っており、データ転送中に自己診断を行うと性能劣化、つまり転送速度が低下する。その結果、ストレージ装置全体のパフォーマンスが低下することになる。ストレージ装置においては、データ転送速度は重要であり、データ転送速度が低下するのは致命的である。つまり、ＡＳＩＣの動作を止めて頻繁に自己診断を行うのは現実的ではない。
【００１０】
また、自己診断機能は万全ではないため、実際には不良があるにもかかわらず不良を検出できない場合がある。例えば特定のタイミングでデータ転送を行った場合や、特定のパターンを転送する場合にのみ不良が発生するなどが考えられる。自己診断機能が、前述のタイミングやパターンで転送を行わない限り不良を検出することはできない。
【００１１】
つまり、従来技術では、ＡＳＩＣに不良がある場合でも事前に検出できない場合が有り、その場合には半導体集積回路装置を一旦停止させ、搭載しているＡＳＩＣを良品と交換する必要があった。
【００１２】
本発明の目的は、第１の大規模集積回路装置の動作中に論理ブロックの不良を検出しても、停止することなく動作を継続することができる半導体集積回路装置及びその半導体集積回路装置を備えるストレージ装置を提供することにある。
【００１３】
なお、後述する実施形態では、第１の大規模集積回路としてＡＳＩＣ、この第１の大規模集積回路と接続される書換え可能な第２の大規模集積回路としてＦＰＧＡを用いて説明しているが、これに限定されるものではなく、ＡＳＩＣは汎用ＬＳＩ（Large Scale Integrated circuit）、ＦＰＧＡはＣＰＬＤ（Complex Programmable Logic Device）であっても何ら問題ない。
【課題を解決するための手段】
【００１４】
本発明は、半導体集積回路装置であって、複数の第１の論理ブロックを有する第１の大規模集積回路と、前記第１の大規模集積回路に接続するとともに第２の論理ブロックを有する書換え可能な第２の大規模集積回路と、前記複数の第１の論理ブロックで実行される用途を実現するためのデータを保存するメモリと、前記第１の大規模集積回路の動作中に前記第１の論理ブロックの不良を検出した場合に、前記不良を検出した第１の論理ブロックと対応する前記メモリに保存されたデータを前記第２の論理ブロックに書き込み、前記不良を検出した第１の論理ブロックの代替として前記第２の論理ブロックを使用する制御を行なう制御部とを備えるものである。
【００１５】
この構成によると、第１の大規模集積回路の動作中に複数の第１の論理ブロックから論理ブロックの不良を検出しても、停止することなく動作を継続することができ、動作の信頼性を高めた半導体集積回路装置とすることができる。
【００１６】
また、第１の大規模集積回路と書換え可能な第２の大規模集積回路との接続を簡易にすることにより接続ピンを削減することができ、チップサイズやパッケージサイズの影響を抑えてサイズを小さくすることでき、コストの増加を押さえた半導体集積回路装置とすることができる。
【００１７】
また、本発明は、外部のホストコンピュータと情報の授受を行うための半導体集積回路装置が搭載されたチャネルアダプタボードと、
外部のディスクとデータの授受を行うための半導体集積回路装置が搭載されたディスクアダプタボードと、
前記ホストコンピュータから前記ディスクとの間で授受する情報を一時的に保持するための半導体集積回路装置が搭載されたキャッシャボードと、前記チャネルアダプタボードと前記キャッシュボードおよび前記ディスクアダプタボード間のデータ転送を制御するための半導体集積回路装置が搭載されたスイッチボードとを備えたストレージ装置であって、前記チャネルアダプタボード、前記ディスクアダプタボート、前記キャッシュボード及び前記スイッチボードの各ボードに搭載された半導体集積回路装置は、複数の第１の論理ブロックを有する第１の大規模集積回路と、前記第１の大規模集積回路に接続するとともに第２の論理ブロックを有する書換え可能な第２の大規模集積回路と、前記複数の第１の論理ブロックで実行される用途を実現するためのデータを保存するメモリと、前記第１の大規模集積回路の動作中に前記第１の論理ブロックの不良を検出した場合に、その不良を検出した第１の論理ブロックと対応する前記メモリに保存されたデータを前記第２の論理ブロックに書き込み、前記不良を検出した第１の論理ブロックの代替として前記第２の論理ブロックを使用する制御を行なう制御部とを備えたものである。
【００１８】
この構成によると、第１の大規模集積回路の動作中に複数の第１の論理ブロックから論理ブロックの不良を検出しても、停止することなく動作を継続することができ、動作の信頼性を高めたストレージ装置とすることができる。
【発明の効果】
【００１９】
本発明によれば、第１の大規模集積回路動作中に論理ブロックの不良を検出しても、停止することなく動作を継続することができる半導体集積回路装置及びその半導体集積回路装置を備えるストレージ装置を提供できる。
【００２０】
また、第１の大規模集積回路と書換え可能なる第２の大規模集積回路間の接続ピン数を削減することで、チップサイズやパッケージサイズへの影響を抑え、かつ基板設計への影響および基板コストの増加も抑える半導体集積回路装置及びその半導体集積回路装置を備えるストレージ装置を提供できる。
【発明を実施するための最良の形態】
【００２１】
本発明の半導体集積回路装置は、ＡＳＩＣ動作中に不良を検出した場合、自動的に該当論理ブロックをＦＰＧＡに実装し使用することで、あたかも不良が発生していないかのように振舞うことのできるものである。以下、本発明の各実施形態について図面を参照して説明する。なお、以下の各実施形態においては、本発明の半導体集積回路装置に搭載される第１の大規模集積回路をＡＳＩＣに、書換え可能な第２の大規模集積回路をＦＰＧＡに適用した場合で説明する。
【００２２】
（第１の実施形態）
図１は、半導体集積回路装置であるＡＳＩＣ搭載基板１の構成を示す図である。ＡＳＩＣ搭載基板１上に、ＡＳＩＣ１０と、ＣＰＵ２０、ＦＰＧＡ３０とメモリ４０が搭載されている。ＣＰＵ２０は、ＡＳＩＣ１０，ＦＰＧＡ３０と信号線５１，５３を介してそれぞれデータ送受信可能となるように接続されている。また、ＣＰＵ２０はメモリ４０と信号線５４を介して接続されており、ＣＰＵ２０はメモリ４０に対してデータを送信できるように接続されている。また、メモリ４０とＦＰＧＡ３０は信号線５５を介して接続されており、メモリ４０からデータをＦＰＧＡ３０へ送信できるように接続されている。さらに、ＡＳＩＣ１０とＦＰＧＡ３０は信号線５２を介してデータ送受信できるように接続されている。
【００２３】
ＡＳＩＣ１０は、第１の大規模集積回路であり、各業務等を実行するための処理を行うための回路が構成されている。ＣＰＵ２０は、ＡＳＩＣ１０、ＦＰＧＡ３０及びメモリ４０を制御することにより、ＡＳＩＣ搭載基板１を制御する。ＦＰＧＡ３０は、プログラミングすることができる第２の大規模集積回路であり、回路を消去して書換えることが可能である。メモリ４０は、ＦＰＧＡ３０のコンフィギュレーション情報（実装データ情報）を保存している。
【００２４】
なお、メモリ４０は、ＲＯＭやフラッシュメモリなどＦＰＧＡ３０のコンフィギュレーション情報を扱えるものであれば形式は問わない。コンフィギュレーション情報は、ＡＳＩＣ１０内の論理ブロック１１Ａ〜１１Ｅに実装されている回路の情報を示すものである。なお、ブロックとは、設計の単位（例えば、モジュール）である。メモリ４０から不良を検出した論理ブロックと対応するコンフィギュレーション情報をＦＰＧＡ３０に書き込むことで、ＦＰＧＡ３０にて不良を検出した論理ブロックの機能を実現することができる。なお、メモリ４０に保存されるコンフィギュレーション情報については後述する。
【００２５】
図２はＡＳＩＣ１０とＦＰＧＡ３０の内部構成を示す図である。ＡＳＩＣ１０は複数の論理ブロック１１Ａ、１１Ｂ、１１Ｃ、１１Ｄ、１１Ｅから構成されており、論理ブロック１１Ａ〜１１ＥおよびＩ／Ｆ変換ブロック１３Ａは内部バス１２により相互に接続されている。
【００２６】
なお、図２においては論理ブロック１１Ａ〜１１Ｅの５個を論理ブロックとして示しているが、これは図示および説明を簡略化するために一例として記載したものである。近年は半導体集積回路の集積度が向上しており、ＡＳＩＣに実装する論理ブロックの規模が増大している。数十メガゲートクラスのＡＳＩＣでは、論理ブロックは１００〜２００くらいになる。内部バス１２はデータ転送を行うものであり、例えばブロック１１Ａと１１Ｂで必要な情報をやり取りするために用いられる。内部バス１２に記載されている数字はアドレスを示しており、後述するアドレステーブル１４で使用される。ＡＳＩＣ１０とＦＰＧＡ３０の接続には、Ｉ／Ｆ変換ブロック１３Ａ、１３Ｂおよび信号線５２を経由して行う。Ｉ／Ｆ変換ブロック１３Ａ、１３Ｂは内部バス１２形式の信号を変換し、ＡＳＩＣ１０とＦＰＧＡ３０を接続するためのインタフェースである。内部バス１２で送受信される信号には大きく分けてアドレス線・データ線・コマンド線などを用いて送受信される信号がある。
【００２７】
これら内部バス１２で送受信される信号は、例えば、１つのデータ単位でまとめてパケット化し、パケット化したデータに対してアドレスを割り当て、アドレスの先頭から順にシリアル化して送信される。図３は、内部バス１２で送受信される信号をデータ単位でパケット化したデータ１００の一例を示す図である。図３に示すように、データ１００は、アドレス１０１と内容１０２とにより構成されている。なお、伝送の際はシリアル化せず、例えば１バイト単位でのパラレル伝送も可能であり、伝送方法は特に限定されるものではない。また、パケット化する方式についても図３は一例であり、本構成に限定されるものではない。
【００２８】
次に、アドレステーブル１４について説明する。アドレステーブル１４は、内部バス１２において使用するアドレスの対応表が格納されている。図４は、アドレステーブル１４の一例を示す図である。アドレステーブル１４は、ブロック名欄１４Ａとアドレス欄１４Ｂを有している。ブロック名欄１４Ａには、論理ブロック１１Ａから１１Ｅのいずれが格納される。アドレス欄１４Ｂには、ブロック名欄１４Ａに格納されて論理ブロックに対応する内部バス１２におけるアドレスが格納される。
【００２９】
例えば、論理ブロック１１Ａには、図２に示すようにアドレス“１”が対応しているため、論理ブロック１１Ａが格納されているブロック名欄１４Ａに対応してアドレス欄１４Ｂには、“１”が格納される。
【００３０】
また、例えば、論理ブロック１１Ｂにデータを送りたい場合、アドレステーブル１４を参照してアドレスは“２”となる。すなわち、内部バス１２におけるアドレス“２”に対して送りたいデータが送信される。なお、図４で説明したアドレステーブル１４は、一例であり、図４等で示す構成に限定されるものではない。
【００３１】
次に、メモリ４０に保存されるコンフィギュレーション情報について説明する。図７はコンフィギュレーション情報４１の一例を示す図である。図７に示すように、コンフィギュレーション情報４１は、先頭アドレス４２及び内容４３が複数の組となって構成されている。先頭アドレス４２はメモリ４０に割り当てられたアドレスを示している。また、内容４３は論理ブロック１１Ａ〜論理ブロック１１Ｂの実装データが格納されている。
【００３２】
なお、ＦＰＧＡ３０のデバイスの種類によってはアドレスではなくページという概念を用いる場合がある。図７を例に挙げて説明すると、論理ブロック１１Ａのデータはページ１、論理ブロック１１Ｂのデータはページ２というようにページ毎に異なる論理ブロックの実装データを格納することになる。
【００３３】
また、ＡＳＩＣに搭載される論理ブロック数は１００〜２００程度と述べた。従って、メモリ４０には、これら全ての論理ブロックの実装データを保存する必要がある。しかしながら、通常は同一構成の論理ブロックを複数使用することもあるため、１００〜２００の論理ブロックを全て保存する必要は無く、メモリ４０に保存する必要のある論理ブロック数の実装データは３０〜６０程度である。
【００３４】
別の方法としては、マルチコンテキストＦＰＧＡ（図示せず。）を使用することもある。マルチコンテキストＦＰＧＡとは、ＦＰＧＡの実装データを複数用意しておき、使用する実装データを切り替えることで瞬時にＦＰＧＡの回路構成を切り替えることができるものである。
【００３５】
次に、ＣＰＵ２０に保存される論理ブロックＩＤとメモリアドレスの対応を示すテーブルについて説明する。図８は、このテーブル１１０を示す図である。このテーブル１１０は、不良を検出した論理ブロックのＩＤから、ＦＰＧＡ３０に実装すべきデータが格納されているメモリ４０上のアドレスを求めるために使用するものである。テーブル１１０は、論理ブロックＩＤ欄１１１と先頭アドレス欄１１２を有している。論理ブロックＩＤ欄１１１には、論理ブロック１１Ａ〜１１ＥのＩＤ（全論理ブロックにユニークに割当てられた識別子）が保持される。また、先頭アドレス欄１１２には、論理ブロックＩＤ欄１１１に保持される論理ブロックＩＤと対応する実装データのメモリ４０に格納されているアドレスを示すための先頭アドレスが保持される。
【００３６】
次に、ＡＳＩＣ１０で論理ブロックの不良を検出し、ＦＰＧＡ３０で置き換える場合の処理を説明する。図５はＡＳＩＣ１０における当該処理を示すフローチャートであり、また、図６はＣＰＵ２０における当該処理を示すフローチャートである。なお、これらの処理はＡＳＩＣ搭載基板１が例えば、ストレージ装置に実装され動作したときに開始される処理である。
【００３７】
先ず、図５におけるステップＳ１０１からＳ１０２の処理について説明する。ステップＳ１０１において、ＡＳＩＣ１０は通常動作中にエラー有無をチェックしている。エラー有無のチェックとは、例えばデータ線に付加されているパリティのエラーや、通信相手からの応答待ちでのタイムアウト等である。なお、エラーとなったデータは破棄するなど適切な処理が行われる。ストレージ装置では、ホスト装置−ディスク間で伝送するデータ保護のため、ＡＳＩＣ１０内部の各所にてデータ化けなど異常有無をチェックしている。従って、ストレージ装置に用いるようなＡＳＩＣであれば通常動作中にエラー有無をチェックすることが可能である。
【００３８】
ＡＳＩＣ１０はエラーチェックを行い、全ての論理ブロックでエラーが発生していない場合は（Ｓ１０１：ＮＯ）、通常動作を継続する。エラーを検出した場合は（Ｓ１０１：ＹＥＳ）、ステップＳ１０２において、ＡＳＩＣ１０は、信号線５１を経由してＣＰＵ２０に割り込みを発行し、エラーを通知する。
【００３９】
このようにエラー通知を受信すると、ＣＰＵ２０は図６におけるステップＳ２０１からＳ２０７の処理を実行する。ステップＳ２０１において、ＣＰＵ２０は割り込み有無をチェックしている。そして、ＣＰＵ２０は、割り込みがあった場合は（Ｓ２０１：ＹＥＳ）、ステップＳ２０２において、エラー情報の解析を行う。このとき、エラー情報は、例えばＡＳＩＣ１０のレジスタ（図示せず。）等に保持されており、ＣＰＵ２０からレジスタリードを行うことで情報を取得しても良いし、別の方法としては信号線５１にエラー情報用の信号線も確保しておき、信号線５１を通して取得しても良い。このように、エラー情報の取得手段はどのような手法を用いても良い。また、エラー情報には、不良を検出したブロックのＩＤや不良の内容のような情報を含む。不良の内容は、例えば、初期不良のような製造不良、経年劣化による不良等である。
【００４０】
次に、ステップＳ２０３において、ＣＰＵ２０は、ＦＰＧＡ３０に該当論理ブロックを実装して置き換え可能か否かを判断する。既に他の論理ブロック不良等によりＦＰＧＡ３０を使用している場合は論理ブロックを置き換えることができない。この場合は（Ｓ２０３：置換不可能）、ＣＰＵ２０は、ステップＳ２０７において、パス閉鎖処理などのエラー処理を実行する。このエラー処理では、ＡＳＩＣ１０に対して、エラー処理を行い置換えが不可能な場合であっても指示する。置換不可能と判断される場合は、例えば、既にＡＳＩＣ１０で不良が発生しており、ＦＰＧＡ３０で不良が検出された論理ブロックを論理ブロック１１Ｆで置き換えている場合である。
【００４１】
また、他の論理ブロックによりＦＰＧＡ３０を使用していない場合は（Ｓ２０３：置換可能）、ＣＰＵ２０は、ステップＳ２０４において、ステップＳ２０２で解析してエラー情報を元に、ＡＳＩＣ１０のどの論理ブロックが不良になったかの解析を行う。
【００４２】
次に、ステップＳ２０５において、ＣＰＵ２０は、不良となった論理ブロックをＦＰＧＡ３０に実装する。
【００４３】
このステップＳ２０４及びＳ２０５の処理については、以下に具体的に説明する。メモリ４０には、既述のようにＡＳＩＣ１０の論理ブロック１１Ａ〜１１Ｅのコンフィギュレーション情報が保存されている。
【００４４】
ＣＰＵ２０は、不良を検出したときにテーブル１１０を用いて求めた不良が検出された論理ブロックの先頭アドレスを、信号線５４を通してメモリ４０に送信する。
【００４５】
そして、ＣＰＵ２０は、信号線５３を通して、ＦＰＧＡ３０に実装データの読み込みを指示する。ＦＰＧＡ３０は、指定されたメモリ４０のアドレスから信号線５５を通してデータを読み込み、所望の回路を実現する。
【００４６】
さて、ＦＰＧＡ３０は実装データの読み込みが完了したら、信号線５３を通してＣＰＵ２０に完了を通知する。
【００４７】
次に、ステップＳ２０６において、ＣＰＵ２０は、ＡＳＩＣ１０に対してＦＰＧＡ３０での置き換え実施とデータパスの切り替え指示を発行する。なお、ＣＰＵ２０は、置き換え実施とデータパスの置換指示を発行すると、ステップＳ２０１の処理に戻り、再び、割り込みが発生するまで待機状態となる。
【００４８】
続いて、図５に戻り、ステップＳ１０３からＳ１０６の処理について説明する。ＣＰＵ２０から指示を受けると、ステップＳ１０３において、ＡＳＩＣ１０はＣＰＵ２０からの指示がステップＳ２０６における置換指示又はステップＳ２０７の置換不可能の指示であるかを判断する。
【００４９】
ＣＰＵ２０からの指示が置換え可能であると判断した場合は（Ｓ１０３：置換可能）ＡＳＩＣ１０は、ＦＰＧＡ３０への切り替え処理を行う。ＡＳＩＣ１０は、ステップＳ１０４において、データパスの切替を実施する。このデータパスの切替は、ＡＳＩＣ１０内のアドレステーブル１４を書き換えることにより実現する。
【００５０】
図９は、図４で示したアドレステーブル１４を書き換えた例であるアドレステーブル１４´示している。この例ではブロック名欄１４´Ａ欄の論理ブロック１１Ｂに不良があった場合を示している。このため、論理ブロック１１Ｂと対応するアドレス欄１４´Ｂのアドレスが６（ＦＰＧＡ３０内の論理ブロックのアドレス）になっている。このようにアドレステーブル１４を書き換えることで、例えば、論理ブロック１１Ａ〜論理ブロック１１Ｂにデータ転送を行う場合、論理ブロック１１Ｂのアドレスは、アドレステーブル１４´が参照されることによりアドレス“６”となるので、Ｉ／Ｆ変換ブロック１３Ａを経由してＦＰＧＡ３０に接続される。つまり、ＡＳＩＣ１０内の不良が検出された論理ブロック１１Ｂが使用されず、ＦＰＧＡ３０に実装した論理ブロック１１Ｆが使用されるようになる。
【００５１】
次に、ステップＳ１０５において、ＡＳＩＣ１０は、データの再送処理を実行する。このとき、内部バス１２に再送機能があれば、その機能を利用しても良い。内部バス１２に再送機能が無い場合は、送信元の論理ブロックに対して再送要求を行う。なお、再送機能に関しては図示していない。再送されたデータは、新しいアドレステーブル１４´を参照してＦＰＧＡ３０経由で処理され、不良が検出された論理ブロックが使用されることは無い。従って、エラー検出からＦＰＧＡ３０での置き換え処理までをＡＳＩＣ搭載基板１で自動的に行うことで、ＡＳＩＣ１０内でエラーが発生したとしても、そのエラーを意識することなく正常処理が可能となる。
【００５２】
一方、ＣＰＵ２０からの指示が置換可能でないと判断した場合は（Ｓ１０３：置換不可能）、ＡＳＩＣ１０は、ステップＳ１０６において、エラー処理を実行する。
ここで、エラー処理とは、例えば不良が検出された論理ブロックを含むデータパスを使わないようにするパス閉塞などが考えられる。
【００５３】
この第１の実施形態によると、ＡＳＩＣ１０の動作中に論理ブロック１１Ａ〜１１Ｅから論理ブロックの不良を検出しても、停止することなく動作を継続することができ、動作の信頼性を高めたＡＳＩＣ搭載基板１とすることができる。
【００５４】
また、ＡＳＩＣ１０とＦＰＧＡ３０を接続する信号の数を減らし、ＡＳＩＣやＦＰＧＡのチップサイズへの影響を最小限にし、さらに基板配線も容易とすることができる。従来技術では、ＦＰＧＡで置き換える論理ブロックの信号をそのまま若しくはセレクタ経由でＦＰＧＡと接続している。セレクタを用いることで、複数の論理ブロックとＦＰＧＡを接続することが可能になるが、ＡＳＩＣとＦＰＧＡを接続する信号数は、最大の信号数をもつ論理ブロックに合わせる必要がある。例えばストレージ装置では高速データ伝送を行うため、ＡＳＩＣ内部でのデータは例えば２５６ビットや５１２ビットなど、多数のビット幅を持っている。このようなデータ信号を外部ピンにする場合、ピン数が２５６本若しくは５１２本増加する。そのため、ＡＳＩＣのチップサイズ増加やパッケージサイズ増加の要因となりえる。また、ＡＳＩＣとＦＰＧＡの間を２５６本若しくは５１２本もの配線で接続することになり、基板設計が複雑になり、ひいては基板層数の増加による基板コストアップの要因となりえる。この第１の実施形態によると、ＡＳＩＣとＦＰＧＡ間を、Ｉ／Ｆ変換ブロック１３Ａ，１３Ｂを介して信号線５２で接続する構成により、信号数を減らすことが可能となる。
【００５５】
したがって、ＡＳＩＣ１０とＦＰＧＡ３０間を信号線５２のみで接続することにより接続ピンを削減することができ、チップサイズやパッケージサイズの影響を抑えてサイズを小さくすることでき、コストの増加を押さえたＡＳＩＣ搭載基板１とすることができる。
【００５６】
（第２の実施形態）
本発明の第２の実施形態について説明する。従来、α線や中性子線が照射されることにより、ＡＳＩＣに搭載されているＲＡＭやフリップフロップが保持しているデータが化ける、例えば本来”０”を保持している素子が”１”を保持してしまうことがある。特に、近年はプロセスの微細化によりＲＡＭやフリップフロップが小型化され、より少ないエネルギーでデータが化けてしまう可能性がある。このようなエラーはソフトエラーと呼び、ハード的な故障ではないため、仮にソフトエラーが発生しても、別の正しいデータをＲＡＭまたはフリップフロップに書き込めば正常に動作可能である。
【００５７】
従って、第１の実施形態では、不良を検出した際、実際にはハードエラーではなくソフトエラーによるものだとしても、ハードエラーとしてＦＰＧＡ３０の論理ブロック１１Ｆで置き換えを実施する。しかしながら、前述のようにＡＳＩＣ１０自体の不良ではないため、この場合はＦＰＧＡ３０を使用する必要はなく、ＡＳＩＣ１０のみで動作を継続することが可能である。このため、この第２の実施形態では、ソフトエラーかハードエラーであるかを判断し、ソフトエラーの場合はＦＰＧＡ３０でなくＡＳＩＣ１０をそのまま使用する構成について述べる。
【００５８】
図１０は、本発明の第２の実施形態の構成を示したものである。第１の実施形態と異なる点について説明し、同一の部分については図示及び説明を省略することとする。第１の実施形態との違いは、ＡＳＩＣ１０の論理ブロック１１Ａ〜１１Ｅの内部に自己診断回路１５Ａ〜１５Ｅを搭載していることである。自己診断回路１５Ａは論理ブロック１１Ａについて自己診断を行い、論理ブロック１１Ａに不良があるかどうかを判断する機能を有している。自己診断回路１５Ｂ〜１５Ｅに関しても同様である。
【００５９】
次に、第２の実施形態におけるＡＳＩＣ１０で論理ブロックの不良を検出し、ＦＰＧＡ３０で置き換える場合の処理を説明する。図１１はＡＳＩＣ１０における当該処理を示すフローチャートであり、また、図１２はＣＰＵ２０における当該処理を示すフローチャートである。なお、図１１におけるステップＳ３０１からＳ３０６の処理はステップＳ１０１からＳ１０６と、図１２におけるステップＳ４０１からＳ４０７はステップＳ２０１からＳ２０７と同じ処理であるため説明は省略し、以下では、追加された処理について説明する。
【００６０】
図１２において、ステップＳ４０６の処理を終えた後、ＣＰＵ２０はステップＳ４０８において、ＡＳＩＣ１０に自己診断の実施を指示する。
【００６１】
ＡＳＩＣ１０はこの指示を受けると、ステップＳ３０７において、不良となった論理ブロックの自己診断を自己診断部１５Ａ〜１５Ｅのいずれかを用いて行う。この時、ＡＳＩＣ１０は通常動作しているが該当論理ブロックはＦＰＧＡ３０の論理ブロック１１Ｆを代替として使用しているためＡＳＩＣ１０内の論理ブロックは使用されていない。従って、ＡＳＩＣ１０が動作中であっても該当ブロックの自己診断を行うことは差し支えない。この自己診断によりソフトエラーか、ハードエラーかが診断される。
【００６２】
ＡＳＩＣ１０は、ステップＳ３０８において、自己診断の結果に基づいて、不良を検出したか否かについて判断する。ソフトエラーである場合は不良でないと、ハードエラーである場合は不良であると判断される。不良を検出した場合は（Ｓ３０８：ＹＥＳ）、ハードエラーであるため、ＡＳＩＣ１０は、そのままＦＰＧＡ３０の論理ブロック１１Ｆの使用を継続する。この場合は、ＣＰＵ２０が実行するステップＳ４０９の不良検出か否かの処理も“ＹＥＳ”となり、そのままＦＰＧＡ３０の論理ブロック１１Ｆが使用される。
【００６３】
一方、自己診断の結果不良が検出されなかった場合は(Ｓ３０８：ＮＯ)、ソフトエラーであるため、ステップＳ３０９において、ＡＳＩＣ１０は、ＦＰＧＡ３０の論理ブロック１１Ｆの使用を中止し、ＡＳＩＣ１０の該当論理ブロックを使用する構成に戻す。
【００６４】
具体的には、ステップＳ３０４で切り替えたデータパスを元に戻し、ＦＰＧＡ３０の論理ブロック１１ＦではなくＡＳＩＣ１０の該当論理ブロックを使用するようにする。この時、ＣＰＵ２０は、ステップＳ４０９でＮＯとなり、ステップＳ４１０において、ＦＰＧＡ３０は不要であるので動作を停止させる。
【００６５】
なお、この第２の実施形態では自己診断結果によりソフトエラーか否かを判断しているが、自己診断では検出できないハードエラーの可能性もある。前述のように特定のタイミングや特定のパターンのみで発生する不良の場合は自己診断機能では検出できない可能性がある。
【００６６】
従って、より望ましくは例えばＡＳＩＣ１０の各論理ブロック１１Ａ〜１１Ｅが不良になった回数をＣＰＵ２０でカウントし、一定値以上のカウント値であれば自己診断の結果は不良なしであってもＦＰＧＡ３０の論理ブロック１１Ｆで置き換える構成が良い。若しくは、自己診断回路１５Ａ〜１５Ｅは搭載せず不良となった回数のみで、ＦＰＧＡ３０を使い続けるか、ＡＳＩＣ１０に戻すかを判断しても良い。
【００６７】
この第２の実施形態によると、論理ブロック１１Ａ〜１１Ｅそれぞれが自己診断回路１５Ａ〜１５Ｅにより、発生したエラーがハードウェア的なものであるか、ソフトウェア的なものであるかを診断することができる。これにより、ハードウェア的なエラーである場合には、ＦＰＧＡ３０の論理ブロック１１Ｆをエラーが発生した論理ブロックの代替として使用し、ソフトウェア的なエラーである場合にはそのエラーが発生した論理ブロックを再度使用する制御を行なうことができ、論理ブロック１１Ｆを有効に利用することができる。
【００６８】
（第３の実施形態）
次に、本発明の第３の実施形態を示す。第１、第２の実施形態では、Ｉ／Ｆ変換ブロック１３Ａ，１３Ｂを使用する構成であるが、第３の実施形態は、これらＩ／Ｆ変換ブロック１３Ａ，１３Ｂを使用しない構成である。なお、以下では、第１，第２の実施形態と異なる点について説明し、同一の部分については図示及び説明を省略することとする。
【００６９】
図１３は、第３の実施形態におけるＡＳＩＣ１０とＦＰＧＡ３０の接続構成を示す図である。ＡＳＩＣ１０内の内部バス１２から、ＦＰＧＡ３０内の論理ブロック１１Ｆに直接接続している。この場合のＡＳＩＣ１０およびＣＰＵ２０の処理フローは第１，第２の実施形態と同様である。なお、図１３においては、第２の実施形態で使用する自己診断回路１５Ａ〜１５Ｅの図示は省略している。
【００７０】
この第３の実施形態によると、第１，第２の実施形態のようにＩ／Ｆ変換ブロック１３Ａ，１３Ｂを設ける必要がなく、ＡＳＩＣ１０とＦＰＧＡ３０とを接続しやすいＡＳＩＣ搭載基板１とすることができる。
（第４の実施形態）
【００７１】
次に、本発明の第４の実施形態について説明する。第１〜第３の実施形態の、ＡＳＩＣ１０の構成は図２に示すように論理ブロック１１Ａ〜１１Ｅが内部バス１２により接続されている。しかしながら、各論理ブロック１１Ａ〜１１Ｅは、内部バス１２のみに接続されているが、論理ブロック同士を接続する信号もありえる。例えばエラー検出を示す信号などは内部バス１２経由で伝送を行うと時間がかかるので、論理ブロックから直接伝送したい論理ブロックに伝送することが望ましい。この第４の実施形態では、このように内部バス１２以外に接続するインタフェースがある場合について説明する。なお、以下では、第１〜３の実施形態と異なる点について説明し、同一の部分については図示及び説明を省略することとする。
【００７２】
図１４は、第４の実施形態におけるＡＳＩＣ１０とＦＰＧＡ３０の接続構成を示す図である。図１４に示すように、ＡＳＩＣ１０には内部バス１２以外にも論理ブロック同士を接続する信号線１６Ａ、１６Ｂを有している。なお、図１４においては説明を簡略化するためＡＳＩＣ１０の論理ブロックの数を減らしている。
【００７３】
信号線１６Ａは論理ブロック１１Ａと１１Ｂを接続しており、信号線１６Ｂは論理ブロック１１Ｂと１１Ｃを接続している。この場合、内部バス１２に接続される信号線は前述の通りＩ／Ｆ変換ブロック１３Ａを経由してＦＰＧＡ３０に接続し、残る信号線１６Ａ，１６Ｂに関しては入出力セレクタ１７を経由してＦＰＧＡ３０に接続する。
【００７４】
例えば、論理ブロック１１ＢをＦＰＧＡ３０に実装して置き換える場合を説明する。この時、論理ブロック１１Ａから内部バス１２経由で論理ブロック１１Ｂにアクセスするためには、内部バス１２からＩ／Ｆ変換ブロック１３Ａ、信号線５２Ａ、Ｉ／Ｆ変換ブロック１３Ｂを経由してＦＰＧＡ３０内の論理ブロック１１Ｆにアクセスする。一方、論理ブロック１１Ａから論理ブロック１１Ｂに直接アクセスする場合は、論理ブロック１１Ａから入出力セレクタ１７、信号線５２Ｂを経由してＦＰＧＡ３０内の論理ブロック１１Ｆにアクセスする。ＦＰＧＡ３０内の論理ブロック１１ＦからＡＳＩＣ１０内の論理ブロック１１Ａ〜１１Ｃにアクセスする場合も同様の経路によって成される。
【００７５】
この第４の実施形態によると、内部バス１２を通過する信号以外の信号に対しても対応できるＡＳＩＣ搭載基板１とすることができる。
【００７６】
（第５の実施形態）
次に、本発明の第５の実施形態について説明する。この第５の実施形態は第４の実施形態の別の手段である。なお、以下では、第１〜３の実施形態と異なる点について説明し、同一の部分については図示及び説明を省略することとする。
【００７７】
図１５は、第５の実施形態におけるＡＳＩＣ１０とＦＰＧＡ３０の接続構成を示す図である。図１５に示すように、第５の実施形態では、論理ブロック間の信号もＩ／Ｆ変換ブロック１３Ａ経由でＦＰＧＡ３０と接続する。この第５の実施形態におけるＩ／Ｆ変換ブロック１３Ａで扱うパケットの構成の一例を説明する。図１６は、パケットの構成例を示す図である。図３に示すパケット構成１００では８バイト単位でアドレス欄１０１にアドレス、内容欄１０２にコマンドのデータを有する構成をしていた。しかしながら、この第５の実施形態のパケット構成１５０では、図１６に示すように、アドレス欄１５１にアドレス、内容欄１５２にコマンドデータ及び論理ブロック間信号を有し、７バイト単位でアドレス、コマンドデータ、残る１バイトに論理ブロック間で伝送する信号を格納する構成となっている。なお、図１６においては図示の都合上、論理ブロックアドレス間信号のデータ量が大きく示されている。
【００７８】
論理ブロック間で伝送する信号は前述のようにエラー検出を示す信号など、即時性を求められるものが多い。そのため、パケットの８バイト毎に１バイトの割合で論理ブロック間信号を挿入し、できるだけ速く伝送できるようにしている。
【００７９】
なお、図１６には図示していないが、８バイト毎に論理ブロック間信号を付加する必要は無く、例えばコマンド・アドレス・データは８バイト単位としたまま、そこに１バイトの論理ブロック間信号を挿入しても良い。また、即時性を求めない信号であれば、パケットの先頭や最後に論理ブロック間信号を付加するのみでも良い。
【００８０】
この第５の実施形態によると、内部バス１２を通過する信号以外の信号に対しても対応できるＡＳＩＣ搭載基板１とすることができる。
【００８１】
（第６の実施形態）
次に、本発明の第６の実施形態について説明する。図１７は第６の実施形態におけるＡＳＩＣ１０とＦＰＧＡ３０の接続構成を示す図である。なお、以下では、第１の実施形態と異なる点について説明し、同一の部分については図示及び説明を省略することとする。
【００８２】
図１７に示すように、ＡＳＩＣ１０において、論理ブロック１１Ｃが２つ搭載されている。なお、以下では説明上区別するために２つの論理ブロック１１Ｃを、論理ブロック１１Ｃ１，論理ブロック１１Ｃ２と称することもあることとする。このように構成するのは信頼性を高めるために同じ処理を２つの論理ブロック１１Ｃ１，１１Ｃ２で行い、両論理ブロック１１Ｃ１，１１Ｃ２の結果が一致した場合のみに正常と判断し、結果が異なっている場合はどちらかの論理ブロック１１Ｃ１，１１Ｃ２に異常があると判断するものである。また、ＡＳＩＣ１０には、Ｉ／Ｆ変換ブロック１３Ｃが設けられているとともに説明の都合上第１の実施形態から論理ブロックの数を減らしている。ＦＰＧＡ３０には、Ｉ／Ｆ変換ブロック１３Ｂ，１３Ｄ及び論理ブロック１１Ｆ，１１Ｇが配置されている。Ｉ／Ｆ変換ブロック１３Ｂと論理ブロック１１Ｆとは信号線５６Ａで接続されており、Ｉ／Ｆ変換ブロック１３Ｄと論理ブロック１１Ｇとは信号線５６Ｂで接続されている。さらに、Ｉ／Ｆ変換ブロック１３ＡとＩ／Ｆ変換ブロック１３Ｂは信号線５２Ａで接続され、Ｉ／Ｆ変換ブロック１３ＢとＩ／Ｆ変換ブロックＤは信号線５２Ｂで接続されている。
【００８３】
また、論理ブロック１１Ａ，１１Ｂ，１１Ｃ１，１１Ｃ２、Ｉ／Ｆ変換ブロック１３Ａ，１３Ｃの内部バス１２におけるアドレスは、それぞれ“１”，“２，”“４”，“５”，“６”，“３”となっている。
【００８４】
このような構成の場合、論理ブロック１１Ｃの処理の結果、不良と判断されても、どちらのブロックが不良なのかは判断することができない。従って、この第６の実施形態では、両方の論理ブロック１１Ｃ１，１１Ｃ２をＦＰＧＡ３０に実装し置き換える構成とする。置き換える論理ブロックが２つになるため、Ｉ／Ｆ変換ブロック１３Ａ，１３Ｃの２つをＡＳＩＣ１０内に搭載している。また、同様にＦＰＧＡ３０にもＩ／Ｆ変換ブロック１３Ｂ，１３Ｄを２つ搭載するとともに、論理ブロック１１Ｆ，１１Ｇを２つ搭載し、論理ブロック１１Ｃ１，１１Ｃ２の２つの論理ブロックを実装可能な構成としている。
【００８５】
次に、この第６の実施形態のアドレステーブル１２０とＣＰＵに保存されるテーブル１３０について説明する。図１８は、この第６の実施形態におけるアドレステーブル１２０を示している。アドレステーブル１２０は、ブロック名欄１２１とアドレス欄１２２を有している。ブロック名欄１２１に論理ブロック名が保存され、アドレス欄１２２にそのアドレスが保存されるのは、既述のアドレステーブル１４と同様である。この第６の実施形態では、論理ブロック１１Ｃが２つあるので、論理ブロック１１Ｃが２つブロック名欄１２１に保存され、アドレス欄１２２にアドレス“４”、“５”が保存されている。
【００８６】
図１９は、この第６の実施形態における論理ブロックＩＤとメモリアドレスの対応を示すテーブル１３０を示している。テーブル１３０は、論理ブロックＩＤ欄１３１と先頭アドレス欄１３２を有している。論理ブロック１１Ｃはそれぞれ同じ処理を行うため、論理ブロックＩＤ欄１３１の“００３”、“００４”には、同じ先頭アドレスが保存され、同一の実装データをメモリ４０から読み出せるようになっている。
【００８７】
次に、論理ブロック１１Ｃ１，１１Ｃ２の置換え処理について説明する。図２０は、この置換え処理を行う際のＣＰＵ２０の処理を示すフローチャートである。なお、ステップＳ５０１〜Ｓ５０５の処理は、図６を用いて説明したステップＳ２０１〜Ｓ２０４，Ｓ２０７の処理と同様であるため説明を省略し、以下ではステップＳ５０６〜Ｓ５１０の処理について説明する。また、置換え処理を行う際のＡＳＩＣ１０の処理は、図５と同様であるため図示及び説明を省略する。
【００８８】
ステップＳ５０４で不良ブロックの解析が行なわれると、ステップＳ５０６において、ＣＰＵ２０は対象ブロックが二重化されているか否かを判断する。すなわち、不良が発生した論理ブロックが二重化されているか否かが判断される。この判断は、例えば、ＣＰＵ内に保存された二重化されている論理ブロックの情報に基づいて行なわれる。なお、その情報は予めＣＰＵ２０内に保存しておく。
【００８９】
対象ブロックが二重化されていると判断されなければ（Ｓ５０６：ＮＯ）、ＣＰＵ２０は、ステップＳ５０７において不良ブロックと対応するデータをＦＰＧＡ３０に実装し、ステップＳ５０８において、ＡＳＩＣ１０へ置換え通知及びＡＳＩＣ１０内のパス切り替え指示を行なう。これらの処理は、上記ステップＳ２０５，Ｓ２０６と同様である。
【００９０】
一方、対象ブロックが二重化されていると判断されれば（Ｓ５０６：ＹＥＳ）、ＣＰＵ２０は、ステップＳ５０９において、二重化されたブロックをＦＰＧＡ３０内に実装する。すなわち、二重化された論理ブロックと対応するメモリ４０内に保存された実装データそれぞれをＦＰＧＡ３０内の論理ブロック１１Ｆ、１１Ｇへ書き込む。この際、テーブル１３０が参照され、その二重化された論理ブロックの論理ブロックＩＤと対応する先頭アドレスから読み出された実装データが保存される。メモリ４０には、二重化された論理ブロック２つのデータがまとめて格納されており、ＦＰＧＡ３０内の論理ブロック１１Ｆ，１１Ｇに二重化されたブロックが実装される。
【００９１】
続いて、ステップＳ５１０において、ＣＰＵ２０は、ＡＳＩＣ１０へ置換え通知及びＡＳＩＣ１０内のパス切り替え指示を行なう。
【００９２】
図２１は、不良を検出したブロックが二重化されている場合（すなわち、論理ブロック１１Ｃ１，１１Ｃ２のいずれか不良であった場合）に、置換え処理が行われときのアドレステーブル１４０を示す図である。ブロック名欄１４１に保存された２つの論理ブロック１１Ｃと対応するアドレス欄１４２のアドレスが“３”，“６”となっている。すなわち、アドレステーブル１２０では、論理ブロック１１Ｃ１，１１Ｃ２と対応するアドレス欄１２２のアドレスが“４”，“５”となっていたが、それらがアドレス“３”，“６”へ置き換えられている。これにより、以後の処理ではＡＳＩＣ搭載基板１は、ＦＰＧＡ３０内の論理ブロック１１Ｆ，１１Ｇを論理ブロック１１Ｃ１，１１Ｃ２に代替して使用する。
【００９３】
この第６の実施形態によると、データの信頼性を高める構成を有するＡＳＩＣ搭載基板１にも本発明を適用することができる。
【００９４】
なお、ＦＰＧＡ３０に論理ブロック１１Ｃ１，１１Ｃ２を２つ格納するだけの容量が無い場合は、ＦＰＧＡ３０を２つ用い、それぞれに論理ブロック１１Ｃ１，１１Ｃ２を１つずつ実装するように構成しても良い。
【００９５】
（第７の実施形態）
次に、第７の実施形態について説明する。図２２は第７の実施形態におけるＦＰＧＡ３０の接続構成を示す図である。なお、以下では、第１の実施形態と異なる点について説明し、同一の部分については図示及び説明を省略することとする。
【００９６】
この第７の実施形態では、Ｉ／Ｆ変換ブロック１３内に２つのバッファ１８Ａ，１８Ｂを設けている。また、ＦＰＧＡ３０内に、論理ブロック１１Ｆ，１１Ｇの２つを設け、論理ブロック１１Ｆとバッファ１８Ａ、論理ブロック１１Ｇとバッファ１８Ｂが信号線５７Ａ，５７Ｂを介してそれぞれ接続されている。そして、ＦＰＧＡ３０は、２つの論理ブロック１１Ｆ，１１Ｇを交互に使用し、２つのコマンドを並列処理するように構成されている。なお、この第７の実施形態では、論理ブロックが論理ブロック１１Ｆ，１１Ｇの２つの場合で説明するが、論理ブロックを３つ以上配置する構成としてもよい。
【００９７】
次に、２つの論理ブロックを交互に使用して並列処理するための処理について説明する。先ず、Ｉ／Ｆ変換ブロック１３で信号線５２Ｃより受信したデータが、バッファ１８Ａに格納される。そして、バッファ１８Ａから受け取ったデータは論理ブロック１１Ｆにより処理される。別のデータがＩ／Ｆ変換ブロック１３に到着したら、今度はそのデータはバッファ１８Ｂに格納される。そして、バッファ１８Ｂから受け取ったデータは論理ブロック１１Ｇにより処理される。
【００９８】
最初のデータ、すなわち、論理ブロック１１Ｆで処理されているデータの処理が完了されると、論理ブロック１１Ｆで処理された内容がバッファ１８Ａに格納される。そして、Ｉ／Ｆ変換ブロック１３を介してバッファ１８Ａの内容がＡＳＩＣ１０へ送信される。
【００９９】
さらに、別のデータが到着したら、バッファ１８Ａに格納され、論理ブロック１１Ｆにより処理される。論理ブロック１１Ｇで処理されているデータの処理が完了されると、論理ブロック１１Ｇで処理された内容がバッファ１８Ｂに格納される。そして、Ｉ／Ｆ変換ブロックを介してバッファ１８Ｂの内容がＡＳＩＣ１０へ送信される。
【０１００】
この第７の実施の形態によると、複数のコマンドのデータがＡＳＩＣ１０からＦＰＧＡ３０に送信されたときに、データの並列処理を実現することができるので、ＡＳＩＣ搭載基板１の処理を高速化できる。
【０１０１】
また、この第７の実施形態によると、データを並列処理する構成を有するＡＳＩＣ搭載基板１にも本発明を適用することができる。
【０１０２】
（第８の実施形態）
上述した各実施形態のＡＳＩＣ搭載基板１は、ストレージ装置に搭載することができる。図２３及び図２４はストレージ装置１０００の主要な構成を示す図である。図２３はストレージ装置１０００の前面側の内部構成を示す図であり、図２４はストレージ装置１０００の後面側の内部構成を示す図である。
【０１０３】
ストレージ装置１０００は、ＨＤＤ（Hard Disc Drive）ボックス１００１、論理ユニット１００２、電源部１００３、バッテリ１００４、ファン１００５，１００６を有している。
【０１０４】
ＨＤＤボックス１００１は、複数のＨＤＤが搭載される。論理ユニット１００２には、複数の導体部品を搭載した基板（ＡＳＩＣ搭載基板１を含む）が実装されており、ホスト装置とＨＤＤボックス１００１に搭載されるＨＤＤとの間のデータ転送等の制御を行なう。論理ユニット１００２に搭載される複数の基板は、機能毎に異なる種類の基板を複数搭載したり、同一機能をもつ基板を複数搭載することで多重化を実現する。電源部１００３、バッテリ１００４は、ＨＤＤボックス１００１及び論理ユニット１００２に電源を供給する。
【０１０５】
次に、ストレージ装置にＡＳＩＣ搭載基板を搭載した構成について説明する。図２５は、ＡＳＩＣ搭載基板１を搭載したストレージ装置１０００の内部構成の一例を示す図である。
【０１０６】
ストレージ装置１０００は、ホスト装置１１００，１１０１と接続されている。また、ディスクスアレイ装置１０００内に配置される論理ユニット１００２は、ホスト装置１１００，１１０１と接続されているとともにディスクドライブ装置１６００，１６０１と接続されている。なお、ディスクドライブ装置１６００，１６０１は、ＨＤＤボックス１００１内に搭載されたＨＤＤを用いて構成される。論理ユニット１００２は、ホスト装置１１００，１１０１と、ディスクドライブ装置１６００，１６０１との間に接続されており、例えば、ホスト装置１１００からのライトデータをディスクドライブ装置１６００に書き込み、ホスト装置１１００からの指示に基づいてディスクドライブ装置１６００内に保存されているデータをリードする。なお、この実施形態では、ホスト装置１１００，１１０１、ディスクドライブ装置１６００，１６０１のようにホスト装置、ディスクドライブ装置をそれぞれ２台ずつ配置する構成で説明しているが、これに限るものではない。
【０１０７】
論理ユニット１００２は、４種類で６つの基板が搭載されている。６つの基板は、チャネルアダプタボード１２００，１２１０、スイッチボード１３００、キャッシュボード１４００、ディスクアダプタボード１５００，１５１０である。
【０１０８】
チャネルアダプタボード１２００は、ホスト装置１１００とストレージ装置１０００とを接続する役割を持つボードである。チャネルアダプタボード１２００には、チャネルアダプタＬＳＩ１２０１、ＣＰＵ１２０２，１２０３、プロトコルチップ１２０４，１２０５が搭載されている。プロトコルチップ１２０４，１２０５は、ホスト装置１１００とチャネルアダプタＬＳＩ１２０１と接続している。また、チャネルアダプタＬＳＩ１２０１は、ＣＰＵ１２０２，１２０３とそれぞれ接続しているとともに、スイッチボード１３００と接続している。
【０１０９】
チャネルアダプタボード１２１０は、ホスト装置１１０１とストレージ装置１００とを接続する役割を持つボードである。チャネルアダプタボード１２１０には、チャネルアダプタＬＳＩ１２１１、ＣＰＵ１２１２，１２１３、プロトコルチップ１２１４，１２１５が搭載されている。プロトコルチップ１２１４，１２１５は、ホスト装置１１０１とチャネルアダプタＬＳＩ１２１１と接続している。また、チャネルアダプタＬＳＩ１２１１は、ＣＰＵ１２１２，１２１３とそれぞれ接続しているとともに、スイッチボード１３００と接続している。
【０１１０】
スイッチボード１３００は、チャネルアダプタボード１２００，１２１０、キャッシュボード１４００、ディスクアダプタボード１５００，１５１０間のデータ転送を制御する役割を持つボードである。スイッチボード１３００には、上記データ転送を制御するスイッチＬＳＩ１３０１が搭載されている。
【０１１１】
キャッシュボード１４００は、ホスト装置１１００，１１０１からディスクドライブ装置１６００，１６０１へのライトデータ、ディスクドライブ装置１６００，１６０１からのリードデータを一時的に保持する役割を持つボードである。キャッシュボード１４００には、上記ライトデータ及びリードデータを一時的に保持する機能を制御するキャッシュＬＳＩ１４０１及びデータを保持するための大容量のメモリ１４０２が搭載されている。キャッシュＬＳＩ１４０１は、スイッチＬＳＩ１３０１と接続している。また、メモリ１４０２はキャッシュＬＳＩ１４０１と接続している。なお、メモリ１４０２としては、例えば、ＤＩＭＭ（Double Inline Memory Module）が用いられる。
【０１１２】
ディスクアダプタボード１５００は、ディスクドライブ装置１６００，１６０１へのデータの書き込み、又は、ディスクドライブ装置１６００，１６０１に保存されたデータの読み出しを制御するボードである。ディスクアダプタボード１５００には、ディスクアダプタＬＳＩ１５０１、ＣＰＵ１５０２，１５０３、プロトコルチップ１５０４，１５０５が搭載されている。プロトコルチップ１５０４，１５０５は、ディスクアダプタＬＳＩ１５０１とディスクドライブ装置１６００，１６０１と接続している。また、ディスクアダプタＬＳＩ１５０１は、ＣＰＵ１５０２，１５０３とそれぞれ接続しているとともに、スイッチＬＳＩ１５０１と接続している。
【０１１３】
ディスクアダプタボード１５１０は、ディスクドライブ装置１６００，１６０１へのデータの書き込み、又は、ディスクドライブ装置１６００，１６０１に保存されたデータの読み出しを制御するボードである。ディスクアダプタボード１５１０には、ディスクアダプタＬＳＩ１５１１、ＣＰＵ１５１２，１５１３、プロトコルチップ１５１４，１５１５が搭載されている。プロトコルチップ１５１４，１５１５は、ディスクアダプタＬＳＩ１５１１とディスクドライブ装置１６００，１６０１と接続している。また、ディスクアダプタＬＳＩ１５１１は、ＣＰＵ１５１２，１５１３とそれぞれ接続しているとともに、スイッチＬＳＩ１５０１と接続している。
【０１１４】
このようにストレージ装置１０００内に搭載されたチャネルアダプタボード１２００，１２１０、スイッチボード１３００、キャッシュボード１４００、ディスクアダプタボード１５００，１５１０にそれぞれ搭載されているチャネルアダプタＬＳＩ１２０１，１２１１、スイッチＬＳＩ１３０１、キャッシュＬＳＩ１４０１、ディスクアダプタＬＳＩ１５０１、１５１１に第１から第７の実施形態で説明したＡＳＩＣ搭載基板１を適用する。
【０１１５】
この第８の実施形態によると、チャネルアダプタＬＳＩ１２０１，１２１１、スイッチＬＳＩ１３０１、キャッシュＬＳＩ１４０１、ディスクアダプタＬＳＩ１５０１、１５１１が動作中に論理ブロックの不良を検出しても、停止することなく動作を継続することができ、動作の信頼性を高めたストレージ装置１０００とすることができる。
【０１１６】
（他の実施形態）
なお、以上で説明した各実施形態は本発明の一例を示すものであり、本発明に対して何ら制限的な意味を有するものではない。
【０１１７】
例えば、実施例で示した構成はＡＳＩＣ１０とＦＰＧＡ３０は基板上に１つのみ搭載した構成しているが、ＡＳＩＣを複数搭載またはＦＰＧＡを複数搭載、さらにはＡＳＩＣとＦＰＧＡを複数搭載することも可能である。
【０１１８】
別の例としては、ＡＳＩＣ１０は内部バス１２を通して論理ブロックと接続されているが、内部バス１２を用いない構成でも適用可能である。さらに別の例ではＡＳＩＣ１０、ＣＰＵ２０、ＦＰＧＡ３０が同一基板１上に実装されているが、それぞれ別々の基板に搭載されており、その基板同士をコネクタ等で接続する構成でも良い。また、例えばＡＳＩＣ１０とＦＰＧＡ３０を同一パッケージに搭載したマルチチップモジュール（ＭＣＭ）構成であっても良い。
【０１１９】
また、既述の上記実施形態においては、本発明を、論理ブロック１１Ａ〜１１Ｅを有するＡＳＩＣ１０と、ＡＳＩＣ１０に接続するとともに論理ブロック１１Ｆを有する書換え可能なＦＰＧＡ３０と、論理ブロック１１Ａ〜１１Ｅで実行される用途を実現するためのコンフィギュレーション情報を保存するメモリ４０と、ＡＳＩＣ１０の動作中に論理ブロック１１Ａ〜１１Ｅの不良を検出した場合に、論理ブロック１１Ｆに不良を検出した論理ブロックと対応するメモリ４０に保存されたコンフィギュレーション情報を書き込み、不良を検出した論理ブロックの代替として論理ブロック１１Ｆを使用する制御を行なうＣＰＵ１０を備えるＡＳＩＣ搭載基板１について適用した場合で説明したが、本発明は、既述の実施形態に限られるものではない。
【０１２０】
さらに、既述の上記実施形態においては、本発明を、外部のホスト装置１１００，１１０１と情報の授受を行うためのチャネルアダプタＬＳＩ１２０１，１２０１が搭載されたチャネルアダプタボード１２００，１２１０と、外部のディスクドライブ装置１６００，１６０１とデータの授受を行うためのディスクアダプタＬＳＩ１５０１，１５１１が搭載されたディスクアダプタボード１５００と、ホスト装置１１００，１１０１と外部のディスクドライブ装置１６００，１６０１との間で授受する情報を一時的に保持するためのキャッシュＬＳＩ１４０１が搭載されたキャッシャボード１４００と、チャネルアダプタボード１２００，１２１０とキャッシュボード１４００およびディスクアダプタボード１５００，１５１０間のデータ転送を制御するためのスイッチＬＳＩ１３０１が搭載されたスイッチボード１３００とを備えたストレージ装置１０００であって、チャネルアダプタボード１２００，１２１０、ディスクアダプタボート１５００，１５１０、キャッシュボード１４０及びスイッチボード１３００の各ボードに搭載されたチャネルアダプタＬＳＩ１２０１，１２１１、ディスクアダプタＬＳＩ１５０１，１５１１、キャッシュＬＳＩ１４０１、スイッチＬＳＩ１３０１は、それぞれ、論理ブロック１１Ａ〜１１Ｅを有するＡＳＩＣ１０と、ＡＳＩＣ１０に接続するとともに論理ブロック１１Ｆを有する書換え可能なＦＰＧＡ３０と、論理ブロック１１Ａ〜１１Ｅで実行される用途を実現するためのコンフィギュレーション情報を保存するメモリ４０と、ＡＳＩＣ１０の動作中に論理ブロック１１Ａ〜１１Ｅの不良を検出した場合に、論理ブロック１１Ｆに不良を検出した論理ブロックと対応するメモリ４０に保存されたコンフィギュレーション情報を書き込み、不良を検出した論理ブロックの代替として論理ブロック１１Ｆを使用する制御を行なうＣＰＵ１０を備えるストレージ装置１０００について適用した場合で説明したが、本発明は、既述の実施形態に限られるものではない。
【産業上の利用可能性】
【０１２１】
本発明は、半導体集積回路装置及びその半導体集積回路装置を備えるストレージ装置に広く適用することができる。
【図面の簡単な説明】
【０１２２】
【図１】本発明の第１の実施形態に係わる回路基板の構成を示す図である。
【図２】同実施形態に係わる第１の大規模集積回路と第２の大規模集積回路の内部構成を示す図である。
【図３】同実施形態に係わるパケット化したデータの一例を説明するための図である。
【図４】同実施形態に係わるアドレステーブルの一例を示す図である。
【図５】同実施形態に係わる第１の大規模集積回路における処理を示すフローチャートである。
【図６】同実施形態に係わる制御部における処理を示すフローチャートである。
【図７】同実施形態に係わるコンフィギュレーション情報の一例を示すフローチャートである。
【図８】同実施形態に係わる論理ブロックＩＤとメモリアドレスの対応を示すテーブルを示す図。
【図９】同実施形態に係わる処理を行った後のアドレステーブルを示す図である。
【図１０】本発明の第２の実施形態に係わる回路基板を示すブロック図である。
【図１１】同実施形態に係わる第１の大規模集積回路における処理を示すフローチャートである。
【図１２】同実施形態に係わる制御部における処理を示すフローチャートである。
【図１３】本発明の第３の実施形態における第１の大規模集積回路と第２の大規模集積回路の接続構成を示す図である。
【図１４】本発明の第４の実施形態における第１の大規模集積回路と第２の大規模集積回路の接続構成を示す図である。
【図１５】本発明の第５の実施形態における第１の大規模集積回路と第２の大規模集積回路の接続構成を示す図である。
【図１６】同実施形態に係わる伝送されるデータの一例を説明するための図である。
【図１７】本発明の第６の実施形態における第１の大規模集積回路と第２の大規模集積回路の接続構成を示す図である。
【図１８】同実施形態に係わるアドレステーブルを示す図である。
【図１９】同実施形態に係わる論理ブロックＩＤとメモリアドレスの対応を示すテーブルを示す図である。
【図２０】同実施形態に係わる制御部における処理を示すフローチャートである。
【図２１】同実施形態に係わる処理を行った後のアドレステーブルを示す図である。
【図２２】本発明の第７の実施形態に係わる第２の大規模集積回路の構成を示す図である。
【図２３】同実施形態に係わるストレージ装置の前面側の内部構成を示す図である。
【図２４】同実施形態に係わるストレージ装置の後面側の内部構成を示す図である。
【図２５】同実施形態に係わる第１の大規模集積回路を搭載したストレージ装置の内部構成の一例を示す図である。
【符号の説明】
【０１２３】
１…ＡＳＩＣ搭載基板、１０…ＡＳＩＣ、１１Ａ〜１１Ｆ…論理ブロック、１２…内部バス、１３Ａ，１３Ｃ…Ｉ／Ｆ変換ブロック、１４，１４´…アドレステーブル、２０…ＣＰＵ、３０…ＦＰＧＡ、４０…メモリ、１０００…ディスクアレイ装置、１００２…論理ユニット、１２００，１２１０…チャネルアダプタボード、１３００…スイッチボード、１４００…キャッシュボード、１５００，１５１０…ディスクアダプタボード
【図１】
2009065547.tif 000003
【図２】
2009065547.tif 000004
【図３】
2009065547.tif 000005
【図４】
2009065547.tif 000006
【図５】
2009065547.tif 000007
【図６】
2009065547.tif 000008
【図７】
2009065547.tif 000009
【図８】
2009065547.tif 000010
【図９】
2009065547.tif 000011
【図１０】
2009065547.tif 000012
【図１１】
2009065547.tif 000013
【図１２】
2009065547.tif 000014
【図１３】
2009065547.tif 000015
【図１４】
2009065547.tif 000016
【図１５】
2009065547.tif 000017
【図１６】
2009065547.tif 000018
【図１７】
2009065547.tif 000019
【図１８】
2009065547.tif 000020
【図１９】
2009065547.tif 000021
【図２０】
2009065547.tif 000022
【図２１】
2009065547.tif 000023
【図２２】
2009065547.tif 000024
【図２３】
2009065547.tif 000025
【図２４】
2009065547.tif 000026
【図２５】
2009065547.tif 000027