(57)【要約】【課題】フラッシュＲＯＭに保存されたプログラムにエラーが生じたときに、正常なデータを用いて確実に復旧させることができる回路基板を提供する。【解決手段】回路基板を、第１のメモリ１１と、プロセッサ１２と、ゲートアレイ１３と、スイッチ回路１４と、第２のメモリ１５を備える構成とする。プロセッサ１２は、第１のメモリ１１に保持されているプログラムを実行する。ゲートアレイ１３は、第２のメモリ１５のデータを基に、外部からデータを受信するコントローラを形成する。ゲートアレイ１３は、第１のメモリ１１に保持されているデータの異常が検知されたときに、外部から入力されるコンフィギュレーションデータに基づいて、第１のメモリ１１とゲートアレイ１３を接続する制御信号をスイッチ回路１４に出力する回路と、外部から入力される正常なデータに基づいて第１のメモリ１１に保持されているプログラムを更新する回路と形成する。【選択図】      図１
2019040302.tif 000002
【特許請求の範囲】
【請求項１】
保持しているプログラムのデータを書き換える手段を有する第１のメモリと、
前記第１のメモリに保持されている前記プログラムを実行するプロセッサと、
コンフィギュレーションデータに基づいた回路パターンを形成するゲートアレイと、
前記ゲートアレイから入力される制御信号に基づいて、前記第１のメモリと、前記プロセッサまたは前記ゲートアレイのいずれかとを接続するスイッチ回路と
外部とデータの送受信を行うコントローラとして動作する第１の回路パターンを形成するコンフィギュレーションデータを初期コンフィギュレーションデータとして保持している第２のメモリと
を備え、
前記ゲートアレイは、起動時に、前記第２のメモリから読み出す前記初期コンフィギュレーションデータに基づいて前記第１の回路パターンを形成し、
前記第１のメモリに保持されている前記データの異常が検知されたときに、前記コントローラを介して外部から入力されるコンフィギュレーションデータに基づいて、前記第１のメモリと前記ゲートアレイを接続する前記制御信号を前記スイッチ回路に出力する回路と、外部から入力される正常なデータに基づいて前記第１のメモリに保持されている前記プログラムを更新する回路とを有する第２の回路パターンを形成することを特徴とする回路基板。
【請求項２】
前記ゲートアレイは、前記第１のメモリに保持されている前記プログラムを更新した後の、再起動が行われた際に、前記スイッチ回路は、前記第１のメモリと前記プロセッサとを接続し、
前記プロセッサは、更新された前記プログラムを実行することを特徴とする請求項１に記載の回路基板。
【請求項３】
前記ゲートアレイは、前記第１のメモリに保持されている前記データの異常が検知されたときに、前記第１の回路パターンに加えて、前記第２の回路パターンを形成することを特徴とする請求項１に記載の回路基板。
【請求項４】
前記プロセッサが前記プログラムを実行する際の処理結果の送信および処理に使用するデータの受信と、前記プログラムの更新用のデータの受信とを行う通信回路をさらに備えることを特徴とする請求項１から３いずれかに記載の回路基板。
【請求項５】
請求項１から４いずれかに記載の前記回路基板と、
前記回路基板の前記コンフィギュレーションデータと、前記プログラムのデータとを記憶する記憶手段と、前記回路基板の異常の有無を監視する手段とを有する監視装置と
を備え、
前記監視装置は、前記回路基板の異常を検知した際に、前記第２の回路パターンを形成する前記コンフィギュレーションデータを前記回路基板に送信し、前記回路基板に形成された前記第２の回路パターンの回路を介して前記第１のメモリの前記プログラムを更新することを特徴とする電子装置。
【請求項６】
前記監視装置は、前記回路基板の前記プログラムの更新を完了したときに、前記回路基板に再起動を要求し、
前記回路基板は、前記監視装置からの再起動の要求に基づいて再起動し、前記プロセッサによって更新後の前記プログラムを実行することを特徴とする請求項５に記載の電子装置。
【請求項７】
前記回路基板および前記監視装置は、同一のバックプレーンに挿入されていることを特徴とする請求項５または６に記載の電子装置。
【請求項８】
前記監視装置は、前記回路基板が前記バックプレーンに挿入されたことを検知してから所定の時間経過するまでに起動の完了を検知できなかったとき、前記回路基板に異常が生じていると判断することを特徴とする請求項７に記載の電子装置。
【請求項９】
前記バックプレーンに挿入された複数の前記回路基板を備え、
前記監視装置は、前記回路基板それぞれを監視することを特徴とする請求項８に記載の電子装置。
【請求項１０】
第１のメモリと、
前記第１のメモリに保持されているプログラムを実行するプロセッサと、
コンフィギュレーションデータに基づいた回路パターンを形成するゲートアレイと、
前記ゲートアレイから入力される制御信号に基づいて、前記第１のメモリと、前記プロセッサまたは前記ゲートアレイのいずれかとを接続するスイッチ回路と、
外部とデータの送受信を行うコントローラとして動作する第１の回路パターンを形成するコンフィギュレーションデータを初期コンフィギュレーションデータとして保持している第２のメモリと
を備える回路基板において
起動時に、前記第２のメモリから読み出す前記初期コンフィギュレーションデータに基づいて前記第１の回路パターンを前記ゲートアレイに形成し、
前記第１のメモリに保持されている前記データの異常が検知されたときに、前記コントローラを介して外部から入力されるコンフィギュレーションデータに基づいて、前記第１のメモリと前記ゲートアレイを接続する前記制御信号を前記スイッチ回路に出力する回路と、外部から入力される正常なデータに基づいて前記第１のメモリに保持されている前記データを更新する回路とを有する第２の回路パターンを前記ゲートアレイに形成することを特徴とするデータ復旧方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路基板上の半導体装置に保持されているデータを更新する技術に関するものであり、特に、回路基板の外部から取得するデータを基に更新を行う技術に関するものである。
【背景技術】
【０００２】
組み込み型機器の制御用コントローラのプログラムおよびデータの格納デバイスとして、フラッシュＲＯＭ（Read Only Memory）が広く用いられている。また、組み込み型装置は、高い信頼性が要求されることも多く、制御用のプログラムのデータがフラッシュＲＯＭに正常に保存されていることが必要となる。
【０００３】
フラッシュＲＯＭでは、プロセスの微細化によってデバイスの大容量化や高集積化が進んでいる、一方で、大容量化や高集積化によって、フラッシュＲＯＭではデータ保持時間の短縮化の問題が生じている。例えば、ＮＡＮＤ型フラッシュＲＯＭでは、時間経過に伴ってデータ保持用の酸化膜から電荷が漏れだすことによるデータの消失や、データの書き換えによって生じる酸化膜の劣化による書き換え回数の制限やデータ保持寿命の短期化が生じうる。
【０００４】
フラッシュＲＯＭにおけるデータエラーや短寿命化への対応としては、ＥＣＣ（Error  correcting Code）機能によるエラー訂正やウェアレベリングによるメモリ素子ごとの利用回数の平準化などの技術が用いられることが多い。しかし、組み込み型装置においてフラッシュＲＯＭに格納した制御用コントローラのプログラムにデータ化けが発生し、エラー訂正等では対応しきれずにプログラムの実行が行えないような場合には、プログラムを実行することができなくなる。そのような場合には、フラッシュＲＯＭに保存されたデータを正常なデータに書き換える作業等を行わないと、組み込み型装置が正常に動作しない恐れがある。そのため、フラッシュＲＯＭに保存されたプログラムを実行する装置において、フラッシュＲＯＭに保存されたデータのエラー等が生じたときに、プログラムを正常なデータで更新する技術の開発が行われている。そのような、フラッシュＲＯＭに保存されたデータのエラー等が生じたときに、正常なデータによってデータを更新する技術としては、例えば、特許文献１のような技術が開示されている。
【０００５】
特許文献１は、制御用のプログラムが保存されたフラッシュＲＯＭのデータを、メモリカード上に保存されたデータを用いて更新する制御装置に関するものである。特許文献１の制御装置は、ＣＰＵ（Central Processing Unit）がＦＰＧＡ（Field Programmable Gate Array）に形成された回路を用いてメモリカードのデータを基にフラッシュＲＯＭのデータを更新している。特許文献１では、フラッシュＲＯＭのデータの更新は、メモリカードが接続された状態で、更新用のボタンが押されることで開始される。また、データ更新後は、ＦＰＧＡ上に周辺機器の制御回路等を形成して、ＣＰＵがフラッシュＲＯＭ上のプログラムを実行している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２１０５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の技術は次のような点で十分ではない。特許文献１の制御装置では、メモリカードを装着した状態でデータ更新の開始ボタンを押すことでフラッシュＲＯＭのデータの更新を行っている。そのような構成では、作業者等が異常をすぐに検知できない環境やメモリカードの装着やボタンの押し下げを行えないような環境では、更新を行うことができない。よって、組み込み型装置の制御用プログラムを実行できないような状態から正常な状態に戻すために長い時間を要し、組み込み型装置の動作の信頼性が低下する恐れがある。そのため、特許文献１の技術は、組み込み型装置の動作の信頼性を維持するために、フラッシュＲＯＭに保存された制御用のプログラムにエラーが生じたときに、正常なデータに復旧させる技術としては十分ではない。
【０００８】
本発明は、上記の課題を解決するため、フラッシュＲＯＭに保存されたプログラムにエラーが生じたときに、正常なデータを用いて確実に復旧させることができる回路基板を提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本発明の回路基板は、第１のメモリと、プロセッサと、ゲートアレイと、スイッチ回路と、第２のメモリを備えている。第１のメモリは、保持しているプログラムのデータを書き換える手段を有する。プロセッサは、第１のメモリに保持されているプログラムを実行する。ゲートアレイは、コンフィギュレーションデータに基づいた回路パターンを形成する。スイッチ回路は、ゲートアレイから入力される制御信号に基づいて、第１のメモリと、プロセッサまたはゲートアレイのいずれかとを接続する。第２のメモリは、外部とデータの送受信を行うコントローラとして動作する第１の回路パターンを形成するコンフィギュレーションデータを初期コンフィギュレーションデータとして保持している。また、ゲートアレイは、起動時に、第２のメモリから読み出す初期コンフィギュレーションデータに基づいて第１の回路パターンを形成する。ゲートアレイは、第１のメモリに保持されているデータの異常が検知されたときに、コントローラを介して外部から入力されるコンフィギュレーションデータに基づいて、第２の回路パターンを形成する。第２の回路パターンは、第１のメモリとゲートアレイを接続する制御信号をスイッチ回路に出力する回路と、外部から入力される正常なデータに基づいて第１のメモリに保持されているプログラムを更新する回路とを有する。
【００１０】
本発明のデータ復旧方法は、第１のメモリと、プロセッサと、スイッチ回路と、第２のメモリを備える回路基板におけるデータ復旧方法である。プロセッサは、第１のメモリに保持されているプログラムを実行する。ゲートアレイは、コンフィギュレーションデータに基づいた回路パターンを形成する。スイッチ回路は、ゲートアレイから入力される制御信号に基づいて、第１のメモリと、プロセッサまたはゲートアレイのいずれかとを接続する。第２のメモリは、外部とデータの送受信を行うコントローラとして動作する第１の回路パターンを形成するコンフィギュレーションデータを初期コンフィギュレーションデータとして保持している。本発明のデータ復旧方法は、起動時に、第２のメモリから読み出す初期コンフィギュレーションデータに基づいて第１の回路パターンをゲートアレイに形成する。本発明のデータ復旧方法は、第１のメモリに保持されているデータの異常が検知されたときに、コントローラを介して外部から入力されるコンフィギュレーションデータに基づいて、第２の回路パターンを形成する。第２の回路パターンは、第１のメモリ１とゲートアレイを接続する制御信号をスイッチ回路に出力する回路と、外部から入力される正常なデータに基づいて第１のメモリに保持されているプログラムを更新する回路とを有する。
【発明の効果】
【００１１】
本発明によると、保存されたプログラムにエラーが生じたときに、正常なデータを用いて確実にデータを復旧させることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態の構成の概要を示す図である。
【図２】本発明の第２の実施形態の構成の概要を示す図である。
【図３】本発明の第２の実施形態において回路基板をバックプレーンに挿入する動作を模式的に示した図である。
【図４】本発明の第２の実施形態において回路基板をバックプレーンに装着した状態を模式的に示した図である。
【図５】本発明の第２の実施形態の監視装置用の回路基板の構成の例を示す図である。
【図６】本発明の第２の実施形態におけるバックプレーンに形成された信号線の構成の例を示した図である。
【図７】本発明の第２の実施形態の動作フローを示すシーケンス図である。
【図８】本発明の第２の実施形態の動作フローを示すシーケンス図である。
【図９】本発明の第２の実施形態においてＦＰＧＡに形成される回路を模式的に示した図である。
【図１０】本発明の第２の実施形態においてＦＰＧＡに形成される回路を模式的に示した図である。
【発明を実施するための形態】
【００１３】
（第１の実施形態）
本発明の第１の実施形態について図を参照して詳細に説明する。図１は、本実施形態の回路基板の構成の概要を示したものである。本実施形態の回路基板は、第１のメモリ１１と、プロセッサ１２と、ゲートアレイ１３と、スイッチ回路１４と、第２のメモリ１５を備えている。
【００１４】
第１のメモリ１１は、保持しているプログラムのデータを書き換える手段を有する。プロセッサ１２は、第１のメモリ１１に保持されているプログラムを実行する。ゲートアレイ１３は、コンフィギュレーションデータに基づいた回路パターンを形成する。スイッチ回路１４は、ゲートアレイ１３から入力される制御信号に基づいて、第１のメモリ１１と、プロセッサ１２またはゲートアレイ１３のいずれかとを接続する。第２のメモリ１５は、外部とデータの送受信を行うコントローラとして動作する第１の回路パターンを形成するコンフィギュレーションデータを初期コンフィギュレーションデータとして保持している。また、ゲートアレイ１３は、起動時に、第２のメモリ１５から読み出す初期コンフィギュレーションデータに基づいて第１の回路パターンを形成する。ゲートアレイ１３は、第１のメモリ１１に保持されているデータの異常が検知されたときに、コントローラを介して外部から入力されるコンフィギュレーションデータに基づいて、第２の回路パターンを形成する。第２の回路パターンは、第１のメモリ１１とゲートアレイ１３を接続する制御信号をスイッチ回路１４に出力する回路と、外部から入力される正常なデータに基づいて第１のメモリ１１に保持されているプログラムを更新する回路とを有する。
【００１５】
本実施形態の回路基板のゲートアレイ１３は、第２のメモリ１５から読み出した初期コンフィギュレーションデータを基に外部とデータの送受信を行うコントローラとして動作する第１の回路パターンを形成している。また、異常を検知したときには、ゲートアレイ１３は、第１の回路パターンとして形成したコントローラを介して、回路基板の外部の装置からコンフィギュレーションデータを取得している。ゲートアレイ１３は、取得したコンフィギュレーションデータを基に回路を形成し、第１のメモリ１１とゲートアレイ１３を接続する制御信号をスイッチ回路１４に出力する。また、ゲートアレイ１３は、外部の装置から入力される正常なデータに基づいて第１のメモリ１１に保持されているプログラムを更新する回路を内部に形成することで、第１のメモリ１１のプログラムのデータを更新する。ゲートアレイ１３が第１のメモリ１１のプログラムのデータを更新することで、プロセッサ１２は、正常なデータのプログラムを実行することができるようになる。すなわち、本実施形態の回路基板は、外部の装置から取得したコンフィギュレーションデータに基づいてゲートアレイ１３に回路パターンを形成することで、自動でプログラムのデータを正常なデータに更新することが可能に成りうる。そのため、本実施形態の回路基板を用いることで保存されたプログラムにエラーが生じたときに、正常なデータを用いて確実に復旧させることができる。
【００１６】
（第２の実施形態）
本発明の第２の実施形態について図を参照して詳細に説明する。図２は、本実施形態の組み込み型装置用の回路基板１００の構成の概要を示したものである。
【００１７】
本実施形態の回路基板１００は、ＣＰＵ（Central Processing Unit）１０１と、フラッシュＲＯＭ（Read Only Memory）１０２と、ＲＡＭ（Random Access Memory）１０３と、スイッチＩＣ（Integrated Circuit）１０４を備えている。また、本実施形態の回路基板１００は、ＦＰＧＡ（Field Programmable Gate Array）１０５と、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）１０６をさらに備えている。また、本実施形態の回路基板１００は、ＰＣＩｅ（PCI（Peripheral Component Interconnect） Express）スイッチ１０７と、ＰＣＩｅ−Ｅｔｈｅｒブリッジ１０８をさらに備えている。また、本実施形態の回路基板１００は、ネットワークインタフェース１０９と、Ｌ２スイッチ１１０と、ＬＡＮ（Local Area Network）ポート１１１と、電源制御回路１１２をさらに備えている。
【００１８】
本実施形態の組み込み型装置用の回路基板１００の各部位について説明する。ＣＰＵ１０１は、プログラムを実行し回路基板１００の用途に応じた動作を行う機能を有する。ＣＰＵ１０１は、フラッシュＲＯＭ１０２に保存されたプログラムを読み出して実行する。フラッシュＲＯＭ１０２には、回路基板１００に割り当てられた機能に応じたプログラムが保存されている。ＣＰＵ１０１は、フラッシュＲＯＭ１０２に保存されたプログラムを実行することで、回路基板１００は、用途に応じた機能を発現する。また、本実施形態のＣＰＵ１０１は、第１の実施形態のプロセッサ１２に相当する。
【００１９】
フラッシュＲＯＭ１０２は、ＣＰＵ１０１が実行するプログラムの実行コードを保存している。フラッシュＲＯＭ１０２は、例えば、ＮＡＮＤ型フラッシュメモリによって形成されている。フラッシュＲＯＭ１０２は、データの書き換えが可能な不揮発性の半導体記憶素子を用いたものであれば、ＮＡＮＤ型フラッシュメモリの半導体記憶素子を用いて形成されていてもよい。また、本実施形態のフラッシュＲＯＭ１０２は、第１の実施形態の第１のメモリ１１に相当する。
【００２０】
ＲＡＭ１０３は、ＣＰＵ１０１がプログラムを実行する際の主記憶装置としての機能を有する。ＲＡＭ１０３は、揮発性の半導体記憶素子を用いて形成されている。
【００２１】
スイッチＩＣ１０４は、フラッシュＲＯＭ１０２がＣＰＵ１０１またはＦＰＧＡ１０５のいずれに接続するかを切り替えるスイッチＩＣである。スイッチＩＣ１０４は、ＦＰＧＡ１０５から制御線１２８を介して送られてくる制御信号に基づいて動作する。スイッチＩＣ１０４は、スイッチ素子を切り替えることでＣＰＵ１０１とフラッシュＲＯＭ１０２の間、または、ＦＰＧＡ１０５とフラッシュＲＯＭ１０２の間のいずれかを電気的に接続する。初期状態、すなわち、回路基板１００の起動直後には、スイッチＩＣ１０４は、ＣＰＵ１０１と、フラッシュＲＯＭ１０２の間を電気的に接続している。また、本実施形態のスイッチＩＣ１０４は、第１の実施形態のスイッチ回路１４に相当する。
【００２２】
ＦＰＧＡ１０５は、スイッチＩＣ１０４の制御と、フラッシュＲＯＭ１０２のデータの更新を行う機能を有する。ＦＰＧＡ１０５は、コンフィギュレーションデータを基に回路パターンを形成し、回路パターンに基づいて動作するゲートアレイである。ＦＰＧＡ１０５は、ＥＥＰＲＯＭ１０６および外部からコンフィギュレーションデータを取得し、回路パターンを形成する。ＦＰＧＡ１０５は、最小限の動作を行うために必要な回路パターンを形成するためのコンフィギュレーションデータをＥＥＰＲＯＭ１０６から初期コンフィギュレーションデータと取得する。また、ＦＰＧＡ１０５は、初期コンフィギュレーションデータによって形成される回路パターン以外の回路パターンのコンフィギュレーションデータを回路基板１００の外部から取得する。また、本実施形態のＦＰＧＡ１０５は、第１の実施形態のゲートアレイ１３に相当する。
【００２３】
ＥＥＰＲＯＭ１０６は、ＦＰＧＡ１０５の初期コンフィギュレーションデータを保存している。初期コンフィギュレーションデータとは、ＦＰＧＡ１０５が起動直後に呼び出し、ＦＰＧＡ１０５が最小限の動作をするために必要な回路パターンを形成する際に必要なコンフィギュレーションデータのことをいう。最小限の動作とは、バスのコントロールおよびバス経由でＦＰＧＡ１０５のリコンフィギュレーションを行う動作のことをいう。
【００２４】
ＥＥＰＲＯＭ１０６には、一部の回路パターンのコンフィギュレーションデータを保存すればよいため比較的、容量が小さい不揮発性の半導体記憶素子であっても用いることができる。そのため、ＥＥＰＲＯＭのような大容量化は難しいが、データ保持時間の長い半導体記憶素子を用いることができるのでデータ保持の信頼性を向上することができる。また、ＥＥＰＲＯＭ１０６には多くのデータを保存する必要がないため回路を小型化することができる。また、本実施形態のＥＥＰＲＯＭ１０６は、第１の実施形態の第２のメモリ１５に相当する。
【００２５】
ＰＣＩｅスイッチ１０７は、ＰＣＩｅバスの接続先を切り替えるスイッチである。ＰＣＩｅスイッチ１０７は、ＣＰＵ１０１から制御線１２５を介して送られてくる制御信号に基づいてスイッチの切り替えを行う。ＰＣＩｅスイッチ１０７は、ＣＰＵ１０１とＦＰＧＡ１０５の間、または、ＰＣＩｅスイッチ１０７とＦＰＧＡ１０５の間のいずれかを電気的に接続するように動作する。ＰＣＩｅスイッチ１０７は、初期状態では、ＦＰＧＡ１０５とＰＣＩｅ−Ｅｔｈｅｒブリッジ１０８の間を接続している。
【００２６】
ＰＣＩｅ−Ｅｔｈｅｒブリッジ１０８は、データ変換用のブリッジＩＣである。ＰＣＩｅ−Ｅｔｈｅｒブリッジ１０８は、ＰＣＩｅバスと、Ｅｔｈｅｒｎｅｔ（登録商標）  ＬＡＮの間でデータの送受信ができるようにデータ変換を行う。ＰＣＩｅ−Ｅｔｈｅｒブリッジ１０８を備えることで、ＬＡＮポート１１１に接続される外部機器と組み込み型装置内のＰＣＩｅバスの間でデータの送受信を行うことができる。
【００２７】
ネットワークインタフェース１０９は、Ｅｔｈｅｒｎｅｔ  ＬＡＮ経由で通信を行う際のインタフェースである。
【００２８】
Ｌ２スイッチ１１０は、Ｅｔｈｅｒｎｅｔ  ＬＡＮ上で伝送されるデータをデータの転送先に振り分ける機能を有する。Ｌ２スイッチ１１０は、Ｅｔｈｅｒｎｅｔ  ＬＡＮ上に流れるＰＣＩｅ−Ｅｔｈｅｒブリッジ１０８とネットワークインタフェース１０９宛のデータを対応するバスに出力する。
【００２９】
ＬＡＮポート１１１は、Ｅｔｈｅｒｎｅｔ  ＬＡＮと接続するポートである。
【００３０】
電源制御回路１１２は、回路基板１００の電源回路を制御する回路である。電源制御回路１１２は、ＦＰＧＡ１０５から制御線１３３を介して入力される信号に基づいて、回路基板１００における給電の制御を行う。
【００３１】
バス１２１は、ＣＰＵ１０１とペリフェラレルを接続するシステムバスである。ＣＰＵ１０１は、バス１２１を介してペリフェラレルであるフラッシュＲＯＭ１０２およびＲＡＭ１０３等と接続されている。また、ＣＰＵ１０１は、バス１２１を介してスイッチＩＣ１０４およびネットワークインタフェース１０９とも接続されている。
【００３２】
バス１２２、バス１２３およびバス１２４は、ＰＣＩｅバスである。バス１２２、バス１２３およびバス１２４は、ＰＣＩｅスイッチ１０７によるバス間の接続の切り替えにより、バス１２２とバス１２４、バス１２２とバス１２４またはバス１２３とバス１２４のいずれかが接続される。バス１２２とバス１２３が接続されたとき、ＦＰＧＡ１０５とＰＣＩｅ−Ｅｔｈｅｒブリッジ１０８の間でデータの転送を行うことができる。バス１２３とバス１２４が接続されたとき、ＣＰＵ１０１とＰＣＩｅ−Ｅｔｈｅｒブリッジ１０８の間でデータ転送を行うことができる。また、バス１２２とバス１２４が接続されたとき、ＣＰＵ１０１とＦＰＧＡ１０５の間でデータ転送を行うことができる。
【００３３】
本実施形態の回路基板１００内のバスにおける通信は、ＰＣＩ  Ｅｘｐｒｅｓｓ規格に基づいているが、データ転送が行えるものであれば他の規格に基づいたバスが用いられてもよい。また、回路基板１００の外部との通信もＥｔｈｅｒｎｅｔ以外の方式で行われてもよい。
【００３４】
制御線１２５は、ＰＣＩｅスイッチ１０７のバス間の接続の切り替えをＣＰＵ１０１が制御するための配線である。初期状態では、ＰＣＩｅスイッチ１０７は、ＦＰＧＡ１０５とＰＣＩｅ−Ｅｔｈｅｒブリッジ１０８を接続する設定状態となっている。すなわち、初期状態では、ＰＣＩｅスイッチ１０７は、バス１２２とバス１２３を接続している。
【００３５】
バス１２６は、ＦＰＧＡ１０５とＥＥＰＲＯＭ１０６を接続するバスである。ＦＰＧＡ１０５は、回路基板１００の起動時に、バス１２６を介して、ＥＥＰＲＯＭ１０６から初期コンフィギュレーションデータの読み出しを行う。
【００３６】
バス１２７は、フラッシュＲＯＭ１０２とスイッチＩＣ１０４を接続するバスである。フラッシュＲＯＭ１０２は、バス１２７およびスイッチＩＣ１０４と、バス１２１またはバス１２７を介して、ＣＰＵ１０１およびＦＰＧＡ１０５とデータ転送を行う。
【００３７】
制御線１２８は、ＦＰＧＡ１０５からスイッチＩＣ１０４の設定、すなわち、スイッチＩＣ１０４における信号方向を制御するための配線である。フラッシュＲＯＭ１０２のデータの更新を行うとき、ＦＰＧＡ１０５は、バス１２９とバス１２７を接続するようにスイッチ素子を切り替える制御信号を制御線１２８を介してスイッチＩＣ１０４に送る。
【００３８】
バス１２９は、フラッシュＲＯＭ１０２とスイッチＩＣ１０４を接続するバスである。
【００３９】
バス１３０、バス１３１およびバス１３２は、Ｅｔｈｅｒｎｅｔ  ＬＡＮ用の信号線である。バス１３０、バス１３１およびバス１３２を介してデータの転送を行うことで、回路基板１００は、外部機器とＥｔｈｅｒｎｅｔ通信を行うことができる。
【００４０】
制御線１３３は、ＦＰＧＡ１０５が電源制御回路１１２に電源の制御用の制御信号を送る制御線である。
【００４１】
次に本実施形態の回路基板１００を用いて組み込み型装置を構成する場合の例について説明する。図３は、コネクタ２０１から２０６が形成されたバックプレーン２００に回路基板１００を回路基板２０７として挿入する動作を模式的に示した図である。また、図４は、バックプレーン２００上のコネクタ２０１から２０６に、６枚の回路基板２０８から２１３が挿入されている装置の構成を模式的に示した図である。回路基板２０８から２１２には、本実施形態の回路基板１００が用いられる。同一のバックプレーン２００に複数の回路基板１００を装着する場合には、回路基板１００ごとに異なる機能が割り当てられるためフラッシュＲＯＭ１０２に保存されているプログラムはそれぞれ異なる。冗長化を行う場合や複数の回路基板１００によって並列処理を行う場合などには、回路基板１００のフラッシュＲＯＭ１０２にそれぞれ保存されているプログラムは、同一のものであってもよい。
【００４２】
それぞれのコネクタに挿入された回路基板は、バックプレーン２００上の回路により相互接続される。図４の回路基板２０８から２１２は、本実施形態の回路基板１００である。また、回路基板２１３は、バックプレーン２００のコネクタに１枚だけ挿入される監視装置と呼ばれる回路基板である。
【００４３】
図５は、監視装置として用いられる回路基板２１３の構成の例を示すブロック図である。図５の回路基板２１３は、基板監視部３０１と、データ記憶部３０２と、通信部３０３を備えている。
【００４４】
基板監視部３０１は、バックプレーン２００への各回路基板の装着の有無および回路基板の動作を監視する機能を有する。基板監視部３０１は、回路基板１００がバックプレーン２００に挿入されたことを検知すると、あらかじめ設定された時間内に回路基板１００の起動が完了するかを監視する。基板監視部３０１は、回路基板１００がバックプレーン２００に挿入されてから設定時間内に、起動が完了したことを示す起動完了通知を受け取れないとき、回路基板１００に異常が生じていると判断する。
【００４５】
基板監視部３０１は、回路基板１００に異常が生じていると判断すると、回路基板１００のＦＰＧＡ１０５にコンフィギュレーションデータを送り、ＦＰＧＡ１０５に形成された回路を介してフラッシュＲＯＭ１０２のデータの異常の有無を確認する。フラッシュＲＯＭ１０２のデータの異常を検出すると、基板監視部３０１は、フラッシュＲＯＭ１０２に正常なデータを、ＦＰＧＡ１０５を介して送信し、フラッシュＲＯＭ１０２のデータを更新する。基板監視部３０１は、ＣＰＵやＦＰＧＡなどの半導体装置によって形成されている。
【００４６】
データ記憶部３０２は、回路基板１００のＦＰＧＡ１０５のコンフィギュレーションデータおよびフラッシュＲＯＭ１０２のイメージデータを保存している。ＦＰＧＡ１０５のコンフィギュレーションデータおよびフラッシュＲＯＭ１０２のイメージデータは、外部から取得したデータを一時的に保存しているものであってもよい。データ記憶部３０２は、不揮発性の半導体記憶装置によって構成されている。
【００４７】
通信部３０３は、各回路基板と通信を行う機能を有する。通信部３０３は、回路基板１００と同様にネットワークインタフェース、Ｌ２スイッチおよびＬＡＮポート等によって構成されている。
【００４８】
回路基板２１３は、コネクタ２０１から２０５に挿入される回路基板２０８から２１２の状態を監視する。回路基板２０８から２１３は、バックプレーン２００からコネクタ２０１から２０６を介し電源の供給を受ける。また、図４では、全てのコネクタに回路基板が挿入されているが、監視装置用のコネクタ２０６以外には、回路基板が挿入されていないコネクタが存在してもよい。
【００４９】
図６は、コネクタ２０１から２０６の端子のバックプレーン２００上での電気的接続の状態を模式的に示した図である。コネクタ２０１から２０６上に示している●印、○印はコネクタの端子である。●印は、コネクタと信号線が電気的に接続されていること示している。また、○印は、コネクタと信号線が電気的に未接続であることを示している。図６において、端子と端子をつなぐ線は、電気回路の信号線を示している。図６では、コネクタの端子間を接続する信号線４００から４０６が示されている。信号線のうち、信号線４００および信号線４０１は、Ｅｔｈｅｒｎｅｔ  ＬＡＮの通信用の信号線である。信号線４００および信号線４０１は、コネクタ２０１から２０６の全てのコネクタと接続している。そのため、各コネクタに接続された回路基板２０８から２１３は、Ｅｔｈｅｒｎｅｔ  ＬＡＮで通信可能な状態である。
【００５０】
信号線４０２から４０６は、コネクタ２０６とコネクタ２０１から２０５を接続している。信号線４０１から４０６により、コネクタ２０６に接続されている監視装置の回路基板２１３は、コネクタ２０１から２０５への回路基板２０８から２１２の挿入有無を確認することができる。また、図６では、コネクタ間を信号線７本で接続している例を示しているが、信号線の数は、７本以外であってもよい。コネクタ間を接続する信号線の数は、回路基板間の接続に必要な信号線の数に基づいて設定される。
【００５１】
本実施形態の回路基板１００を用いた組み込み型装置の動作について説明する。図４のように、バックプレーン２００のコネクタ２０６に監視装置である回路基板２１３が挿入された状態で、コネクタ２０１に回路基板２０８が挿入された場合を例に説明する。図７および図８は、本実施形態の回路基板１００を回路基板２０８として用いた場合における組み込み型装置の動作フローを示すシーケンス図である。
【００５２】
バックプレーン２００のコネクタ２０６に回路基板２０８が挿入されると、回路基板２０８にはバックプレーン２００を介してバックプレーン２００から電源が供給される。
【００５３】
コネクタ２０６に回路基板２０８が挿入されると、監視装置である回路基板２１３は、コネクタ２０１に回路基板が挿入されたことを検出する。回路基板２１３は、回路基板２０８から信号線４０２を介して送られてくる挿入通知信号を検出することで、コネクタ２０１に回路基板が挿入されたことを検出する（ステップＳ１１）。回路基板２１３は、電源供給を受けた回路基板２０８が信号線４０２に印加した電圧を検出することでコネクタ２０１に回路基板が挿入されたことを検出してもよい。
【００５４】
電源が供給されると、回路基板２０８のＦＰＧＡ１０５は、初期コンフィギュレーションを開始する。初期コンフィギュレーションを開始すると、ＦＰＧＡ１０５は、ＥＥＰＲＯＭ１０６に初期コンフィギュレーションのデータを要求する（ステップＳ１２）。初期コンフィギュレーションデータの要求を受け取ると、ＥＥＰＲＯＭ１０６は、初期コンフィギュレーションデータをＦＰＧＡ１０５にバス１２６を介して転送する（ステップＳ１３）。
【００５５】
初期コンフィギュレーションデータを読み出すと、ＦＰＧＡ１０５は、初期コンフィギュレーションデータを基にコンフィギュレーションを行って回路パターンを形成する。図９は、初期コンフィギュレーション後にＦＰＧＡ１０５に形成される回路を模式的に示した図である。
【００５６】
図１０のＦＰＧＡ１０５には、ＰＣＩｅコントローラ１４１と、バス１４２が形成されている。ＰＣＩｅコントローラ１４１は、外部とＰＣＩ  Ｅｘｐｒｅｓｓ規格に基づいたデータの送受信を行うコントローラである。また、バス１４２は、ＰＣＩｅバス１２２とＰＣＩｅコントローラ１４１を接続する信号線である。ＦＰＧＡ１０５は、ＰＣＩｅコントローラ１４１によってバス１４２とＰＣＩｅバス１２２を介して、外部からコンフィギュレーションデータを取得する。ＦＰＧＡ１０５は、外部から取得したコンフィギュレーションデータを基に、内部にさらに回路パターンを形成する。
【００５７】
初期コンフィギュレーションが完了すると、ＣＰＵ１０１は、フラッシュＲＯＭ１０２に起動プログラムの読み出し要求を送る（ステップＳ１３）。読み出し要求を受け取ると、フラッシュＲＯＭ１０２は、内部のメモリ素子に保存しているデータをＣＰＵ１０１に送信する。
【００５８】
フラッシュＲＯＭ１０２は、データを送る際にデータの正常性を監視する。フラッシュＲＯＭ１０２は、例えば、ＣＲＣ（Cyclic Redundancy Check）によってデータの正常性を監視する。データの正常性を監視する方法は、データのエラーを検出できる方法であれば他の方法であってもよい。
【００５９】
このとき、データを送信する際に、保持寿命等によってデータ化けを起こしているとする。フラッシュＲＯＭ１０２は、データの異常を検出すると、ＣＰＵ１０１にＮＧ応答を送る(ステップＳ１５）。
【００６０】
ＮＧ応答を受け取ると、ＣＰＵ１０１は、フラッシュＲＯＭ１０２からの起動プログラムが失敗したと判断する。起動プログラムの読み出しが失敗したと判断すると、ＣＰＵ１０１は、起動が出来ないと判断して動作を停止する。
【００６１】
ステップＳ１１において回路基板２０８の挿入を検出した監視装置としての回路基板２１３は、挿入を検出したときからの時間を計測する。挿入通知を検出してから、あらかじめ設定された時間内に起動完了の通知が回路基板２０８から送られてこないとき、回路基板２１３は、回路基板２０８の起動が失敗したと判断する。
【００６２】
起動が失敗したと判断すると、監視装置である回路基板２１３は、回路基板２０８のＦＰＧＡ１０５に対してデータ復旧のためのコンフィギュレーションを行う。回路基板２１３は、Ｅｔｈｅｒｎｅｔ  ＬＡＮを介して回路基板２０８にデータ復旧のためのコンフィギュレーションデータを送る（ステップＳ１６）。
【００６３】
回路基板２０８に送られたデータ復旧のためのコンフィギュレーションデータは、ＬＡＮポート１１１、Ｌ２スイッチ１１０、ＰＣＩｅ−Ｅｔｈｅｒブリッジ１０８およびＰＣＩｅスイッチ１０７を介してＦＰＧＡ１０５に送られる。
【００６４】
データ復旧用のコンフィギュレーションデータを受け取ると、ＦＰＧＡ１０５は、コンフィギュレーションを行ってデータ復旧用の回路パターンを形成する。
【００６５】
図１０は、データ復旧用の回路パターンが形成された際のＦＰＧＡ１０５の構成を示すブロック図である。図１０では、ＰＣＩｅコントローラ１４１とバス１４２に加え、ＧＰＩＯ（General Purpose Input / Output）制御部１５１と、フラッシュＲＯＭコントローラ１５２が形成されている。また、ＧＰＩＯ制御部１５１およびフラッシュＲＯＭコントローラ１５２と、制御線１２８を接続する信号線１５３が形成されている。また、フラッシュＲＯＭコントローラ１５２とバス１２７、および、フラッシュＲＯＭコントローラ１５２とＰＣＩｅコントローラ１４１をそれぞれ接続するバス１５４およびバス１５５が形成されている。
【００６６】
ＧＰＩＯ制御部１５１は、スイッチＩＣ１０４の制御を行う回路である。ＧＰＩＯ制御部１５１は、スイッチＩＣ１０４のスイッチを切り替えることで、フラッシュＲＯＭコントローラ１５２とフラッシュＲＯＭ１０２の間を電気的に接続状態とする。フラッシュＲＯＭコントローラ１５２は、回路基板２１３から送られてくるフラッシュＲＯＭ１０２の制御内容に基づいてフラッシュＲＯＭ１０２の制御を行うことで、回路基板２１３がフラッシュＲＯＭ１０２にアクセスできるようにする。
【００６７】
コンフィギュレーションが完了すると、ＦＰＧＡ１０５は、コンフィギュレーションが完了したことを示す完了通知を回路基板２１３に送る（ステップＳ１７）。
【００６８】
完了通知を受け取ると、回路基板２１３は、回路基板２０８のＦＰＧＡ１０５を介してフラッシュＲＯＭ１０２のデータにデータ化け等の異常の有無の確認を開始する。フラッシュＲＯＭ１０２のデータの異常の有無の確認を開始すると、回路基板２１３は、回路基板２０８のＦＰＧＡ１０５にフラッシュＲＯＭ１０２のデータの読み出しを要求する(ステップＳ１８）。
【００６９】
データの読み出しの要求を受けると、フラッシュＲＯＭ１０２にデータの読み出しを要求する（ステップＳ１９）。フラッシュＲＯＭ１０２は、データの読み出し要求を受け取ると、保持しているデータのエラーの有無を確認する。
【００７０】
フラッシュＲＯＭ１０２は、保持しているデータにエラーが生じていることを検出すると、ＮＧ応答をＦＰＧＡ１０５に送る（ステップＳ２０）。ＦＰＧＡ１０５は、ＮＧ応答を受け取ると、ＮＧ応答を回路基板２１３に送る（ステップＳ２１）。
【００７１】
ＮＧ応答を受け取ると、回路基板２１３は、回路基板２０８のフラッシュＲＯＭ１０２のデータにデータ化け等の異常が生じたと判断する。異常が生じたと判断すると、回路基板２１３は、回路基板２０８のフラッシュＲＯＭ１０２にデータを書き込むことで復旧を行う。
【００７２】
回路基板２１３は、回路基板２０８のフラッシュＲＯＭ１０２のイメージデータと、イメージデータの書き込み要求を、ＦＰＧＡ１０５に送る(ステップＳ２２）。イメージデータを受け取ると、ＦＰＧＡ１０５のフラッシュＲＯＭコントローラ１５２は、フラッシュＲＯＭ１０２にイメージデータの書き込みを行う（ステップＳ２３）。データの書き込みを完了すると、フラッシュＲＯＭ１０２は、データの書き込みが終わったことを示す完了通知を、ＦＰＧＡ１０５に送る（ステップＳ２４）。完了通知を受け取ると、ＦＰＧＡ１０５は、データの書き込みが完了したことを示す完了通知を回路基板２１３に送る（ステップＳ２５）。
【００７３】
完了通知を受け取ると、回路基板２１３は、フラッシュＲＯＭ１０２へのイメージデータの書き込みが完了したと判断する。イメージデータの書き込みが完了したと判断すると、回路基板２１３は、回路基板２０８のＦＰＧＡ１０５に再起動の要求をリセット要求として送る（ステップＳ２６）。
【００７４】
リセット要求を受け取ると、ＦＰＧＡ１０５は、回路基板２０８のリセットを行う信号をリセット要求として回路基板２０８の各部位に送る(ステップＳ２７）。回路基板２０８のリセットが行われると、ＦＰＧＡ１０５は、初期コンフィギュレーションの動作を開始する。初期コンフィギュレーションが終わると、ＣＰＵ１０１は、フラッシュＲＯＭ１０２からプログラムを読み出して、プログラムの実行を行う。フラッシュＲＯＭ１０２のプログラムのデータは正常なデータに更新されているので、ＣＰＵ１０１は、正常にプログラムを実行することができる。
【００７５】
本実施形態の回路基板１００を用いた組み込み型装置では、回路基板１００が正常に起動できないとき、監視装置から回路基板１００のＦＰＧＡ１０５にコンフィギュレーションデータを送信し、フラッシュＲＯＭコントローラ１５２等を形成している。フラッシュＲＯＭコントローラ１５２等は、起動時にＥＥＰＲＯＭ１０６から読み出させる初期コンフィギュレーションデータを基にＦＰＧＡ１０５に形成されるＰＣＩｅコントローラによって外部から取得されるコンフィギュレーションデータを基に形成される。監視装置は、ＦＰＧＡに形成されたフラッシュＲＯＭコントローラ１５２等を介して、フラッシュＲＯＭ１０２のデータの異常の有無を確認し、データに異常を検出したときにフラッシュＲＯＭ１０２のデータを正常なデータとなるように更新している。このように、本実施形態の回路基板１００を用いた組み込み型装置では、フラッシュＲＯＭ１０２のデータの異常を検出し、正常なデータへの更新を自動で行うので、フラッシュＲＯＭ１０２のデータ更新を短時間で確実に行うことができる。また、ＦＰＧＡ１０５のコンフィギュレーションデータは、回路基板１００の外部から送られるので、回路基板１００において、異常が生じたときのみ必要となるフラッシュＲＯＭ１０２の更新の動作に必要な回路の面積を抑制することができる。以上より、本実施形態の回路基板１００を用いた組み込み型装置は、保存されたプログラムにエラーが生じたときに、より確実に正常なデータを復旧させることができる。
【００７６】
第２の実施形態では、回路基板は、同一のバックプレーン２００上に監視装置の回路基板２１３とともに装着されているが、回路基板１００と監視装置は、同一のバックプレーン２００上に無くてもよい。例えば、監視装置に相当する機能が主基板に搭載され、回路基板１００が主基板に装着されていてもよい。また、第２の実施形態では、回路基板１００のフラッシュＲＯＭ１０２の更新用のイメージデータは、監視装置に保存されていたが、監視装置による異常の検知を基に、監視装置以外からイメージデータが回路基板１００に送れる構成であってもよい。また、初期コンフィギュレーションデータ以外のコンフィギュレーションデータも同様に監視装置以外から回路基板１００に送れる構成であってもよい。そのような構成とすることで、回路基板１００を用いる組み込み型装置の信頼性を高めつつ、より柔軟に装置を設計することが可能になる。
【符号の説明】
【００７７】
１１    第１のメモリ
１２    プロセッサ
１３    ゲートアレイ
１４    スイッチ回路
１５    第２のメモリ
１００    回路基板
１０１    ＣＰＵ
１０２    フラッシュＲＯＭ
１０３    ＲＡＭ
１０４    スイッチＩＣ
１０５    ＦＰＧＡ
１０６    ＥＥＰＲＯＭ
１０７    ＰＣＩｅスイッチ
１０８    ＰＣＩｅ−Ｅｔｈｅｒブリッジ
１０９    ネットワークインタフェース
１１０    Ｌ２スイッチ
１１１    ＬＡＮポート
１１２    電源制御回路
１２１−１２４    バス
１２５    制御線
１２６    バス
１２７    バス
１２８    制御線
１２９−１３２    バス
１３３    制御線
１４１    ＰＣＩｅコントローラ
１４２    バス
１５１    ＧＰＩＯ制御部
１５２    フラッシュＲＯＭコントローラ
１５３    信号線
１５４    バス
１５５    バス
２００    バックプレーン
２０１−２０６    コネクタ
２０７    回路基板
２０８−２１２    回路基板
２１３    回路基板
３０１    基板監視部
３０２    データ記憶部
３０３    通信部
４００−４０６    信号線
【図１】
2019040302.tif 000003
【図２】
2019040302.tif 000004
【図３】
2019040302.tif 000005
【図４】
2019040302.tif 000006
【図５】
2019040302.tif 000007
【図６】
2019040302.tif 000008
【図７】
2019040302.tif 000009
【図８】
2019040302.tif 000010
【図９】
2019040302.tif 000011
【図１０】
2019040302.tif 000012