図面 (/)

技術 コンフィグレーション制御システム及びコンフィグレーション制御方法

出願人 日本電気株式会社
発明者 池内克尚
出願日 2014年3月4日 (6年9ヶ月経過) 出願番号 2015-522586
公開日 2017年2月23日 (3年10ヶ月経過) 公開番号 WO2014-199678
状態 特許登録済
技術分野 ストアードプログラム 論理回路III
主要キーワード 特定サイクル 起動面 リデザイン 連続可 商品寿命 コンフィグレーション制御 再コンフィグレーション 試作機
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年2月23日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (19)

課題・解決手段

ソフトエラーが発生した場合に、システムダウンすることなくFPGAを起動させることができること。LSI内部の論理回路プログラミングすることができる第1の半導体チップと、第1の半導体チップの複数の回路情報を記憶する半導体メモリと、半導体メモリに記憶されている回路情報を用いて、半導体チップへのコンフィグレーションを制御するにあたり、複数の回路情報のいずれかでコンフィグレーションに失敗した場合、複数の回路情報のうちの他の回路情報で再コンフィグレーションを行う第2の半導体チップとを備える。

概要

背景

FPGA(Field Programmable Gate Array)は、デジタル機器ネットワーク機器の進歩を支えているデジタル回路を構成するLSI(Large Scale Integration)の一つである。LSIは、機器の中で信号処理や制御等を実行する論理LSIとデータやプログラム蓄積するメモリに大別される。FPGAは、このうちの論理LSIに分類される。

通常の暮らしのなかでは、消費者がFPGAを目にする機会はほとんどない。しかしながら、電子機器開発者試作機を作って完成度を高めていく過程では、必ずと言っていいほどFPGAを使っている。また、最近では、消費者が購入する製品の中にもFPGAが搭載されるようになった。

FPGAは、カスタムLSIであるASIC(Application Specific IntegratedCircuit)、標準LSIであるASSP(Application Specific Standard Products)、マイクロプロセッサ等、他の論理LSIにはない固有の特徴を持っている。固有の特徴とは、電子回路を自由にプログラミングできるという特徴である。この特徴は、複雑化、大規模化、高コスト化商品寿命短期化が進む電子機器の開発トレンドに、ピタリと合っていると言える。

マイクロプロセッサの登場で、ソフトウェア書き換えて機器の機能を自由に変更できるようになった。しかしながら、マイクロプロセッサを用いても、使う演算器の種類やメモリの構成といった、ハードウェアまで変更することはできなかった。FPGAを使った場合には、性能向上や消費電力の低減等に向けて、ハードウェアである回路構成を自由に変更できる。FPGAの応用は、こうした特徴のために、携帯電話基地局や半導体製造装置のような最先端産業機器から、デジタル家電モバイル機器等、身の周りの機器まで広がっている。

このような背景に関連する技術としては、様々なものが知られている(例えば、特許文献1〜3参照。)。

例えば、特許文献1には、CPU(Central Processing Unit)と、メモリと、これらCPU及びメモリの配下のバスと、このバス上に配置され、FPGAのコンフィグレーション制御をなすコンフィグレーション制御手段とを含む情報処理システムが記載されている。より具体的に説明すると、この情報処理システムは、コンフィグレーション制御の開始から終了までの間、FPGAをバスから切り離すためのバススイッチを含む。このようにして、この情報処理システムには、コンフィグレーション制御されるFPGAがシステムバス等を収容している場合、リセット信号をバススイッチのイネーブル信号として使用して、バスからFPGAを分離し、システム連続可用性を実現させるという効果がある。

また、例えば、特許文献2には、電源投入後の起動時に、第1のメモリ及び第2のメモリに記憶された論理回路データのうちのいずれか一方のメモリの論理回路データを読み出しコンフィグレーションし、論理回路の構成を決定するプログラマブル論理回路の起動保証方法が記載されている。より具体的に説明すると、このプログラマブル論理回路の起動保証方法は、プログラマブル論理回路の起動時において、プログラマブル論理回路が、初期化を行った後に、第1のメモリに記憶された論理回路データを読み出し、コンフィグレーションを行ってこれが完了するまでのプログラマブル論理回路におけるコンフィグレーションの経過時間を監視し、経過時間が設定時間を超えると、第1のメモリが異常であると判断して異常通知信号を発生する。そして、このプログラマブル論理回路の起動保証方法は、異常通知信号を受信すると、第1のメモリを第2のメモリに切り替え、第2のメモリに記憶された論理回路データを用いて再度プログラマブル論理回路に対してコンフィグレーションを行わせる。このようにして、このプログラマブル論理回路の起動保証方法を用いると、コンフィグレーション用の第1のメモリが故障している場合でも、自動的に第2のメモリに切り替えてプログラマブル論理回路のコンフィグレーションを実行できる。

また、例えば、特許文献3には、電源投入後に第1のコンフィグレーションROM(Read only Memory)及び第2のコンフィグレーションROMに記憶された回路情報をFPGAが読み込んでFPGAをコンフィグレーションするコンフィグレーション手法が記載されている。より具体的に説明すると、このコンフィグレーション手法は、最初にFPGAが第1のコンフィグレーションROMからコンフィグレーションを開始する。そして、このコンフィグレーション手法は、第1のコンフィグレーションROMからコンフィグレーションしているときに、FPGAからコンフィグレーションエラー検出信号が出力された場合は、コンフィグレーション経路を第2のコンフィグレーションROMに切り替え、第2のコンフィグレーションROMからコンフィグレーションを開始する。このようにして、このコンフィグレーション手法を用いると、電源投入してからFPGAが起動するまでの時間を短縮しつつ、FPGAの起動を保証することができる。

概要

ソフトエラーが発生した場合に、システムダウンすることなくFPGAを起動させることができること。LSI内部の論理回路をプログラミングすることができる第1の半導体チップと、第1の半導体チップの複数の回路情報を記憶する半導体メモリと、半導体メモリに記憶されている回路情報を用いて、半導体チップへのコンフィグレーションを制御するにあたり、複数の回路情報のいずれかでコンフィグレーションに失敗した場合、複数の回路情報のうちの他の回路情報で再コンフィグレーションを行う第2の半導体チップとを備える。

目的

ソフトエラーとは、地表に到達するα線中性子線等の宇宙線が原因で起きる現象であり、半導体チップの記憶部データが一時的に書き換えられていたり、フリップフロップ論理値反転したりすることである

効果

実績

技術文献被引用数
1件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

LSI内部の論理回路プログラミングすることができる第1の半導体チップと、前記第1の半導体チップの複数の回路情報が記憶される半導体メモリと、前記半導体メモリに記憶されている前記回路情報を用いて、前記第1の半導体チップへのコンフィグレーションを制御するにあたり、前記複数の回路情報のいずれかでコンフィグレーションに失敗した場合、前記複数の回路情報のうちの他の回路情報で再コンフィグレーションを行う第2の半導体チップとを備えるコンフィグレーション制御ステム

請求項2

前記第2の半導体チップが、前記半導体メモリに記憶されている前記回路情報のうち、いずれの回路情報を用いてコンフィグレーションを行ったのかを前記第1の半導体チップへ通知するための信号線を有する請求項1に記載のコンフィグレーション制御システム。

請求項3

前記半導体メモリには、前記コンフィグレーションに用いられた前記回路情報を示す起動面情報と、各回路情報の開始位置及び終了位置を示すアドレス情報とが更に記憶される請求項1又は2に記載のコンフィグレーション制御システム。

請求項4

半導体メモリに記憶されているLSI内部の論理回路をプログラミングすることができる第1の半導体チップの複数の回路情報を用いて、前記第1の半導体チップへのコンフィグレーションを制御するにあたり、前記複数の回路情報のいずれかでコンフィグレーションに失敗した場合、前記複数の回路情報のうちの他の回路情報で再コンフィグレーションを行う段階を備えるコンフィグレーション制御方法。

技術分野

0001

本発明は、コンフィグレーション制御ステム及びコンフィグレーション制御方法に関する。

背景技術

0002

FPGA(Field Programmable Gate Array)は、デジタル機器ネットワーク機器の進歩を支えているデジタル回路を構成するLSI(Large Scale Integration)の一つである。LSIは、機器の中で信号処理や制御等を実行する論理LSIとデータやプログラム蓄積するメモリに大別される。FPGAは、このうちの論理LSIに分類される。

0003

通常の暮らしのなかでは、消費者がFPGAを目にする機会はほとんどない。しかしながら、電子機器開発者試作機を作って完成度を高めていく過程では、必ずと言っていいほどFPGAを使っている。また、最近では、消費者が購入する製品の中にもFPGAが搭載されるようになった。

0004

FPGAは、カスタムLSIであるASIC(Application Specific IntegratedCircuit)、標準LSIであるASSP(Application Specific Standard Products)、マイクロプロセッサ等、他の論理LSIにはない固有の特徴を持っている。固有の特徴とは、電子回路を自由にプログラミングできるという特徴である。この特徴は、複雑化、大規模化、高コスト化商品寿命短期化が進む電子機器の開発トレンドに、ピタリと合っていると言える。

0005

マイクロプロセッサの登場で、ソフトウェア書き換えて機器の機能を自由に変更できるようになった。しかしながら、マイクロプロセッサを用いても、使う演算器の種類やメモリの構成といった、ハードウェアまで変更することはできなかった。FPGAを使った場合には、性能向上や消費電力の低減等に向けて、ハードウェアである回路構成を自由に変更できる。FPGAの応用は、こうした特徴のために、携帯電話基地局や半導体製造装置のような最先端産業機器から、デジタル家電モバイル機器等、身の周りの機器まで広がっている。

0006

このような背景に関連する技術としては、様々なものが知られている(例えば、特許文献1〜3参照。)。

0007

例えば、特許文献1には、CPU(Central Processing Unit)と、メモリと、これらCPU及びメモリの配下のバスと、このバス上に配置され、FPGAのコンフィグレーション制御をなすコンフィグレーション制御手段とを含む情報処理システムが記載されている。より具体的に説明すると、この情報処理システムは、コンフィグレーション制御の開始から終了までの間、FPGAをバスから切り離すためのバススイッチを含む。このようにして、この情報処理システムには、コンフィグレーション制御されるFPGAがシステムバス等を収容している場合、リセット信号をバススイッチのイネーブル信号として使用して、バスからFPGAを分離し、システムの連続可用性を実現させるという効果がある。

0008

また、例えば、特許文献2には、電源投入後の起動時に、第1のメモリ及び第2のメモリに記憶された論理回路データのうちのいずれか一方のメモリの論理回路データを読み出しコンフィグレーションし、論理回路の構成を決定するプログラマブル論理回路の起動保証方法が記載されている。より具体的に説明すると、このプログラマブル論理回路の起動保証方法は、プログラマブル論理回路の起動時において、プログラマブル論理回路が、初期化を行った後に、第1のメモリに記憶された論理回路データを読み出し、コンフィグレーションを行ってこれが完了するまでのプログラマブル論理回路におけるコンフィグレーションの経過時間を監視し、経過時間が設定時間を超えると、第1のメモリが異常であると判断して異常通知信号を発生する。そして、このプログラマブル論理回路の起動保証方法は、異常通知信号を受信すると、第1のメモリを第2のメモリに切り替え、第2のメモリに記憶された論理回路データを用いて再度プログラマブル論理回路に対してコンフィグレーションを行わせる。このようにして、このプログラマブル論理回路の起動保証方法を用いると、コンフィグレーション用の第1のメモリが故障している場合でも、自動的に第2のメモリに切り替えてプログラマブル論理回路のコンフィグレーションを実行できる。

0009

また、例えば、特許文献3には、電源投入後に第1のコンフィグレーションROM(Read only Memory)及び第2のコンフィグレーションROMに記憶された回路情報をFPGAが読み込んでFPGAをコンフィグレーションするコンフィグレーション手法が記載されている。より具体的に説明すると、このコンフィグレーション手法は、最初にFPGAが第1のコンフィグレーションROMからコンフィグレーションを開始する。そして、このコンフィグレーション手法は、第1のコンフィグレーションROMからコンフィグレーションしているときに、FPGAからコンフィグレーションエラー検出信号が出力された場合は、コンフィグレーション経路を第2のコンフィグレーションROMに切り替え、第2のコンフィグレーションROMからコンフィグレーションを開始する。このようにして、このコンフィグレーション手法を用いると、電源投入してからFPGAが起動するまでの時間を短縮しつつ、FPGAの起動を保証することができる。

先行技術

0010

日本特開2004−021867号公報
日本特開2010−066961号公報
日本特開2012−190368号公報

発明が解決しようとする課題

0011

プログラマブルデバイスは、デバイスプロセス微細化が進み、消費電力、性能、コスト等の観点で恩恵を受けられるようになってきた一方で、宇宙線に起因するソフトエラーの影響を受けやすい。

0012

そのため、プログラマブルデバイスは、ハードウェア障害でないのにも関わらず、正常に起動しない現象が見られるようになり、そのたびにハードウェア改修を実施しなければならず、余計な工数費用が発生してしまう。また、FPGAがスタックしてシステムダウンした場合には、運用中の顧客にも迷惑をかけてしまうことから、フェールセーフの観点からも問題がある。ソフトエラーとは、地表に到達するα線中性子線等の宇宙線が原因で起きる現象であり、半導体チップの記憶部データが一時的に書き換えられていたり、フリップフロップ論理値反転したりすることである。

0013

ソフトエラーは、ハードウェアの故障ではなく一過性の不良であるため、再現性がなく解析が困難ではあるが、一般的には、誤り検出訂正回路実装して、ソフトエラーの検出、訂正を行うことで回避が可能である。FPGAは、同様に、コンフィグレーション時にソフトエラーが原因で回路情報であるビットストリームのあるビットが反転してしまうことがある。FPGAは、内部にCRC(Cyclic Redundancy Check)回路ハードIP(Intellectual Property)を実装し、入力される回路情報の異常を検出する仕組みを有する。しかしながら、FPGAを搭載するシステムとしては、回路情報に異常が生じることで以下の問題が発生する。

0014

第1の問題は、FPGA側ではCRC回路を用いて回路情報の異常を検出することはできるが、異常ビットを訂正することができないことである。

0015

第2の問題は、第1の問題のために、ハードウェアの故障ではないのにも関わらずFPGAを起動させることができず、システムとしてスタックしてしまうことである。

0016

第3の問題は、第2の問題の状態では、CPU等からFPGAにアクセスすることができないため、システムに実装されているソフトウェアは、FPGAのハードウェア故障としか認識することができないことである。

0017

第4の問題は、開発フェーズの段階であれば、マニュアル電源オンオフシステムリセット等を行い、コンフィグレーションを再度実施すればよいが、運用中のシステムではマニュアルでの復旧は容易ではないことである。

0018

これらのために、FPGAを搭載するシステムは、ハードウェア故障としてカテゴライズされてしまうために、顧客の同意を得られないことになる。

0019

一方、特許文献1に記載の技術を用いた場合、FPGAのコンフィグレーションを行う間、リセット信号に応答してFPGAを切り離してしまうために、ソフトエラーが発生した場合に、システムダウンすることなくFPGAを起動させることができない。

0020

また、特許文献2に記載の技術を用いた場合、コンフィグレーション時間を測定して、その時間が、ある閾値を超えたことを判断するコンフィグレーション用異常監視回路を備える必要がある。通常、コンフィグレーション時間は、FPGAのデバイスの種類に応じて変動するために、使用するFPGAごとに、コンフィグレーション用異常監視回路をリデザインしなければならず、回路構成が複雑化する。そして、特許文献2に記載の技術を用いると、コンフィグレーション用メインメモリ(第1のメモリ)とコンフィグレーション用サブメモリ(第2のメモリ)の両方が異常を示した場合、無限ループに陥ることになる。

0021

そして、特許文献3に記載の技術を用いた場合、電源オン後に最初に読み込む回路情報は、第1のコンフィグレーションROMに記憶されているデータに限定される。そのため、特許文献3に記載の技術を用いた場合、第1のコンフィグレーションROMに記憶されているデータでコンフィグレーションに失敗し、第2のコンフィグレーションROMに記憶されているデータでコンフィグレーションに成功した場合、その後に第1のコンフィグレーションROMに記憶されているデータを修復する必要がある。また、特許文献3に記載の技術を用いた場合、コンフィグレーションROM内のデータを更新する際に、第2のコンフィグレーションROMに最初に更新データを書き込んでから、第1のコンフィグレーションROMに更新データを再度書込み直さなければならない。

0022

このように、特許文献1〜3に記載の技術を用いると、ソフトエラーが発生した場合に、システムダウンすることなくFPGAを起動させることができないなどの様々な問題が生じる。

0023

本発明の目的は、上述した課題を解決するコンフィグレーション制御システム及びコンフィグレーション制御方法を提供することにある。

課題を解決するための手段

0024

上記課題を解決するために、本発明の第1の形態は、コンフィグレーション制御システムであって、LSI内部の論理回路をプログラミングすることができる第1の半導体チップと、前記第1の半導体チップの複数の回路情報が記憶される半導体メモリと、前記半導体メモリに記憶されている前記回路情報を用いて、前記第1の半導体チップへのコンフィグレーションを制御するにあたり、前記複数の回路情報のいずれかでコンフィグレーションに失敗した場合、前記複数の回路情報のうちの他の回路情報で再コンフィグレーションを行う第2の半導体チップとを備える。

0025

本発明の第2の形態は、コンフィグレーション制御方法であって、半導体メモリに記憶されているLSI内部の論理回路をプログラミングすることができる第1の半導体チップの複数の回路情報を用いて、前記第1の半導体チップへのコンフィグレーションを制御するにあたり、前記回路情報のいずれかでコンフィグレーションに失敗した場合、前記複数の回路情報のうちの他の回路情報で再コンフィグレーションを行う段階を備える。

0026

なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群サブコンビネーションもまた、発明となり得る。

発明の効果

0027

以上の説明から明らかなように、この発明は、ソフトエラーが発生した場合に、システムダウンすることなくFPGAを起動させることができる。

図面の簡単な説明

0028

一実施形態に係るコンフィグレーション制御システム100のブロック構成の一例を示す図である。
コンフィグレーション制御システム100の基本的なコンフィグレーションシーケンスを説明するフローチャートである。
フラッシュメモリ101のアドレスマップの一例を示す図である。
図3のフラッシュメモリ101のアドレスマップにアドレス値を挿入した図である。
フラッシュメモリ101、102のアドレスマップの一例を示す図である。
図5のフラッシュメモリ101、102のアドレスマップにアドレス値を挿入した図である。
PLD103の状態遷移図である。
コンフィグレーション制御システム100の具体的なコンフィグレーションシーケンスを説明するフローチャートである。
コンフィグレーション制御システム100の具体的なコンフィグレーションシーケンスを説明するフローチャートである。
コンフィグレーション制御システム100の具体的なコンフィグレーションシーケンスを説明するフローチャートである。
コンフィグレーション制御システム100の具体的な振る舞いの一例を示す図である。
コンフィグレーション制御システム100の具体的な振る舞いの一例を示す図である。
コンフィグレーション制御システム100の具体的な振る舞いの一例を示す図である。
コンフィグレーション制御システム100の具体的な振る舞いの一例を示す図である。
コンフィグレーション制御システム100の具体的な振る舞いの一例を示す図である。
コンフィグレーション制御システム100の具体的な振る舞いの一例を示す図である。
コンフィグレーション制御システム100の具体的な振る舞いの一例を示す図である。
コンフィグレーション制御システム100の具体的な振る舞いの一例を示す図である。

実施例

0029

以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではなく、また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。

0030

図1は、一実施形態に係るコンフィグレーション制御システム100のブロック構成の一例を示す。コンフィグレーション制御システム100は、FPGA、PLD(Programmable Logic Device)に回路情報を書き込むシステムである。

0031

コンフィグレーション制御システム100は、フラッシュメモリ101、フラッシュメモリ102、PLD103、FPGA104、CPU105、パソコン106、および、JTAG(Joint Test Action Group)インターフェース110を備える。

0032

フラッシュメモリ101及びフラッシュメモリ102は、データの消去、書き込みを自由に行うことができ、電源を切っても内容が消えない半導体メモリの一種である。例えば、フラッシュメモリ101及びフラッシュメモリ102は、CFI(Common Flash Interface)を介して、PLD103に接続されている。そして、フラッシュメモリ101及びフラッシュメモリ102には、デザイン固有のプログラミングデータを有する、2つの第1回路情報A及び第2回路情報Bが記憶される。また、フラッシュメモリ101及びフラッシュメモリ102は、第1回路情報Aを記憶するための第1記憶領域(図3、5参照)C、第2回路情報Bを記憶するための第2記憶領域(図3、5参照)Dを有する。また、フラッシュメモリ101及びフラッシュメモリ102は、いずれの回路情報A(B)でコンフィグレーションを行うかを示す起動面情報を記憶するための起動面情報領域(図3、5参照)Eを有する。また、フラッシュメモリ101及びフラッシュメモリ102は、各回路情報A、Bの開始位置を示す開始アドレス値と各回路情報A、Bの終了位置を示す終了アドレス値とを記憶するための開始/終了アドレス情報領域(図3、5参照)Fを有する。なお、ここでは、各回路情報A、Bを起動面として取り扱う。フラッシュメモリ101及びフラッシュメモリ102は、本発明における「半導体メモリ」の一例である。

0033

PLD103は、揮発性プログラマブルデバイスであって、フラッシュメモリ101及びフラッシュメモリ102に記憶されている各回路情報A、Bを読み出して、FPGA104のコンフィグレーションシーケンスをコントロールする機能を担う。PLD103は、インターフェースConfig I/Fを通じてFPGA104に接続されている。PLD103は、フラッシュメモリ101及びフラッシュメモリ102に記憶されている各回路情報A、Bを読み出して、FPGA104に対し、それら各回路情報A、Bにて実装するコンフィグレーションを行う。そして、PLD103は、フラッシュメモリ101及びフラッシュメモリ102に記憶されている各回路情報A、Bのうちのいずれの回路情報A(B)でコンフィグレーションを行ったかをFPGA104に通知するための信号線107を有する。信号線107は、1bit信号を転送する信号線であり、FPGA104がコンフィグレーションを行っている間は、PLD103からのレベル信号をFPGA104に与える。PLD103は、本発明における「第2の半導体チップ」の一例である。PLD103は、第1回路情報Aでコンフィグレーションに失敗した場合、他の第2回路情報Bで再コンフィグレーションを行わせるためのリトライシーケンサを有する。

0034

FPGA104は、PLD103から受け取った各回路情報A、Bを監視して各回路情報A、Bにソフトエラー等に起因するデータ化けが発生していないかの整合性チェックを実施する。FPGA104は、本発明における「第1の半導体チップ」の一例である。FPGA104は、ケーブル108を通じてCPU105に接続されている。

0035

CPU105は、バージョンアップ等に伴ってFPGA104の回路を更新する際に、CPU105からFPGA104を経由し、インターフェースOriginal I/Fを通じてフラッシュメモリ101及びフラッシュメモリ102に各回路情報A、Bを書き込ませる。

0036

パソコン106は、ケーブル109に接続されたJTAGインターフェース110ならびにケーブル111および112を介してPLD103、FPGA104に接続されている。また、パソコン106は、ケーブル113を通じてCPU105に接続されている。

0037

図2は、コンフィグレーション制御システム100の基本的な制御動作を説明するフローチャートである。この場合、コンフィグレーション制御システム100は、単一のフラッシュメモリ101を有し、フラッシュメモリ101は、第1記憶領域Cに第1回路情報Aを記憶し、第2記憶領域Dに第2回路情報Bを記憶することができる。なお、コンフィグレーション制御システム100がフラッシュメモリ101及びフラッシュメモリ102を有する場合、フラッシュメモリ101は、第1記憶領域Cに第1回路情報Aを記憶し、フラッシュメモリ102は、第2記憶領域Dに第2回路情報Bを記憶することができる。CPU105は、制御を開始すると、パワーオンリセットか再コンフィグレーション指示を実行する(ステップS101)。次に、PLD103は、フラッシュメモリ101に記憶されている2つの回路情報A、Bのうち、一方の第1回路情報Aをリードする(ステップS102)。続いて、PLD103は、第1回路情報AのリードデータをFPGA104に送信する(ステップS103)。そして、FPGA104は、受信した第1回路情報Aのデータに対してソフトエラーの有無をチェックする(ステップS104)。次に、CPU105は、ソフトエラーが発生しているか否かを判定する(ステップS105)。FPGA104は、ステップS105の判定結果が「F(False)」の場合、第1回路情報Aのデータでコンフィグレーションを実施する(ステップS106)。次に、FPGA104は、すべてのデータをコンフィグレーションした後に、ユーザモード切り替わり、第1回路情報Aのデータのデザインで起動する(ステップS107)。そして、CPU105は、正常運用を行う(ステップS108)。

0038

FPGA104は、ステップS105の判定結果が「T(True)」の場合、第1回路情報AのデータでのコンフィグレーションのNG(No Good)を検出する(ステップS109)。次に、PLD103は、フラッシュメモリ101に記憶されている2つの回路情報A、Bのうち、他方の第2回路情報Bをリードする(ステップS110)。続いて、PLD103は、第2回路情報BのリードデータをFPGA104に送信する(ステップS111)。そして、FPGA104は、受信した第2回路情報Bのデータに対してソフトエラーの有無をチェックする(ステップS112)。次に、CPU105は、ソフトエラーが発生しているか否かを判定する(ステップS113)。FPGA104は、ステップS113の判定結果が「F(False)」の場合、第2回路情報Bのデータでコンフィグレーションを実施する(ステップS114)。次に、FPGA104は、すべてのデータをコンフィグレーションした後に、ユーザモードに切り替わり、第2回路情報Bのデータのデザインで起動する(ステップS115)。そして、CPU105は、ソフトエラー検出か正常運用を行う(ステップS116)。

0039

FPGA104は、ステップS113の判定結果が「T(True)」の場合、第2回路情報BのデータでのコンフィグレーションのNGを検出する(ステップS117)。すると、FPGA104は、スタックしてアクセス不可となる(ステップS118)。そして、CPU105は、ハードウェア障害を検出する(ステップS119)。なお、フラッシュメモリ101及びフラッシュメモリ102を有するコンフィグレーション制御システム100の場合も、上記と同様なルーチンを実行することができる。

0040

図3は、フラッシュメモリ101のアドレスマップの一例を示す図である。フラッシュメモリ101は、第1記憶領域Cに第1回路情報Aを記憶し、第2記憶領域Dに第2回路情報Bを記憶する。フラッシュメモリ101は、NBlockのうちの(N−2)/2Blockに相当する範囲の第2回路情報Bを記憶するための第2記憶領域Dを有する。フラッシュメモリ101は、NBlockのうちの(N−2)/2Blockに相当する範囲の第1回路情報Aを記憶するための第1記憶領域Cを有する。フラッシュメモリ101は、NBlockのうちの1Blockに相当する範囲の起動面情報領域Eを有する。フラッシュメモリ101は、NBlockのうちの1Blockに相当する範囲の開始/終了アドレス情報領域Fを有する。なお、図3を含め、以下の図4、5、6においては、第1記憶領域Cを回路情報A格納領域Cと記載し、第2記憶領域Dを回路情報B格納領域Dと記載する。

0041

図4は、図3に示したフラッシュメモリ101のアドレスマップにアドレス値を挿入した図である。フラッシュメモリ101の記憶容量は、128Mbitである。第2記憶領域Dのアドレス値は、0x7FFFFFから0x410000である。第1記憶領域Cのアドレス値は、0x40FFFFから0x020000である。起動面情報領域Eのアドレス値は、0x010000であって、図4の例では回路情報AでFPGA104を起動することを示す0x0(0x0:ConfigA、0x1:ConfigB)が記憶されている。開始/終了アドレス情報領域Fのアドレス値は、0x000003から0x000000である。0x000003には、0x7Fが回路情報B格納領域Dの終了アドレス(ConfigB End Address)として記憶されている。0x000002には、0x41が回路情報B格納領域Dの開始アドレス(ConfigB Start Address)として記憶されている。0x000001には、0x40が回路情報A格納領域Cの終了アドレス(ConfigA End Address)として記憶されている。0x000000には、0x02が回路情報A格納領域Cの開始アドレス(ConfigA Start Address)として記憶されている。なお、開始/終了アドレス情報領域Fに記憶されたアドレス値は、実アドレス値ではなく、下位16bitを省略した値が記憶されている。これは、フラッシュメモリ101は、データbit幅の最小単位が8bitであるために、1ブロック分(0x010000)の領域がわかる上位8bitのアドレス領域を示す値だけを記憶し、フラッシュメモリ101から読み出しを行ったPLD103で下位16bitを補完する(すなわち、開始アドレスの場合には「0x0000」を補完し、終了アドレスの場合には「0xFFFF」を補完する)ようにしているからである。

0042

図5は、コンフィグレーション制御システム100がフラッシュメモリ101及びフラッシュメモリ102を有する場合におけるアドレスマップの一例を示す図である。フラッシュメモリ101は、第1記憶領域Cに第1回路情報Aを記憶し、フラッシュメモリ102は、第2記憶領域Dに第2回路情報Bを記憶する。フラッシュメモリ101は、NBlockのうちの(N−2)Blockに相当する範囲の第1回路情報Aを記憶するための第1記憶領域Cを有する。フラッシュメモリ101は、NBlockのうちの1Blockに相当する範囲の起動面情報領域Eを有する。フラッシュメモリ101は、NBlockのうちの1Blockに相当する範囲の第1回路情報A用の開始/終了アドレス情報領域Fを有する。フラッシュメモリ102には、フラッシュメモリ101と同様に、デザイン固有のプログラミングデータを有する、第2回路情報Bが記憶される。フラッシュメモリ102は、NBlockのうちの(N−2)Blockに相当する範囲の第2回路情報Bを記憶するための第2記憶領域Dを有する。フラッシュメモリ102は、NBlockのうちの1Blockに相当する範囲の未使用領域Gを有する。フラッシュメモリ102は、NBlockのうちの1Blockに相当する範囲の第2回路情報B用の開始/終了アドレス情報領域Fを有する。フラッシュメモリ102は、起動面情報領域Eを有さない。

0043

図6は、図5に示したフラッシュメモリ101及びフラッシュメモリ102のアドレスマップにアドレス値を挿入した図である。フラッシュメモリ101及びフラッシュメモリ102の記憶容量は、256Mbitである。フラッシュメモリ101において、第1記憶領域Cのアドレス値は、0xFFFFFFから0x020000である。起動面情報領域Eのアドレス値は、0x010000であって、図6の例では回路情報BでFPGA104を起動することを示す0x1(0x0:ConfigA、0x1:ConfigB)が記憶されている。開始/終了アドレス情報領域Fのアドレス値は、0x000001から0x000000である。0x000001には、0xFFが回路情報A格納領域Cの終了アドレス(ConfigA End Address)として記憶されている。0x000000には、0x02が回路情報A格納領域Cの開始アドレス(ConfigA Start Address)として記憶されている。フラッシュメモリ102において、第2記憶領域Dのアドレス値は、0xFFFFFFから0x020000である。未使用領域Gのアドレス値は、0x01FFFFから0x010000である。開始/終了アドレス情報領域Fのアドレス値は、0x000001から0x000000である。0x000001には、0xFFが回路情報B格納領域Dの終了アドレス(ConfigB End Address)として記憶されている0x000000には、0x02が回路情報B格納領域Dの開始了アドレス(ConfigB Start Address)として記憶されている。なお、この場合も、開始/終了アドレス情報に記憶されたアドレス値は、実アドレス値ではなく、下位16bitを省略した値である。

0044

図7は、PLD103の状態遷移図である。STATE1は、PLD103のリセット後の初期状態であり、PLD103は、PLD103内の全レジスタを初期状態に戻し、FPGA104へ出力するコンフィグレーション開始信号ディスエーブルにし、無条件でSTATE2に遷移する。

0045

STATE2では、STATE1から遷移してきた場合、PLD103は、フラッシュメモリ101及びフラッシュメモリ102の起動面情報をリードする。STATE2では、STATE4から遷移してきた場合、PLD103は、PLD103の内部で保持している起動面情報を、二回目のコンフィグレーションを実施するために反転する。なお、このとき、STATE2では、PLD103は、FPGA104へ出力するコンフィグレーション開始信号をイネーブルにし、特定サイクル後にSTATE3に遷移する。

0046

STATE3では、FPGA104がコンフィグレーション可能になる。すなわち、STATE3は、PLD103がFPGA104からコンフィグレーション指示信号が来るのを待つ状態である。なお、このとき、STATE3では、PLD103は、FPGA104へ出力するコンフィグレーション開始信号をディスエーブルにし、FPGA104からコンフィグレーション指示信号がアサートされるとSTATE4に遷移する。

0047

STATE4では、PLD103は、FPGA104のコンフィグレーション完了を待つ。STATE4では、PLD103は、FPGA104からコンフィグレーション完了信号がアサートされるとSTATE5に遷移する。STATE4では、コンフィグレーション中にFPGA104からコンフィグレーション指示信号がデアサート、すなわち、コンフィグレーションNG状態となると、PLD103は、PLD103の内部に有するコンフィグレーションNGカウンタカウントアップして、カウンタ値=1(一回目のコンフィグレーションNG)の場合、PLD103はSTATE2に遷移する。STATE4では、カウンタ値=2(二回目のコンフィグレーションNG)の場合、PLD103はSTATE7に遷移する。

0048

STATE5は、FPGA104のコンフィグレーションが完了した状態である。STATE5では、FPGA104からのユーザモード切替信号があれば、その信号がアサートされた場合、もしくは、特定サイクル後に、PLD103はSTATE6に遷移する。

0049

STATE6は、FPGA104のコンフィグレーションが完了し、かつ、ユーザモードへ移行した状態である。STATE6では、CPU105よりFPGA104経由で再コンフィグレーション指示信号を受けると、PLD103はSTATE1に遷移する。また、STATE6では、FPGA104からコンフィグレーション指示信号がデアサートされる(FPGA104異常状態)と、PLD103はSTATE1に遷移する。

0050

STATE7は、FPGA104のコンフィグレーションが異常終了した状態である。STATE7では、CPU105よりFPGA104経由で再コンフィグレーション指示信号を受けると、PLD103はSTATE1に遷移する。また、STATE7では、FPGA104からコンフィグレーション指示信号がデアサートされる(FPGA104異常状態)と、PLD103はSTATE1に遷移する。

0051

図8から図10は、コンフィグレーション制御システム100の具体的なコンフィグレーションシーケンスをそれぞれ説明するフローチャートである。なお、ここでは、コンフィグレーション制御システム100が単一のフラッシュメモリ101を有する場合について説明するが、コンフィグレーション制御システム100がフラッシュメモリ101及びフラッシュメモリ102を有する場合も、同様なルーチンを実行することができる。まず、CPU105は、コンフィグレンスシケンスの実行を始める(ステップS201)。次に、CPU105は、FPGA104が起動しているか否かを判定する(ステップS202)。CPU105は、ステップS202の判定結果が「T(True)」の場合、運用中もしくは評価中を想定する(ステップS203)。そして、CPU105は、FPGA104およびPLD103を順次介して(図面では、FPGA104→PLD103と記載する)、フラッシュメモリ101に各回路情報A、Bをライト(具体的には、ブロックイレース→ライト、すなわち、ブロックイレースを行ってからライト)する(ステップS204)。次に、CPU105は、Verifyを実施し、書き込まれたデータが正しいかどうかを確認する(ステップS205)。そして、CPU105は、フラッシュメモリ101の起動面情報領域Eに、各回路情報A、BのいずれでFPGA104を起動させるかの情報をライト(ブロックイレース→ライト)する(ステップS206)。続いて、CPU105は、FPGA104を介して、PLD103にコンフィグレーションを要求する(ステップS207)。そして、CPU105は、電源の安定後に、PLD103を起動させる(ステップS208)。

0052

一方、CPU105は、ステップS202の判定結果が「F(False)」の場合、評価中を想定する(ステップS209)。そして、CPU105は、JTAGインターフェース110より、FPGA104およびPLD103を順次介して、フラッシュメモリ101に各回路情報A、Bをライト(ブロックイレース→ライト)する(ステップS210)。次に、CPU105は、JTAGインターフェース110よりFPGA104およびPLD103を順次介して、Verifyを実施し、書き込まれたデータが正しいかどうかを確認する(ステップS211)。そして、CPU105は、JTAGインターフェース110よりFPGA104およびPLD103を順次介して、フラッシュメモリ101の起動面情報領域Eに、各回路情報A、BのいずれでFPGA104を起動させるかの情報をライト(ブロックイレース→ライト)する(ステップS212)。続いて、CPU105は、Power On Reset(電源オンリセット)を実行する(ステップS213)。そして、CPU105は、電源の安定後に、PLD103を起動させる(ステップS208)。

0053

ステップS208の後に、PLD103は、FPGA104に対してコンフィグレーション開始信号を送信する(ステップS214)。次に、PLD103は、フラッシュメモリ101の起動面情報領域Eをリードして、各回路情報A、Bのいずれでコンフィグレーションを行うかを確認する(ステップS215)。続いて、PLD103は、有効なコンフィグレーションデータが記憶されているアドレス情報を、フラッシュメモリ101の開始/終了アドレス情報領域Fからリードする(ステップS216)。続いて、PLD103は、開始/終了アドレスに従い、フラッシュメモリ101から有効な回路情報を順次リード及び整形してFPGA104に送信する(ステップS217)。そして、FPGA104は、受信したデータに対してCRCチェックを実施する(ステップS218)。続いて、CPU105は、受信途中にCRCエラーが発生したか否かを判定する(ステップS219)。

0054

そして、FPGA104は、ステップS219の判定結果が「T(True)」の場合、最後のデータを受信した後に、PLD103に対してコンフィグレーション完了信号を送信する(ステップS220)。次に、FPGA104は、コンフィグレーションの完了に伴い、ユーザモードへ移行する。続いて、PLD103は、FPGA104に対していずれの起動面でコンフィグレーションが完了したのかを新たに追加した信号線107で通知する(ステップS222)。次に、PLD103は、自身のコンフィグレーションNGカウンタをリセット(カウンタ値0)する(ステップS223)。そして、PLD103は、FPGA104に対してソフトウェアリセットを実施する(ステップS224)。

0055

この結果、FPGA104は、起動完了となる(ステップS225)。次に、FPGA104は、ステップS222で得た信号を自身の起動情報レジスタに記憶する(ステップS226)。続いて、CPU105は、FPGA104の起動情報レジスタにリードアクセスする(ステップS227)。そして、FPGA104は、ステップS226における起動情報レジスタの値をCPU105に通知する(ステップS228)。次に、CPU105は、ステップS206で得た値とステップS228で得た値とを比較する(ステップS229)。続いて、CPU105は、ステップS206で得た値とステップS228で得た値とが等しいか否かを判定する(ステップS230)。

0056

FPGA104は、ステップS230の判定結果が「T(True)」の場合、期待した回路情報で起動を行う(ステップS231)。これに反して、FPGA104は、ステップS230の判定結果が「F(False)」の場合、期待していない回路情報で起動を行う(ステップS232)。そのため、CPU105は、これ以降の処理は、システム仕様に依存したものとして、例えば、ソフトエラー障害と判断した後に、ステップS207からのルーチンを再実行する等の処理を行う(ステップS233)。

0057

一方、FPGA104は、ステップS219の判定結果が「F(False)」の場合、PLD103に対してコンフィグレーションNG信号を送信する(ステップS234)。次に、PLD103は、コンフィグレーションNGカウンタをカウントアップする(ステップS235)。そして、PLD103は、コンフィグレーションNGカウンタの値が「2」であるか否かを判定する(ステップS236)。

0058

PLD103は、ステップS236の判定結果が「T(True)」の場合、コンフィグレーションの必要がないと判断する。すなわち、PLD103は、コンフィグレーションを各回路情報A、Bで実行済みであると判断する(ステップS237)。次に、PLD103は、コンフィグレーションNGカウンタをリセット(カウンタ値0)して動作を終了する(ステップS238)。このため、CPU105は、FPGA104の起動がNGであって、ハードウェア故障と判断する(ステップS239)。

0059

PLD103は、ステップS236の判定結果が「F(False)」の場合、起動面情報が示す起動面とは反対の起動面の回路情報で再コンフィグレーションを行う必要があると判断する(ステップS240)。次に、PLD103は、起動面情報が示す起動面とは反対の起動面の回路情報のアドレス情報を、フラッシュメモリ101の開始/終了アドレス情報領域Fからリードする(ステップS241)。そして、ステップS217からのルーチンが再び実行される。

0060

図11及び図12は、ソフトエラーが発生しない場合のコンフィグレーション制御システム100の具体的な振る舞いの一例を示す図である。なお、ここでは、コンフィグレーション制御システム100が単一のフラッシュメモリ101を有する場合について説明するが、コンフィグレーション制御システム100がフラッシュメモリ101及びフラッシュメモリ102を有する場合も、同様なルーチンを実行することができる。まず、CPU105は、FPGA104に対して第1回路情報Aでの起動指示を与える(ステップS301)。次に、FPGA104は、PLD103に対して第1回路情報Aでの起動指示を与える(ステップS302)。そして、PLD103は、起動面情報領域Eをブロックイレースする(ステップS303)。このとき、PLD103は、アドレス値0x010000を含む領域をブロックイレースする。また、PLD103は、起動面情報領域Eに0x0をライトする(ステップS304)。すなわち、PLD103は、アドレス値0x010000に0x0をライトして、第1回路情報Aをコンフィグレーション対象に設定する。

0061

次に、CPU105は、FPGA104に対してコンフィグレーション指示を行う(ステップS305)。続いて、FPGA104は、PLD103に対してコンフィグレーション指示を行う(ステップS306)。そして、PLD103は、FPGA104に対してコンフィグレーション命令を与える(ステップS307)。また、PLD103は、フラッシュメモリ101のアドレス値0x010000にリードアクセスする(ステップS308)。そして、PLD103は、起動面情報をリードする(ステップS309)。そして、PLD103は、読み出された0x0に従って、第1回路情報Aをコンフィグレーション対象に設定する。次に、PLD103は、フラッシュメモリ101のアドレス値0x000000にリードアクセスする(ステップS310)。すなわち、PLD103は、第1回路情報Aの開始アドレス値を照会して、第1回路情報Aの開始アドレス値0x02をリードする(ステップS311)。次に、PLD103は、アドレス値0x000001にリードアクセスする(ステップS312)。すなわち、PLD103は、第1回路情報Aの終了アドレス値を照会して、第1回路情報Aの終了アドレス値0x40をリードする(ステップS313)。次に、PLD103は、アドレス値0x020000にリードアクセスする(ステップS314)。そして、PLD103は、第1回路情報Aの先頭のデータをリードする(ステップS315)。このとき、PLD103は、リードした第1回路情報AのデータをConfig I/F用に整形する。そして、PLD103は、第1回路情報Aの先頭のデータをFPGA104に送信する(ステップS316)。このとき、FPGA104は、先頭のデータがCRCチェックに合格するため、先頭のデータの書き込みを行う。

0062

次に、PLD103は、アドレス値0x020001にリードアクセスする(ステップS317)。そして、PLD103は、第1回路情報Aの2番目のデータをリードする(ステップS318)。このとき、PLD103は、リードしたデータをConfig I/F用に整形する。そして、PLD103は、第1回路情報Aの2番目のデータをFPGA104に送信する(ステップS319)。このとき、FPGA104は、2番目のデータがCRCチェックに合格するため、2番目のデータの書き込みを行う。

0063

その後、PLD103は、アドレス値0xXXXXXX(<0x410000)にリードアクセスする(ステップS320)。そして、PLD103は、アドレス値0xXXXXXX(<0x410000)のデータをリードする。例えば、PLD103は、最終的に、第1回路情報Aの最後のデータをリードする(ステップS321)。このとき、PLD103は、リードした第1回路情報AのデータをConfig I/F用に整形する。そして、PLD103は、リードした第1回路情報Aの最後のデータをFPGA104に送信する(ステップS322)。このとき、FPGA104は、最後のデータがCRCチェックに合格するため、最後のデータの書き込みを行う。続いて、FPGA104は、PLD103に対してコンフィグレーションの完了を通知する(ステップS323)。このとき、PLD103は、第1回路情報Aで起動したことを確認する。

0064

次に、PLD103は、FPGA104に対して0x0をレベル信号として通知する(ステップS324)。このとき、FPGA104は、通知された0x0から、第1回路情報Aで起動したことを認識する。また、PLD103は、コンフィグレーションNGカウンタ値をリセット(カウンタ値0)する。そして、PLD103は、FPGA104に対してソフトウェアリセットを実施する(ステップS325)。このとき、FPGA104は、起動され、起動情報レジスタに0x0を記憶する。

0065

続いて、CPU105は、FPGA104の起動情報レジスタにリードアクセスする(ステップS326)。そして、FPGA104は、0x0をリードして、このデータをCPU105に送信する(ステップS327)。その結果、CPU105は、期待した第1回路情報AでFPGA104が起動したことを確認することになる。

0066

図13から図15は、最初のコンフィグレーションがNGになった場合のコンフィグレーション制御システム100の具体的な振る舞いの一例を示す図である。なお、ここでは、コンフィグレーション制御システム100が単一のフラッシュメモリ101を有する場合について説明するが、コンフィグレーション制御システム100がフラッシュメモリ101及びフラッシュメモリ102を有する場合も、同様なルーチンを実行することができる。なお、ステップS401からステップS420までは、ステップS301からステップS320までと同様なので説明を省略する。PLD103は、第1回路情報AのK番目のデータをリードする(ステップS421)。このとき、PLD103は、リードした第1回路情報AのデータをConfig I/F用に整形する。そして、PLD103は、リードした第1回路情報AのK番目のデータをFPGA104に送信する(ステップS422)。このとき、FPGA104では、CRCチェックがNGとなる。続いて、FPGA104は、PLD103に対してコンフィグレーションNGを通知する(ステップS423)。このため、PLD103は、コンフィグレーションNGカウンタをカウントアップ(カウンタ値+1)する。CPU105は、第2回路情報Bでコンフィグレーションする必要があると判断する。

0067

次に、PLD103は、フラッシュメモリ101のアドレス値0x000002にリードアクセスする(ステップS424)。すなわち、PLD103は、第2回路情報Bの開始アドレス値を照会して、第2回路情報Bの開始アドレス値0x41をリードする(ステップS425)。そして、PLD103は、アドレス値0x000003にリードアクセスする(ステップS426)。すなわち、PLD103は、第2回路情報Bの終了アドレス値を照会して、第2回路情報Bの終了アドレス値をリードする(ステップS427)。その結果、PLD103は、第2回路情報Bの終了アドレス値0x7Fをリードする。次に、PLD103は、アドレス値0x410000にリードアクセスする(ステップS428)。そして、PLD103は、第2回路情報Bの先頭のデータをリードする(ステップS429)。このとき、PLD103は、リードした第2回路情報BのデータをConfig I/F用に整形する。そして、PLD103は、第2回路情報Bの先頭のデータをFPGA104に送信する(ステップS430)。このとき、FPGA104は、先頭のデータがCRCチェックに合格するため、先頭のデータの書き込みを行う。

0068

次に、PLD103は、アドレス値0x410001にリードアクセスする(ステップS431)。そして、PLD103は、第2回路情報Bの2番目のデータをリードする(ステップS432)。このとき、PLD103は、リードしたデータをConfig I/F用に整形する。そして、PLD103は、第2回路情報Bの2番目のデータをFPGA104に送信する(ステップS433)。このとき、FPGA104は、2番目のデータがCRCチェックに合格するため、2番目のデータの書き込みを行う。

0069

次に、PLD103は、アドレス値0xYYYYYYにリードアクセスする(ステップS434)。そして、PLD103は、アドレス値0xYYYYYY(≦0x7FFFFF)のデータをリードする。例えば、PLD103は、最終的に、第2回路情報Bの最後のデータをリードする(ステップS435)。このとき、PLD103は、リードした第2回路情報BのデータをConfig I/F用に整形する。そして、PLD103は、リードした第2回路情報Bの最後のデータをFPGA104に送信する(ステップS436)。このとき、FPGA104は、最後のデータがCRCチェックに合格するため、最後のデータの書き込みを行う。続いて、FPGA104は、PLD103に対してコンフィグレーションの完了を通知する(ステップS437)。このとき、PLD103は、第2回路情報Bで起動したことを確認する。

0070

次に、PLD103は、FPGA104に対して0x1をレベル信号として通知する(ステップS438)。その結果、FPGA104は、通知された0x1から、第2回路情報Bで起動したことを認識する。また、PLD103は、コンフィグレーションNGカウンタ値をリセット(カウンタ値0)する。そして、PLD103は、FPGA104に対してソフトウェアリセットを実施する(ステップS439)。その結果、FPGA104は、起動され、起動情報レジスタに0x1を記憶する。

0071

続いて、CPU105は、FPGA104の起動情報レジスタにリードアクセスする(ステップS440)。そして、FPGA104は、0x1をリードしてCPU105に送信する(ステップS441)。その結果、CPU105は、期待していない第2回路情報BでFPGA104が起動したことを確認することになる。

0072

図16から図18は、二回目のコンフィグレーションもNGになった場合のコンフィグレーション制御システム100の具体的な振る舞いの一例を示す図である。なお、ここでは、コンフィグレーション制御システム100が単一のフラッシュメモリ101を有する場合について説明するが、コンフィグレーション制御システム100がフラッシュメモリ101及びフラッシュメモリ102を有する場合も、同様なルーチンを実行することができる。なお、ステップS501からステップS533までは、ステップS401からステップS433までと同様なので説明を省略する。PLD103は、第2回路情報Bの2番目のデータをFPGA104に送信する(ステップS533)。このとき、FPGA104は、2番目のデータがCRCチェックに合格するため、2番目のデータの書き込みを行う。

0073

次に、PLD103は、アドレス値0xYYYYYYにリードアクセスする(ステップS534)。そして、PLD103は、アドレス値0xYYYYYY(≦0x7FFFFF)のデータをリードする。そして、PLD103は、第2回路情報BのM番目のデータをリードする(ステップS535)。このとき、PLD103は、リードした第2回路情報BのデータをConfig I/F用に整形する。そして、PLD103は、リードした第2回路情報BのM番目のデータをFPGA104に送信する(ステップS536)。このとき、FPGA104では、M番目のデータのCRCチェックがNGになる。続いて、FPGA104は、PLD103に対してコンフィグレーションのNGを通知する(ステップS537)。このとき、PLD103は、コンフィグレーションNGカウンタをカウントアップ(カウンタ値+1=2)する。また、CPU105は、第1回路情報A、第2回路情報Bのいずれでもコンフィグレーションに失敗したため、これ以上のコンフィグレーションは不要であると判断する。そして、PLD103は、コンフィグレーションNGカウンタ値をリセット(カウンタ値0)する。

0074

そして、FPGA104は、スタックする。次に、CPU105は、FPGA104の起動情報レジスタにリードアクセスする(ステップS538)。しかし、FPGA104へのレジスタアクセスタイムアウトになる(ステップS539)。このため、CPU105は、FPGA104に起因したハードウェア故障があると判断する。

0075

上述したように、コンフィグレーション制御システム100は、各回路情報A、Bとして同一の回路情報を使用してフラッシュメモリ101及びフラッシュメモリ102に記憶しているために、一方のデータA(B)でソフトエラーが発生しても、もう一方のデータB(A)で正常起動させることができる。そのため、コンフィグレーション制御システム100は、システムダウンすることなくソフトエラーが発生する前と同一の機能で運用することが可能となり、特に頻繁にパワーオンシーケンスが起こるようなシステムに対して有効に適用できる。

0076

また、コンフィグレーション制御システム100は、各回路情報A、Bとして同一のデータが記憶されていて第1回路情報Aで運用中にデータのバージョンアップを行いたい場合、フラッシュメモリ101及びフラッシュメモリ102の第2回路情報Bの領域だけにバージョンアップデータ上書きした後、上書きしたデータでコンフィグレーションを行うことになる。この時、上書きしたデータがソフトエラーでコンフィグレーションNGになった場合、既存の第1回路情報Aで再コンフィグレーションを実施することで既存のバージョンに戻してシステムを起動することができる。そのため、コンフィグレーション制御システム100は、システムダウンせず、CPU105側より上書きしたデータでコンフィグレーション要求を再度行うことが可能となる。このように、コンフィグレーション制御システム100は、FPGA104のデザインの不具合修正機能追加等で、回路情報をバージョンアップしたい場合にも有効である。

0077

以上説明したように、コンフィグレーション制御システム100において、PLD103は、第1回路情報Aでコンフィグレーションに失敗した場合、第2回路情報Bで再コンフィグレーションを行う。従って、コンフィグレーション制御システム100は、ソフトエラーが発生した場合に、システムダウンすることなくFPGA104を起動させることができる。

0078

また、コンフィグレーション制御システム100において、PLD103は、フラッシュメモリ101及びフラッシュメモリ102に記憶されている各回路情報A、Bのうちのいずれかでコンフィグレーションを行ったかを通知するための単一の信号線107を有するために、複雑な回路構成になることがなく、簡素な回路構成にできる。

0079

そして、コンフィグレーション制御システム100において、フラッシュメモリ101の起動面情報領域Eは、起動面情報を記憶でき、フラッシュメモリ101及びフラッシュメモリ102の開始/終了アドレス情報領域Fは、開始/終了アドレス情報を記憶できる。

0080

さらに、コンフィグレーション制御システム100において、PLD103は、コンフィグレーションに失敗した場合に、再コンフィグレーションを行うためのリトライシーケンサを有するために、コンフィグレーションの精度を向上できる。

0081

さらにまた、コンフィグレーション制御システム100において、各回路情報A、Bは、同一の回路情報を使用してフラッシュメモリ101及びフラッシュメモリ102に記憶されているために、一方のデータA(B)でソフトエラーが発生しても、もう一方のデータB(A)で正常起動させることができる。従って、コンフィグレーション制御システム100は、システムダウンすることなくソフトエラーが発生する前と同一の機能で運用することが可能となり、特に頻繁にパワーオンシーケンスが起こるようなシステムに対して有効である。

0082

コンフィグレーション制御方法において、PLD103は、ソフトエラーが発生した場合に、システムダウンすることなくFPGA104を起動させることができる。

0083

なお、コンフィグレーション制御システム及びコンフィグレーション制御方法は、前述した一実施形態に限定するものでなく、適宜な変形や改良等が可能である。

0084

この出願は、2013年6月12日に出願された日本出願特願2013−123473号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

0085

本発明は、例えば、FPGAなどの半導体チップを備えたシステムに適用することができる。本発明は、ソフトエラーが発生してもシステムダウンすることなくFPGAを起動させることができる。

0086

100コンフィグレーション制御システム
101フラッシュメモリ
102 フラッシュメモリ
103PLD
104FPGA
105 CPU
106パソコン
107信号線
108ケーブル
109 ケーブル
110 JTAGインターフェース
111 ケーブル
112 ケーブル
113 ケーブル
A 第1回路情報
B 第2回路情報
C 第1記憶領域
D 第2記憶領域
E起動面情報領域
F 開始/終了アドレス情報領域

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 富士通クライアントコンピューティング株式会社の「 情報処理システムおよび中継装置」が 公開されました。( 2020/10/29)

    【課題】情報処理システムの正常性を確保する。【解決手段】第1情報処理装置2Aの更新制御部40Aは、中継装置3に設けられた電源制御マイコン302のファームウェアを更新する。第1情報処理装置2Aの再起動通... 詳細

  • 紫光華山信息技術有限公司の「 オペレーティングシステムのインストール」が 公開されました。( 2020/10/29)

    【課題・解決手段】本発明は、オペレーティングシステムをインストールするための方法及び装置を提供する。当該方法の一例示によると、仮システムにおいて、磁気ディスクアレイRAIDをユーザが指定する操作に応じ... 詳細

  • 富士ゼロックス株式会社の「 管理装置」が 公開されました。( 2020/10/29)

    【課題】基本アプリケーションプログラムが使用不可能な状態になるのに伴って、その派生アプリケーションプログラムに従って外部装置と行われる通信に関連して行われる処理に支障が出るのを防ぐ。【解決手段】取得部... 詳細

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ