(57)【特許請求の範囲】
【請求項１】
記憶部と、
前記記憶部をアクセス制御する、書き換え可能な制御部と、
前記記憶部のアクセス制御の特性に対応する複数の構成情報が記憶された構成記憶部と、
前記構成情報を前記制御部に設定することにより、前記制御部の回路の構成を書き換える設定部と
を有し、
前記設定部は、
前記構成記憶部に記憶された前記複数の構成情報の内、一の構成情報を前記制御部に設定した後、前記記憶部の制御エラーを検出すると、前記一の構成情報と異なる他の構成情報を前記制御部に設定する
ことを特徴とする記憶制御装置。
【請求項２】
前記設定部にて前記他の構成情報を前記制御部に設定した後、設定後の前記記憶部の前記制御エラーを検出した場合に、設定可能な構成情報があるか否かを判定し、設定可能な構成情報がなくなった場合に、前記記憶部の動作を停止する停止部を有することを特徴とする請求項１に記載の記憶制御装置。
【請求項３】
前記記憶部の電源停止直前に設定中の前記構成情報を記憶するバックアップ記憶部を有し、
前記設定部は、
前記電源の起動を検出した場合、前記バックアップ記憶部に記憶中の前記構成情報を前記制御部に設定することを特徴とする請求項１又は２に記載の記憶制御装置。
【請求項４】
前記構成情報は、
前記制御部が前記記憶部のセットアップタイムを調整する情報であって、
前記設定部は、
異なる構成情報を前記制御部に設定することで、前記制御部の前記セットアップタイムを調整して前記記憶部へのデータ書込みタイミングを調整することを特徴とする請求項１又は２に記載の記憶制御装置。
【請求項５】
前記構成情報は、
前記制御部が前記記憶部に記憶されたデータを外部出力する制御信号の出力タイミングを調整する情報であって、
前記設定部は、
異なる構成情報を前記制御部に設定することで、前記制御部が前記出力タイミングを調整して、前記記憶部からのデータ出力タイミングを調整することを特徴とする請求項１又は２に記載の記憶制御装置。
【請求項６】
前記構成情報は、
前記制御部が前記記憶部のアクセス制御のタイミング調整に使用するクロック位相を調整する情報であって、
前記設定部は、
異なる構成情報を前記制御部に設定することで、前記制御部が前記クロック位相を調整して、前記記憶部のアクセス制御のタイミングを調整することを特徴とする請求項１又は２に記載の記憶制御装置。
【請求項７】
前記制御部は、
複数のバンクを備え、設定された構成情報に基づき、前記バンク内に前記回路を構成し、
前記構成記憶部は、
前記バンクに対応した前記構成情報が記憶され、
前記設定部は、
前記構成情報を前記制御部に設定することにより、前記バンク内の前記回路の構成を書き換えることを特徴とする請求項１又は２に記載の記憶制御装置。
【請求項８】
前記設定部にて設定された前記構成情報に基づき、当該バンク内に構成された前記回路と接続する記憶部の制御エラーを検出したか否かを判定する第１の判定部と、
前記記憶部の制御エラーを検出した場合に、前記記憶部と接続する前記回路の障害を検出したか否かを判定する第２の判定部と
をさらに有し、
前記設定部は、
前記第２の判定部にて前記回路の障害を検出した場合に、前記制御部内の他のバンクに、前記記憶部と接続する回路を構成する前記構成情報を設定することを特徴とする請求項７に記載の記憶制御装置。
【請求項９】
前記設定部にて設定された前記構成情報に基づき、当該バンク内に構成された前記回路と接続する記憶部の故障を検出したか否かを判定する第３の判定部と、
前記記憶部の故障を検出した場合に、前記記憶部と前記回路との間の通信速度を運用速度から低速化して前記記憶部と前記回路との間のタイミング調整のエラーを検出したか否かを判定し、その判定結果に基づき、前記記憶部と接続する前記回路の障害を検出したか否かを判定する第４の判定部と
をさらに有し、
前記設定部は、
前記第４の判定部にて前記回路の障害を検出した場合に、前記制御部内の他のバンクに、前記記憶部と接続する回路を構成する前記構成情報を設定することを特徴とする請求項７に記載の記憶制御装置。
【請求項１０】
記憶部と、前記記憶部をアクセス制御する、書き換え可能な制御部と、前記記憶部のアクセス制御の特性に対応する複数の構成情報が記憶された構成記憶部と、前記構成情報を前記制御部に設定することにより、前記制御部の回路の構成を書き換える設定部とを有する記憶制御装置は、
前記構成記憶部に記憶された前記複数の構成情報の内、一の構成情報を前記制御部に設定した後、前記記憶部の制御エラーを検出すると、前記一の構成情報と異なる他の構成情報を前記制御部に設定する
処理を実行することを特徴とする記憶制御方法。
【請求項１１】
記憶部と、前記記憶部をアクセス制御する、書き換え可能な制御部と、前記記憶部のアクセス制御の特性に対応する複数の構成情報が記憶された構成記憶部と、前記構成情報を前記制御部に設定することにより、前記制御部の回路の構成を書き換える設定部とを有する記憶制御装置に、
前記構成記憶部に記憶された前記複数の構成情報の内、一の構成情報を前記制御部に設定した後、前記記憶部の制御エラーを検出すると、前記一の構成情報と異なる他の構成情報を前記制御部に設定する
処理を実行させることを特徴とする記憶制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御装置、記憶制御方法及び記憶制御プログラムに関する。
【背景技術】
【０００２】
例えば、通信機器やコンピュータ等の情報処理装置は、各種情報を記憶した記憶部を有している。図１１は、情報処理装置内部の一例を示すブロック図である。例えば、通信機器等の情報処理装置１００Ａは、ＣＰＵ（Central  Processing  Unit）１０１と、ＦＰＧＡ（Field  Programmable  Gate  Array）１０２と、記憶部１０３と、記憶制御部１０４とを有する。ＣＰＵ１０１は、ＦＰＧＡ１０２を通じて記憶部１０３に対してデータの書込み及び読出しを制御する。ＦＰＧＡ１０２は、後述する設定中の構成情報に基づき記憶部１０３をアクセス制御する。フラッシュメモリ１１１には、記憶部１０３の交流（ＡＣ：Alternating  Current）特性に対応した構成情報が記憶される。尚、構成情報は、例えば、ＦＰＧＡ１０２が記憶部１０３をアクセス制御する上で記憶部１０３に対する各種制御信号のタイミングを制御する情報である。
【０００３】
ＦＰＧＡ１０２は、ＣＰＵインタフェース１０２Ａと、メモリインタフェース１０２Ｂと、メモリコントローラ１０２Ｃとを有する。ＣＰＵインタフェース１０２Ａは、ＣＰＵ１０１とメモリコントローラ１０２Ｃとを接続するインタフェースである。メモリインタフェース１０２Ｂは、メモリコントローラ１０２Ｃと記憶部１０３とを接続するインタフェースである。メモリコントローラ１０２Ｃは、設定中の構成情報に基づき、記憶部１０３をアクセス制御する。記憶部１０３は、例えば、ＥＡＲＯＭ（Electrically  Alterable  ROM）、ＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  ROM）、フラッシュメモリ、ＦｅＲＡＭ（Ferroelectric  RAM）、ＭＲＡＭ（Magnetic  RAM）等のメモリ装置である。
【０００４】
記憶制御部１０４は、フラッシュメモリ１１１と、コンフィグレーション制御部１１２とを有する。コンフィグレーション制御部１１２は、情報処理装置１００Ａの電源起動を検出すると、フラッシュメモリ１１１に記憶中の初期設定の構成情報を読み出す。更に、コンフィグレーション制御部１１２は、構成情報及びコンフィグレーション信号（以下、コンフィグ信号と称する）をＦＰＧＡ１０２に通知する。ＦＰＧＡ１０２内のメモリコントローラ１０２Ｃは、コンフィグレーション制御部１１２からのコンフィグ信号に応じて構成情報をＦＰＧＡ１０２に設定する。
【０００５】
メモリコントローラ１０２Ｃは、記憶部１０３との間で、例えば、アドレス信号、チップセレクト信号、ライトイネーブル信号、アウトプットイネーブル信号等の制御信号を用いて記憶部１０３のアクセスを制御する。尚、アドレス信号は、記憶部１０３内のアドレスを指定する信号である。チップセレクト信号は、記憶部１０３内のチップを指定する信号である。ライトイネーブル信号は、記憶部１０３内のデータ書込みを指示する信号である。アウトプットイネーブル信号は、記憶部１０３内のデータ読出を指示する信号である。
【０００６】
構成情報は、メモリコントローラ１０２Ｃが記憶部１０３に対して正常にアクセス制御する上で、例えば、所定のセットアップタイム及びホールドタイムを設定する情報である。尚、セットアップタイムは、タイミング信号に先立ってデータを確定及び保持する最小限の時間である。ホールドタイムは、タイミング信号検出後もデータを保持する時間である。つまり、メモリコントローラ１０２Ｃは、セットアップタイム及びホールドタイムの条件を満たすことで、記憶部１０３との制御信号間の正常なタイミングでアクセス制御が可能となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−１２２８４２号公報
【特許文献２】国際公開第２００４／１０２３８９号
【特許文献３】特開２００６−９９５９７号公報
【特許文献４】特開２００６−６５４７０号公報
【特許文献５】特開２００７−８７２８４号公報
【特許文献６】特開２００４−２４６６９９号公報
【特許文献７】特開２００１−１３６０５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ＦＰＧＡ１０２は、初期設定の構成情報を設定中に、記憶部１０３の経年劣化や温度変化等の環境変化で記憶部１０３のＡＣ特性に変化が生じた場合に記憶部１０３との制御信号間でタイミングエラーが生じる。従って、ＦＰＧＡ１０２では、記憶部１０３との制御信号間のタイミングエラーが生じた場合、初期設定の構成情報で決定される、例えば、セットアップタイムまでにデータを確定及び保持できない。その結果、ＦＰＧＡ１０２は、記憶部１０３の特性変化等で初期設定の構成情報では記憶部１０３に対する正常なアクセス制御を確保できない。
【０００９】
そこで、記憶制御部１０４では、例えば、チップセレクト信号、アドレス信号、ライトイネーブル信号やアウトプットイネーブル信号等の制御信号毎にタイミングを調整するタイミング調整回路を備え、制御信号間のタイミングエラーを解消することが考えられる。しかしながら、各タイミング調整回路は、制御信号のタイミングを高精度に調整するには複数段のフリップフロップ回路を要する。従って、記憶制御部１０４では、制御信号毎に複数のフリップフロップ回路を備えたタイミング調整回路を要するため、その回路規模が大規模になることは勿論のこと、その消費電力も大きくなる。
【００１０】
一つの側面は、記憶部の特性に変化が生じた場合でも記憶部に対して正常なアクセス制御を確保できる記憶制御装置、記憶制御方法及び記憶制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
開示の装置は一つの態様において、記憶部をアクセス制御する制御部に関わる、前記記憶部のアクセス制御の特性に対応した、複数の構成情報を記憶する構成記憶部と、前記構成情報を前記制御部に設定する設定部とを有する。更に、開示の装置の前記設定部は、前記構成記憶部に記憶中の一の構成情報を前記制御部に設定した後、前記記憶部の制御エラーを検出すると、前記構成記憶部に記憶中の異なる構成情報に切替えて、切替えられた構成情報を前記制御部に設定する。
【発明の効果】
【００１２】
記憶部の特性に変化が生じた場合でも記憶部に対して正常なアクセス制御を確保できる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１の情報処理装置内部の一例を示すブロック図である。
【図２】図２は、生成部内部の一例を示すブロック図である。
【図３】図３は、生成部内部の再コンフィグ信号の生成タイミングを示す説明図である。
【図４】図４は、ＦＰＧＡ及び選択部に関わる記憶部のタイミングエラー発生からタイミングエラー解消までの動作タイミングを示す説明図である。
【図５】図５は、コンフィグレーション制御処理に関わるＦＰＧＡ及びコンフィグレーション制御部の処理動作の一例を示すフローチャートである。
【図６】図６は、実施例２の情報処理装置内部の一例を示すブロック図である。
【図７】図７は、ＦＰＧＡのバンク構成の一例を示す説明図である。
【図８】図８は、コンフィグレーション制御処理に関わるＦＰＧＡ及びコンフィグレーション制御部の処理動作の一例を示すフローチャートである。
【図９】図９は、故障判定処理に関わる故障判定部の処理動作の一例を示すフローチャートである。
【図１０】図１０は、記憶制御プログラムを実行するコンピュータを示す説明図である。
【図１１】図１１は、情報処理装置内部の一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、図面に基づいて、本願の開示する記憶制御装置、記憶制御方法及び記憶制御プログラムの実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。
【実施例１】
【００１５】
図１は、実施例１の情報処理装置内部の一例を示すブロック図である。図１に示す情報処理装置１は、例えば、通信機器やコンピュータ等に相当し、ＣＰＵ２と、ＦＰＧＡ３と、記憶部４と、記憶制御部５とを有する。ＣＰＵ２は、情報処理装置１全体を制御すると共に、ＦＰＧＡ３経由で記憶部４をアクセス制御する。ＦＰＧＡ３は、ＣＰＵ２と記憶部４との間に配置し、記憶部４をアクセス制御する。ＦＰＧＡ３は、ＣＰＵインタフェース１１と、メモリインタフェース１２と、メモリコントローラ１３とを有する。ＣＰＵインタフェース１１は、ＣＰＵ２とメモリコントローラ１３とを接続するインタフェースである。メモリインタフェース１２は、メモリコントローラ１３と記憶部４とを接続するインタフェースである。メモリコントローラ１３は、後述する設定中の構成情報に基づき、記憶部４をアクセス制御する。更に、メモリコントローラ１３は、記憶部４の状態、例えば、ＥＣＣ（Error  Check  and  Correct）やパリティチェックを行うチェック部１３Ａを有する。チェック部１３Ａは、例えば、記憶部４の経年変化や温度変化等の環境変化による記憶部４のＡＣ特性が変化した場合に記憶部４の制御信号間のタイミングエラーを検出すると、メモリＮＧ信号を出力する。
【００１６】
記憶部４は、例えば、ＥＡＲＯＭ（Electrically  Alterable  ROM）、ＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  ROM）、フラッシュメモリ、ＦｅＲＡＭ（Ferroelectric  RAM）、ＭＲＡＭ（Magnetic  RAM）等のメモリ装置である。また、記憶部４は、例えば、ＰＲＡＭ（Pseudo  RAM）、ＲｅＲＡＭ（Resistance  RAM）、ＤＲＡＭ（Dynamic  RAM）やＳＲＡＭ（Static  RAM）等のメモリ装置である。
【００１７】
記憶制御部５は、メモリ２０と、指示部３０と、コンフィグレーション制御部４０とを有する。メモリ２０は、例えばフラッシュメモリ、ＥＡＲＯＭ、ＥＥＰＲＯＭ等のメモリ装置である。メモリ２０には、記憶部４の異なるＡＣ特性に対応した複数の構成情報が格納してある。尚、メモリ２０には、例えば、アドレス“００００”〜“０ＦＦＦ”の格納領域に初期設定の構成情報“Ａ”が格納してある。更に、メモリ２０には、アドレス“１０００”〜“１ＦＦＦ”の格納領域に、他のＡＣ特性に対応した構成情報“Ｂ”が格納してある。更に、メモリ２０は、アドレス“２０００”〜“２ＦＦＦ”の格納領域に、他のＡＣ特性に対応した構成情報“Ｃ”が格納してある。これら３種類の構成情報“Ａ”〜“Ｃ”は、一例に過ぎず、２種類あるいは４以上の種類の構成情報をメモリ２０格納してもよい。
【００１８】
指示部３０は、選択部３１と、生成部３２とを有する。選択部３１は、メモリコントローラ１３からの“Ｈ”レベルのメモリＮＧ信号を検出すると、メモリ２０に格納された構成情報の内、切替先の構成情報を選択する選択信号を出力する。生成部３２は、“Ｈ”レベルのメモリＮＧ信号を検出すると、“Ｈ”レベルのメモリＮＧ信号のタイミングに基づき再コンフィグ信号を生成する。
【００１９】
図２は、生成部３２内部の一例を示すブロック図である。図３は、生成部３２内部の再コンフィグ信号の生成タイミングを示す説明図である。生成部３２は、フリップフロップ回路（以下、単にＦＦ回路）３２Ａと、ＮＯＴ回路３２Ｂと、ＡＮＤ回路３２Ｃと、ＦＦ回路３２Ｄとを有する。図３においてＦＦ回路３２Ａは、“Ｈ”レベルのメモリＮＧ信号の立ち上がりを検出すると、このメモリＮＧ信号を１クロック（ＣＬＫ）分遅延した信号をＮＯＴ回路３２Ｂに出力する。ＮＯＴ回路３２Ｂは、ＦＦ回路３２Ａの出力信号を反転してＡＮＤ回路３２Ｃへ出力する。ＡＮＤ回路３２Ｃは、ＮＯＴ回路３２Ｂの出力信号と、“Ｈ”レベルのメモリＮＧ信号との論理積による信号を出力する。ＦＦ回路３２Ｄは、ＡＮＤ回路３２Ｃの出力信号を１クロック分遅延することで、再コンフィグ信号を出力する。尚、再コンフィグ信号は、他の構成情報をＦＰＧＡ３に再設定する際のコンフィグ信号の生成に使用する。
【００２０】
コンフィグレーション制御部４０は、選択部３１から切替先の構成情報を選択する選択信号を検出すると、選択信号により指定された構成情報をメモリ２０から読み出す。
【００２１】
コンフィグレーション制御部４０は、上位指定部４１と、下位指定部４２と、ビット結合部４３とを有する。上位指定部４１は、選択部３１からの選択信号を検出すると、構成情報を格納したメモリ２０内の格納領域のアドレスの上位ビットを指定する。下位指定部４２は、当該格納領域のアドレスの下位ビットを指定する。尚、例えば、構成情報“Ｂ”の格納領域の先頭アドレスが“１０００”の場合、上位ビットは“１”、下位ビットは“０００”となる。ビット結合部４３は、上位指定部４１により指定された上位ビットと、下位指定部４２により指定された下位ビットとを結合して読み出し対象の構成情報のアドレスを生成する。尚、ビット結合部４３は、上位ビットが“１”、下位ビットが“０００”とした場合、“１”と“０００”とを結合してアドレス信号“１０００”となる。コンフィグレーション制御部４０は、ビット結合部４３が出力したアドレス信号に基づき、メモリ２０から構成情報を読み出す。更に、コンフィグレーション制御部４０は、生成部３２から再コンフィグ信号を検出すると、読み出された指定の構成情報をＦＰＧＡ３に設定するコンフィグ信号をＦＰＧＡ３に出力する。ＦＰＧＡ３は、コンフィグ信号を検出すると、構成情報を設定する。
【００２２】
次に実施例１の情報処理装置１の動作について説明する。図４は、ＦＰＧＡ３及び選択部３１に関わる記憶部４のタイミングエラー発生からタイミングエラー解消までの動作タイミングを示す説明図である。図４では、記憶部４の経年変化や温度変化等の環境変化でＡＣ特性に変化が生じ、例えば、初期設定の構成情報“Ａ”のセットアップタイム前にデータを確定及び保持できずにタイミングエラーが生じたとする。尚、初期設定の構成情報“Ａ”は、セットアップタイムＴｓｕとホールドタイムＴｈとの間を、例えば５ｎ秒間とする。この際、メモリコントローラ１３のチェック部１３Ａは、構成情報“Ａ”のタイミングエラーを検出すると、“Ｈ”レベルのメモリＮＧ信号を出力する。指示部３０内の選択部３１は、メモリコントローラ１３から“Ｈ”レベルのメモリＮＧ信号を検出すると、構成情報“Ａ”から切替先の構成情報“Ｂ”を選択する選択信号をコンフィグレーション制御部４０に出力する。更に、指示部３０内の生成部３２は、“Ｈ”レベルのメモリＮＧ信号のタイミングに基づき再コンフィグ信号を生成する。そして、生成部３２は、再コンフィグ信号をコンフィグレーション制御部４０に出力する。
【００２３】
コンフィグレーション制御部４０は、選択信号を受信した場合、上位指定部４１、下位指定部４２及びビット結合部４３を通じて構成情報“Ｂ”の格納領域のアドレス信号を生成する。更に、コンフィグレーション制御部４０は、アドレス信号に基づき、メモリ２０の格納領域から指定の構成情報“Ｂ”を読み出す。更に、コンフィグレーション制御部４０は、構成情報“Ｂ”をＦＰＧＡ３内のメモリコントローラ１３に出力する。更に、コンフィグレーション制御部４０は、指示部３０からの再コンフィグ信号を検出すると、再コンフィグ信号に基づき、ＦＰＧＡ３に構成情報“Ｂ”を設定するコンフィグ信号を出力する。ＦＰＧＡ３は、コンフィグ信号を検出すると、構成情報“Ｂ”が設定されるため、構成情報“Ｂ”のセットアップタイムＴｓｕ１とホールドタイムＴｈ１との間が、例えば３ｎ秒間となる。その結果、ＦＰＧＡ３は、セットアップタイムがＴｓｕからＴｓｕ１へ変わることで、セットアップタイムＴｓｕ１時又はセットアップタイムＴｓｕ１以前にデータを確定及び保持できる。従って、ＦＰＧＡ３は、構成情報“Ｂ”の設定で記憶部４のタイミングエラーが解消できる。つまり、図４の例では、構成情報“Ａ”から構成情報“Ｂ”に切替選択し、セットアップタイムを変更して記憶部４のタイミングエラーが解消できる。
【００２４】
図５は、コンフィグレーション制御処理に関わるＦＰＧＡ３及びコンフィグレーション制御部４０の処理動作の一例を示すフローチャートである。図５においてコンフィグレーション制御部４０は、情報処理装置１の電源起動時にメモリ２０に格納された初期設定の構成情報“Ａ”をＦＰＧＡ３に設定する（ステップＳ１１）。ＦＰＧＡ３は、通常運用時に、例えば、記憶部４に書き込んだデータを読み出す（ステップＳ１２）。ＦＰＧＡ３のメモリコントローラ１３のチェック部１３Ａは、記憶部４のチェック結果がＯＫ状態であるか否かを判定する（ステップＳ１３）。尚、チェック部１３Ａは、例えば、セットアップタイム及びホールドタイムの正常条件を満たしたか否かを判定し、正常条件を満たした場合はチェック結果をＯＫ状態とし、正常条件を満たしていない場合はチェック結果をＯＫ状態でない、ＮＧ状態とする。チェック部１３Ａは、チェック結果がＯＫ状態の場合（ステップＳ１３肯定）、記憶部４に書き込んだデータを読み出すべく、ステップＳ１２に移行する。
【００２５】
また、チェック部１３Ａは、チェック結果がＯＫ状態でない場合（ステップＳ１３否定）、選択部３１に対して“Ｈ”レベルのメモリＮＧ信号を出力する（ステップＳ１４）。選択部３１は、“Ｈ”レベルのメモリＮＧ信号を検出すると、切替先の構成情報を選択する選択信号をコンフィグレーション制御部４０に出力する（ステップＳ１５）。更に、生成部３２は、“Ｈ”レベルのメモリＮＧ信号を検出すると、メモリＮＧ信号のタイミングに基づき再コンフィグ信号をコンフィグレーション制御部４０に出力する（ステップＳ１６）。
【００２６】
コンフィグレーション制御部４０は、ＦＰＧＡ３に現在設定中の構成情報が“Ｃ”であるか否かを判定する（ステップＳ１７）。コンフィグレーション制御部４０は、ＦＰＧＡ３に現在設定中の構成情報が“Ｃ”でない場合（ステップＳ１７否定）、再コンフィグ信号を検出すると、コンフィグ信号をＦＰＧＡ３に出力する。そして、ＦＰＧＡ３は、コンフィグ信号を検出すると、切替先の構成情報をＦＰＧＡ３に再設定する（ステップＳ１８）。尚、ＦＰＧＡ３内のメモリコントローラ１３は、情報処理装置１の電源起動時に初期設定の構成情報“Ａ”を設定し、“Ｈ”レベルのメモリＮＧ信号を検出する都度、構成情報“Ｂ”→構成情報“Ｃ”に切替え設定する。そして、コンフィグレーション制御部４０は、コンフィグ信号で構成情報をＦＰＧＡ３のメモリコントローラ１３に再設定すると、ステップＳ１２に移行する。
【００２７】
また、コンフィグレーション制御部４０は、ＦＰＧＡ３に現在設定中の構成情報が“Ｃ”である場合（ステップＳ１７肯定）、メモリ２０内の全ての構成情報が設定されてもチェック結果がＮＧ状態であると判断する。その結果、コンフィグレーション制御部４０は、記憶部４の故障を外部通知する（ステップＳ１９）。尚、情報処理装置１側のユーザは、例えば、故障アラームの音響出力や点灯出力等の外部通知で記憶部４の故障を認識できる。更に、コンフィグレーション制御部４０は、記憶部４の故障を外部通知すると、記憶部４の動作を停止し（ステップＳ２０）、図５に示す処理動作を終了する。
【００２８】
図５に示すコンフィグレーション制御処理では、記憶部４の特性変化で“Ｈ”レベルのメモリＮＧ信号を検出すると、メモリ２０に格納中の複数の構成情報から異なる構成情報を読み出し、読み出された構成情報をＦＰＧＡ３に設定する。その結果、ＦＰＧＡ３は、読み出された構成情報が設定されるため、記憶部４の特性変化に対応した構成情報を提供できる。
【００２９】
また、コンフィグレーション制御処理では、情報処理装置１の電源起動時に初期設定の構成情報“Ａ”、その後、“Ｈ”レベルのメモリＮＧ信号を検出する都度、構成情報“Ｂ”→構成情報“Ｃ”の順に切替設定する。その結果、構成情報“Ａ”→構成情報“Ｂ”→構成情報“Ｃ”の順に提供できる。尚、再度、情報処理装置１の電源起動を検出すると、初期設定の構成情報“Ａ”に切替設定される。
【００３０】
また、コンフィグレーション制御処理では、構成情報“Ａ”→構成情報“Ｂ”→構成情報“Ｃ”の各構成情報が切替設定され、全ての構成情報によっても記憶部４のタイミングエラーが解消できない場合、記憶部４の故障を外部へ通知する。その結果、情報処理装置１側のユーザは、通知に基づき記憶部４の故障を認識できる。
【００３１】
更に、コンフィグレーション制御処理では、各構成情報が順次設定されても、記憶部４のタイミングエラーが解消できなかった場合、記憶部４の動作を停止する。その結果、タイミングエラーを抱えた記憶部４の動作を自動停止できる。
【００３２】
実施例１では、複数の構成情報を記憶しておき、一の構成情報をＦＰＧＡ３に設定した後、記憶部４のＡＣ特性変化で“Ｈ”レベルのメモリＮＧ信号を検出した場合、他の構成情報に切替えて、切替えられた構成情報をＦＰＧＡ３に設定する。その結果、ＦＰＧＡ３は、記憶部４のＡＣ特性変化によるタイミングエラーが発生した場合でも、構成情報を切替えて記憶部４のＡＣ特性変化によるタイミングエラーを解消できる。しかも、記憶制御部５では、記憶部４のＡＣ特性変化によるタイミングエラーを解消する機能を備えたからといって、特別に大規模な回路規模を要せず、その消費電力も特別に大きくなることもない。
【００３３】
また、実施例１では、異なる構成情報を切替設定した後、切替設定された各構成情報でもタイミングエラーが解消できない場合、記憶部４の動作を停止する。その結果、タイミングエラーを抱えた記憶部４の動作を自動停止できる。
【００３４】
また、実施例１では、構成情報がセットアップタイムを調整する情報としたので、構成情報を切替設定することでセットアップタイムを調整する。その結果、ＦＰＧＡ３は、切替えた構成情報のセットアップタイム前にデータを確定及び保持できるため、ＡＣ特性変化による記憶部４のタイミングエラーを解消できる。
【００３５】
尚、上記実施例１では、メモリＮＧ信号を検出する都度、初期設定の構成情報“Ａ”→構成情報“Ｂ”→構成情報“Ｃ”に切替設定し、電源停止後、再度、電源起動を検出すると、初期設定の構成情報“Ａ”からＦＰＧＡ３に設定する。しかしながら、記憶制御部５では、電源停止直前に設定中の構成情報、例えば、構成情報“Ｂ”をバックアップする不揮発性のバックアップ記憶部を備える。更に、記憶制御部５は、電源起動を検出した場合、タイミングエラーが生じた初期設定の構成情報“Ａ”を再度設定せず、バックアップ記憶部に記憶中の構成情報“Ｂ”をＦＰＧＡ３に設定しても良い。
【００３６】
また、上記実施例１では、記憶部４のＡＣ特性変化に対応した構成情報として、例えば、セットアップタイムを調整する情報としたが、例えば、ホールドタイムを調整する情報としても良い。
【００３７】
また、構成情報として記憶部４に記憶されたデータを外部出力する制御信号の出力タイミングを調整する情報としても良い。ＦＰＧＡ３は、異なる構成情報を切替設定することで、制御信号の出力タイミングを調整して、記憶部４からのデータ読み出しタイミングを調整する。その結果、ＦＰＧＡ３は、記憶部４のＡＣ特性変化によるタイミングエラーを解消できる。例えば、ＦＰＧＡ３が記憶部４へ出力する制御信号であるチップセレクト信号の出力タイミングを早める構成情報を切替設定することで、記憶部４のＡＣ特性変化によるタイミングエラーを解消できる。
【００３８】
また、構成情報としてＦＰＧＡ３が記憶部４のアクセス制御のタイミング調整に使用するクロック（ＣＬＫ）の位相を調整する情報としても良い。この場合、ＦＰＧＡ３は、異なる構成情報を切替設定することで、クロック（ＣＬＫ）の位相を調整して、記憶部４のアクセス制御のタイミングを調整する。その結果、ＦＰＧＡ３は、記憶部４のＡＣ特性変化によるタイミングエラーを解消できる。
【００３９】
尚、上記実施例１では、ＦＰＧＡ３が、記憶部４のＡＣ特性変化によるタイミングエラーが発生した場合、異なる構成情報を切替えて記憶部４のＡＣ特性変化によるタイミングエラーを解消した。しかしながら、ＦＰＧＡ３内のメモリインタフェース１２自体が故障した場合、記憶部４に対してアクセス制御できない。そこで、メモリインタフェース１２自体が故障した場合でも、記憶部４に対して正常にアクセス制御できる情報処理装置１につき、実施例２として以下に説明する。
【実施例２】
【００４０】
図６は、実施例２の情報処理装置内部の一例を示すブロック図である。尚、実施例１の情報処理装置１と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。図６に示す情報処理装置１Ａは、ＣＰＵ２と、ＦＰＧＡ３Ａと、記憶部４と、記憶制御部５Ａとを有する。ＣＰＵ２は、情報処理装置１Ａ全体を制御すると共に、ＦＰＧＡ３Ａ経由で記憶部４をアクセス制御する。ＦＰＧＡ３Ａは、ＣＰＵ２と記憶部４との間に配置し、記憶部４をアクセス制御する。ＦＰＧＡ３Ａは、ＣＰＵインタフェース１１と、メモリインタフェース１２Ａと、メモリコントローラ１３Ｂとを有する。
【００４１】
メモリインタフェース１２Ａは、メモリコントローラ１３Ｂと記憶部４とを接続するインタフェースである。メモリインタフェース１２Ａは、運用モード設定部６１と、低速モード設定部６２と、ＳＥＬ（Selector）６３とを有する。運用モード設定部６１は、記憶部４との通信速度が、後述の低速モードよりも速い通常速度の運用モードに設定する。低速モード設定部６２は、通信速度が運用モードの通常速度よりも遅い低速モードに設定する。ＳＥＬ６３は、メモリコントローラ１３Ｂの切替制御のモード制御信号に応じて運用モード設定部６１又は低速モード設定部６２を切替選択することで、通信速度を運用モード又は低速モードに設定する。尚、低速モードに設定された場合、メモリインタフェース１２Ａの通信速度が全体的に遅くなるため、ＡＣタイミングのセットアップタイムやホールドタイムに余裕が生じてタイミングエラーが解消できる。
【００４２】
メモリコントローラ１３Ｂは、設定中の構成情報に基づき、記憶部４をアクセス制御する。更に、メモリコントローラ１３Ｂは、チェック部１３Ａの他に、メモリインタフェース１２Ａの故障を判定する故障判定部１３Ｃを有する。故障判定部１３Ｃは、所定タイミングに応じて、ＳＥＬ６３を切替制御することで運用モードから低速モードに切替設定する。尚、所定タイミングとは、例えば、チェック部１３Ａのチェック結果がＯＫ状態でない、すなわちＮＧ状態を検出した場合である。
【００４３】
故障判定部１３Ｃは、例えば、チェック部１３ＡがＮＧ状態を検出した場合、運用モードから低速モードに切り替え設定してメモリインタフェース１２Ａの故障を判定する故障判定処理を実行する。故障判定部１３Ｃは、低速モードに設定されてチェック結果がＯＫ状態の場合、メモリインタフェース１２Ａが正常と判定する。これに対して、故障判定部１３Ｃは、低速モードに設定されたにもかかわらず、チェック結果がＮＧ状態のままの場合、メモリインタフェース１２Ａの故障と判定する。そして、故障判定部１３Ｃは、メモリインタフェース１２Ａの故障と判定された場合、インタフェースＮＧ信号を指示部３０に出力する。
【００４４】
図７は、ＦＰＧＡ３Ａのバンク構成の一例を示す説明図である。図７に示すＦＰＧＡ３Ａは、例えば、Ｂａｎｋ  ａ〜Ｂａｎｋ  ｐの合計１６個のＩ／Ｏを備えたバンクを有し、各バンクは、設定された構成情報に基づき、例えば、メモリインタフェース１２Ａやメモリコントローラ１３Ｂ等の各回路として機能（構成）する。そして、ＦＰＧＡ３Ａは、空きのＢａｎｋを確保しておく。例えば、ＦＰＧＡ３Ａ内のＢａｎｋ  ａは、例えば、メモリインタフェース１２Ａとして機能し、ＦＰＧＡ３Ａ内のＢａｎｋ  ｂは、未使用の空き領域とする。
【００４５】
記憶制御部５Ａは、メモリ２０Ａと、指示部３０Ａと、コンフィグレーション制御部４０Ａとを有する。メモリ２０Ａは、例えば、ＦＰＧＡ３Ａ内のメモリインタフェース１２Ａの構成情報が格納してある。尚、メモリ２０Ａには、アドレス“００００”〜“０ＦＦＦ”の格納領域に、ＦＰＧＡ３Ａ内のＢａｎｋ  ａの構成情報“Ａ”が格納してある。更に、メモリ２０Ａには、アドレス“１０００”〜“１ＦＦＦ”の格納領域に、ＦＰＧＡ３Ａ内のＢａｎｋ  ａの構成情報“Ｂ”が格納してある。更に、メモリ２０Ａには、アドレス“２０００”〜“２ＦＦＦ”の格納領域に、ＦＰＧＡ３Ａ内のＢａｎｋ  ａの構成情報“Ｃ”が格納してある。
【００４６】
また、メモリ２０Ａには、アドレス“３０００”〜“３ＦＦＦ”の格納領域に、ＦＰＧＡ３Ａ内のＢａｎｋ  ｂの構成情報“Ａ”が格納してある。更に、メモリ２０Ａには、アドレス“４０００”〜“４ＦＦＦ”の格納領域に、ＦＰＧＡ３Ａ内のＢａｎｋ  ｂの構成情報“Ｂ”が格納してある。更に、メモリ２０Ａには、アドレス“５０００”〜“５ＦＦＦ”の格納領域に、ＦＰＧＡ３Ａ内のＢａｎｋ  ｂの構成情報“Ｃ”が格納してある。
【００４７】
指示部３０Ａは、生成部３２の他に、選択部３１Ａを有する。選択部３１Ａは、メモリコントローラ１３Ｂからの“Ｈ”レベルのメモリＮＧ信号を検出すると、メモリ２０Ａに格納されたＢａｎｋの内、切替先のＢａｎｋを選択する第１の選択信号を出力する。更に、選択部３１Ａは、“Ｈ”レベルのメモリＮＧ信号を検出すると、メモリ２０Ａに格納された切替先Ｂａｎｋの構成情報“Ａ”〜“Ｃ”の内、切替先の構成情報を選択する第２の選択信号を出力する。生成部３２は、“Ｈ”レベルのメモリＮＧ信号及び“Ｈ”レベルのインタフェースＮＧ信号を検出すると、“Ｈ”レベルのメモリＮＧ信号及び“Ｈ”レベルのインタフェースＮＧ信号のタイミングに基づき再コンフィグ信号を生成する。尚、再コンフィグ信号は、他の構成情報をＦＰＧＡ３Ａに再設定する際のコンフィグ信号の生成に使用する。
【００４８】
コンフィグレーション制御部４０Ａは、選択部３１Ａから切替先のＢａｎｋ及び切替先の構成情報を選択する選択信号を検出すると、メモリ２０Ａから指定のＢａｎｋの構成情報を読み出す。尚、選択信号は、切替先のＢａｎｋを選択する第１の選択信号と、切替先の構成情報を選択する第２の選択信号とを含む。
【００４９】
コンフィグレーション制御部４０Ａは、Ｂａｎｋ指定部４１Ａと、上位指定部４１Ｂと、下位指定部４２Ａと、ビット結合部４３Ａとを有する。Ｂａｎｋ指定部４１Ａは、選択部３１Ａから第１の選択信号が検出されると、切替先のＢａｎｋを指定する。Ｂａｎｋ指定部４１Ａは、第１の選択信号“０”が検出されると、Ｂａｎｋ  ａを指定すると共に、第１の選択信号“１”が検出されると、Ｂａｎｋ  ｂを指定する。
【００５０】
また、上位指定部４１Ｂは、選択部３１Ａから第２の選択信号が検出されると、切替先の構成情報を指定する。上位指定部４１Ｂは、例えば、第２の選択信号“０”が検出されると、構成情報“Ａ”を指定する。また、上位指定部４１Ｂは、例えば、第２の選択信号“１”が検出されると、構成情報“Ｂ”を指定する。また、上位指定部４１Ｂは、例えば、第２の選択信号“２”が選択されると、構成情報“Ｃ”を指定する。
【００５１】
また、下位指定部４２Ａは、メモリ２０Ａ内の格納領域のアドレスの下位ビットを指定する。ビット結合部４３Ａは、上位ビットと下位ビットとを結合して読み出し対象の構成情報のアドレスを指定する。ビット結合部４３Ａは、例えば、Ｂａｎｋ指定部４１Ａが“０”、上位指定部４１Ｂが“０”の場合、Ｂａｎｋ  ａの構成情報“Ａ”の上位アドレス“０”を指定すると共に、下位指定部４２Ａの下位アドレス“０００”を指定する。コンフィグレーション制御部４０Ａは、上位アドレス“０”と下位アドレス“０００”とを結合して、アドレス“００００”を指定してＢａｎｋ  ａの構成情報“Ａ”をメモリ２０Ａから読み出す。
【００５２】
また、ビット結合部４３Ａは、Ｂａｎｋ指定部４１Ａが“０”、上位指定部４１Ｂが“１”の場合、Ｂａｎｋ  ａの構成情報“Ｂ”の上位アドレス“１”を指定すると共に、下位指定部４２Ａの下位アドレス“０００”を指定する。コンフィグレーション制御部４０Ａは、上位アドレス“１”と下位アドレス“０００”とを結合して、アドレス“１０００”を指定してＢａｎｋ  ａの構成情報“Ｂ”をメモリ２０Ａから読み出す。
【００５３】
また、ビット結合部４３Ａは、Ｂａｎｋ指定部４１Ａが“０”、上位指定部４１Ｂが“２”の場合、Ｂａｎｋ  ａの構成情報“Ｃ”の上位アドレス“２”を指定すると共に、下位指定部４２Ａの下位アドレス“０００”を指定する。コンフィグレーション制御部４０Ａは、上位アドレス“２”と下位アドレス“０００”とを結合して、アドレス“２０００”を指定してＢａｎｋ  ａの構成情報“Ｃ”をメモリ２０Ａから読み出す。
【００５４】
また、ビット結合部４３Ａは、例えば、Ｂａｎｋ指定部４１Ａが“１”、上位指定部４１Ｂが“０”の場合、Ｂａｎｋ  ｂの構成情報「Ａ」の上位アドレス“３”を指定すると共に、下位指定部４２Ａの下位アドレス“０００”を指定する。コンフィグレーション制御部４０Ａは、上位アドレス“３”と下位アドレス“０００”とを結合して、アドレス“３０００”を指定してＢａｎｋ  ｂの構成情報“Ａ”をメモリ２０Ａから読み出す。
【００５５】
また、ビット結合部４３Ａは、例えば、Ｂａｎｋ指定部４１Ａが“１”、上位指定部４１Ｂが“１”の場合、Ｂａｎｋ  ｂの構成情報“Ｂ”の上位アドレス“４”を指定すると共に、下位指定部４２Ａの下位アドレス“０００”を指定する。コンフィグレーション制御部４０Ａは、上位アドレス“４”と下位アドレス“０００”とを結合して、アドレス“４０００”を指定してＢａｎｋ  ｂの構成情報“Ｂ”をメモリ２０Ａから読み出す。
【００５６】
また、ビット結合部４３Ａは、例えば、Ｂａｎｋ指定部４１Ａが“１”、上位指定部４１Ｂが“２”の場合、Ｂａｎｋ  ｂの構成情報“Ｃ”の上位アドレス“５”を指定すると共に、下位指定部４２Ａの下位アドレス“０００”を指定する。コンフィグレーション制御部４０Ａは、上位アドレス“５”と下位アドレス“０００”とを結合して、アドレス“５０００”を指定してＢａｎｋ  ｂの構成情報“Ｃ”をメモリ２０Ａから読み出す。
【００５７】
コンフィグレーション制御部４０Ａは、ビット結合部４３Ａからのアドレス信号に基づき、メモリ２０Ａから構成情報を読み出す。更に、コンフィグレーション制御部４０Ａは、生成部３２から再コンフィグ信号を検出すると、読み出された指定の構成情報をＦＰＧＡ３Ａに設定するコンフィグ信号をＦＰＧＡ３Ａに出力する。ＦＰＧＡ３Ａは、コンフィグ信号を検出すると、構成情報を設定する。
【００５８】
つまり、コンフィグレーション制御部４０Ａは、Ｂａｎｋ  ｂの構成情報がメモリ２０Ａから読み出されると、Ｂａｎｋ  ｂの格納領域に構成情報が設定される。その結果、ＦＰＧＡ３Ａは、ＦＰＧＡ３Ａ内のＢａｎｋ  ａのメモリインタフェース１２Ａの代わりに、Ｂａｎｋ  ｂの新たなメモリインタフェース１２Ａを機能させる。
【００５９】
次に実施例２の情報処理装置１Ａの動作について説明する。図８は、コンフィグレーション制御処理に関わるＦＰＧＡ３Ａ及びコンフィグレーション制御部４０Ａの処理動作の一例を示すフローチャートである。図８においてコンフィグレーション制御部４０Ａは、情報処理装置１Ａの電源起動時にメモリ２０Ａに格納された初期設定のＢａｎｋ  ａの構成情報“Ａ”をＦＰＧＡ３Ａ内のＢａｎｋ  ａに設定する（ステップＳ３１）。ＦＰＧＡ３Ａは、通常運用時に、例えば、記憶部４に書き込んだデータを読み出す（ステップＳ３２）。
【００６０】
ＦＰＧＡ３Ａのメモリコントローラ１３Ｂのチェック部１３Ａは、記憶部４のチェック結果がＯＫ状態であるか否かを判定する（ステップＳ３３）。尚、チェック部１３Ａは、例えば、セットアップタイム及びホールドタイムの正常条件を満たしたか否かを判定し、正常条件を満たした場合はチェック結果をＯＫ状態とし、正常条件を満たしていない場合はチェック結果をＯＫ状態でない、ＮＧ状態とする。チェック部１３Ａは、チェック結果がＯＫ状態の場合（ステップＳ３３肯定）、記憶部４に書き込んだデータを読み出すべく、ステップＳ３２に移行する。
【００６１】
また、メモリコントローラ１３Ｂの故障判定部１３Ｃは、チェック結果がＯＫ状態でない場合（ステップＳ３３否定）、後述する図９の故障判定処理の判定結果に基づき、メモリインタフェース１２Ａが故障であるか否かを判定する（ステップＳ３４）。故障判定部１３Ｃは、メモリインタフェース１２Ａが故障でない場合（ステップＳ３４否定）、選択部３１Ａに対して“Ｈ”レベルのメモリＮＧ信号を出力する（ステップＳ３５）。
【００６２】
選択部３１Ａは、“Ｈ”レベルのメモリＮＧ信号を検出すると、Ｂａｎｋ  ａの構成情報の内、切替先の構成情報を選択する選択信号をコンフィグレーション制御部４０Ａに出力する（ステップＳ３６）。尚、選択信号は、第１の選択信号“０”と、第２選択信号とを含む。更に、生成部３２は、“Ｈ”レベルのメモリＮＧ信号を検出すると、メモリＮＧ信号のタイミングに基づき再コンフィグ信号をコンフィグレーション制御部４０Ａに出力する（ステップＳ３７）。
【００６３】
コンフィグレーション制御部４０Ａは、ＦＰＧＡ３Ａに現在設定中のＢａｎｋ  ａの構成情報が“Ｃ”であるか否かを判定する（ステップＳ３８）。コンフィグレーション制御部４０Ａは、ＦＰＧＡ３Ａに現在設定中のＢａｎｋ  ａの構成情報が“Ｃ”でない場合（ステップＳ３８否定）、再コンフィグ信号を検出すると、コンフィグ信号をＦＰＧＡ３Ａに出力する。そして、ＦＰＧＡ３Ａは、コンフィグ信号を検出すると、Ｂａｎｋ  ａの切替先の構成情報をＦＰＧＡ３Ａに再設定する（ステップＳ３９）。尚、ＦＰＧＡ３Ａ内のメモリコントローラ１３Ａは、情報処理装置１Ａの電源起動時に初期設定のＢａｎｋ  ａの構成情報“Ａ”を設定し、“Ｈ”レベルのメモリＮＧ信号を検出する都度、Ｂａｎｋ  ａ内の構成情報“Ｂ”→構成情報“Ｃ”に切替え設定する。そして、ＦＰＧＡ３Ａのメモリコントローラ１３Ｂは、コンフィグ信号でＢａｎｋ  ａの構成情報が再設定されると、ステップＳ３２に移行する。
【００６４】
また、コンフィグレーション制御部４０Ａは、ＦＰＧＡ３Ａに現在設定中のＢａｎｋ  ａの構成情報が“Ｃ”である場合（ステップＳ３８肯定）、メモリ２０Ａ内の全ての構成情報が設定されてもチェック結果がＮＧ状態と判定する。その結果、コンフィグレーション制御部４０Ａは、記憶部４の故障を外部通知する（ステップＳ４０）。尚、情報処理装置１Ａ側のユーザは、例えば、故障アラームの音響出力や点灯出力等の外部通知で記憶部４の故障を認識できる。更に、コンフィグレーション制御部４０Ａは、記憶部４の故障を外部通知すると、記憶部４の動作を停止し（ステップＳ４１）、図８に示す処理動作を終了する。
【００６５】
また、故障判定部１３Ｃは、メモリインタフェース１２Ａが故障の場合（ステップＳ３４肯定）、選択部３１Ａに対して“Ｈ”レベルのインタフェースＮＧ信号を出力する（ステップＳ４２）。コンフィグレーション制御部４０Ａは、選択部３１Ａの指示に応じて、Ｂａｎｋ  ｂの構成情報“Ａ”をメモリ２０Ａから読み出す（ステップＳ４３）。コンフィグレーション制御部４０Ａは、読み出されたＢａｎｋ  ｂの構成情報“Ａ”をＦＰＧＡ３Ａ内のＢａｎｋ  ｂに設定する（ステップＳ４４）。
【００６６】
ＦＰＧＡ３Ａは、例えば、記憶部４に書き込んだデータを読み出す（ステップＳ４５）。チェック部１３Ａは、記憶部４のチェック結果がＯＫ状態であるか否かを判定する（ステップＳ４６）。チェック部１３Ａは、チェック結果がＯＫ状態の場合（ステップＳ４６肯定）、記憶部４に書き込んだデータを読み出すべく、ステップＳ４５に移行する。
【００６７】
また、チェック部１３Ａは、チェック結果がＯＫ状態でない場合（ステップＳ４６否定）、選択部３１Ａに対して“Ｈ”レベルのメモリＮＧ信号を出力する（ステップＳ４７）。選択部３１Ａは、“Ｈ”レベルのメモリＮＧ信号を検出すると、Ｂａｎｋ  ｂの構成情報の内、切替先の構成情報を選択する選択信号をコンフィグレーション制御部４０Ａに出力する（ステップＳ４８）。尚、選択信号は、第１の選択信号“１”と、第２の選択信号とを含む。更に、生成部３２は、“Ｈ”レベルのメモリＮＧ信号を検出すると、メモリＮＧ信号のタイミングに基づき再コンフィグ信号をコンフィグレーション制御部４０Ａに出力する（ステップＳ４９）。
【００６８】
コンフィグレーション制御部４０Ａは、ＦＰＧＡ３Ａに現在設定中のＢａｎｋ  ｂの構成情報が“Ｃ”であるか否かを判定する（ステップＳ５０）。コンフィグレーション制御部４０Ａは、ＦＰＧＡ３Ａに現在設定中のＢａｎｋ  ｂの構成情報が“Ｃ”でない場合（ステップＳ５０否定）、再コンフィグ信号を検出すると、コンフィグ信号をＦＰＧＡ３Ａに出力する。そして、ＦＰＧＡ３Ａは、コンフィグ信号を検出すると、Ｂａｎｋ  ｂの切替先の構成情報をＦＰＧＡ３Ａに再設定する（ステップＳ５１）。尚、メモリコントローラ１３Ａは、メモリインタフェース１２Ａの故障判定時に設定のＢａｎｋ  ｂの構成情報“Ａ”を設定した場合、“Ｈ”レベルのメモリＮＧ信号を検出する都度、Ｂａｎｋ  ｂ内の構成情報“Ｂ”→構成情報“Ｃ”に切替え設定する。そして、ＦＰＧＡ３Ａのメモリコントローラ１３Ｂは、コンフィグ信号でＢａｎｋ  ｂの構成情報が再設定されると、ステップＳ４５に移行する。
【００６９】
また、コンフィグレーション制御部４０Ａは、ＦＰＧＡ３Ａに現在設定中のＢａｎｋ  ｂの構成情報が“Ｃ”である場合（ステップＳ５０肯定）、メモリ２０Ａ内の全ての構成情報が設定されてもチェック結果がＮＧ状態と判定する。その結果、コンフィグレーション制御部４０Ａは、ＦＰＧＡ３Ａの故障を外部通知すべく、ステップＳ４０に移行する。
【００７０】
図８に示すコンフィグレーション制御処理では、メモリインタフェース１２Ａが故障と判定されると、メモリ２０Ａに格納中のＢａｎｋ  ｂの構成情報を読み出し、読み出された構成情報をＦＰＧＡ３Ａ内のＢａｎｋ  ｂに設定する。ＦＰＧＡ３Ａは、Ｂａｎｋ  ｂに新規のメモリインタフェース１２Ａを設定する。その結果、ＦＰＧＡ３Ａは、ＦＰＧＡ３Ａ内のＢａｎｋ  ａの故障のメモリインタフェース１２ＡをＦＰＧＡ３Ａ内のＢａｎｋ  ｂの新規のメモリインタフェース１２Ａに代用できる。
【００７１】
コンフィグレーション制御処理では、メモリインタフェース１２Ａの故障判定後、Ｂａｎｋ  ｂの構成情報“Ａ”を設定した後、“Ｈ”レベルのメモリＮＧ信号を検出する都度、構成情報“Ｂ”→構成情報“Ｃ”の順に切替設定する。その結果、Ｂａｎｋ  ｂの構成情報を、構成情報“Ａ”→構成情報“Ｂ”→構成情報“Ｃ”の順に提供できる。
【００７２】
また、コンフィグレーション制御処理では、Ｂａｎｋ  ｂの構成情報“Ａ”→構成情報“Ｂ”→構成情報“Ｃ”の各構成情報が切替設定されても、エラーが解消できない場合には、ＦＰＧＡ３Ａの故障を外部通知する。その結果、情報処理装置１Ａ側のユーザは、外部通知に基づきＦＰＧＡ３Ａの故障を認識できる。
【００７３】
更に、コンフィグレーション制御処理では、Ｂａｎｋ  ｂの各構成情報が順次設定されても、メモリインタフェース１２Ａの故障が解消できなかった場合、記憶部４の動作を停止する。その結果、故障したメモリインタフェース１２Ａと接続する記憶部４の動作を自動停止できる。
【００７４】
図９は、故障判定処理に関わる故障判定部１３Ｃの処理動作の一例を示すフローチャートである。図９に示す故障判定処理は、ＦＰＧＡ３Ａ内のメモリインタフェース１２Ａの故障を判定する処理である。
【００７５】
図９において故障判定部１３Ｃは、所定タイミングであるか否かを判定する（ステップＳ６１）。尚、所定タイミングとは、例えば、チェック部１３Ａのチェック結果がＯＫ状態でない、すなわちＮＧ状態と判定されたタイミングである。故障判定部１３Ｃは、所定タイミングの場合（ステップＳ６１肯定）、メモリインタフェース１２Ａを低速モードに設定する（ステップＳ６２）。尚、故障判定部１３Ｃは、メモリインタフェース１２Ａ内のＳＥＬ６３に対して運用モード設定部６１から低速モード設定部６２に切替選択し、メモリインタフェース１２Ａを低速モードに設定する。
【００７６】
故障判定部１３Ｃは、低速モードに設定した後、チェック部１３Ａを通じてチェック結果がＯＫ状態であるか否かを判定する（ステップＳ６３）。故障判定部１３Ｃは、チェック結果がＯＫ状態の場合（ステップＳ６３肯定）、現在使用中のメモリインタフェース１２Ａが正常と判定する（ステップＳ６４）。故障判定部１３Ｃは、メモリインタフェース１２Ａが正常と判定されると、メモリインタフェース１２Ａを運用モードに設定し（ステップＳ６５）、図９に示す処理動作を終了する。
【００７７】
また、故障判定部１３Ｃは、チェック結果がＯＫ状態でない場合（ステップＳ６３否定）、現在使用中のメモリインタフェース１２Ａ自体が故障と判定し（ステップＳ６６）、メモリインタフェース１２Ａを運用モードに設定すべく、ステップＳ６５に移行する。
【００７８】
図９に示す故障判定処理では、記憶部４との通信速度を低速にしたにも関わらず、チェック結果がＮＧ状態の場合、ＦＰＧＡ３Ａ内のメモリインタフェース１２Ａ自体が故障と判定する。その結果、ＦＰＧＡ３Ａの故障判定部１３Ｃは、Ｂａｎｋ内のメモリインタフェース１２Ａの故障を認識できる。
【００７９】
また、故障判定処理では、記憶部４との通信速度を低速することでチェック結果がＯＫ状態の場合、ＦＰＧＡ３Ａ内のメモリインタフェース１２Ａが正常と判定する。その結果、ＦＰＧＡ３Ａの故障判定部１３Ｃは、Ｂａｎｋ内のメモリインタフェース１２Ａの正常を認識できる。
【００８０】
実施例２の情報処理装置１Ａでは、ＦＰＧＡ３Ａ内のＢａｎｋ  ａのメモリインタフェース１２Ａ自体が故障した場合、ＦＰＧＡ３Ａ内のＢａｎｋ  ｂにＢａｎｋ  ｂの構成情報を設定することで新たなメモリインタフェース１２Ａを構成する。その結果、ＦＰＧＡ３Ａは、Ｂａｎｋ  ａの故障したメモリインタフェース１２ＡをＢａｎｋ  ｂのメモリインタフェース１２Ａに代用できるため、ＦＰＧＡ３Ａの故障によるタイミングエラーを解消できる。
【００８１】
実施例２の情報処理装置１Ａでは、Ｂａｎｋ毎に複数の構成情報を記憶しておく。そして、情報処理装置１Ａは、他のＢａｎｋの一の構成情報をＦＰＧＡ３Ａに設定した後、記憶部４のＡＣ特性変化で“Ｈ”レベルのメモリＮＧ信号を検出した場合、同一Ｂａｎｋ内の他の構成情報に切替えて、切替えられた構成情報をＦＰＧＡ３Ａに設定する。その結果、ＦＰＧＡ３Ａは、記憶部４のＡＣ特性変化によるタイミングエラーが発生した場合でも、同一Ｂａｎｋ内の構成情報を切替えて記憶部４のＡＣ特性変化によるタイミングエラーを解消できる。
【００８２】
尚、上記実施例２の故障判定処理では、ステップＳ６１の所定タイミングとして、例えば、チェック部１３Ａによるチェック結果がＮＧ状態と判定されたタイミングを例示したが、このタイミングに限定されるものではない。例えば、ＦＰＧＡ３Ａが記憶部４とのアクセスが少なくなる時間帯等のタイミングとしても良い。
【００８３】
また、上記実施例では、メモリ２０（２０Ａ）内に記憶された構成情報を３種類の構成情報としたが、その数に限定されるものではない。また、構成情報は、例えば、ＦｅＲＡＭ、ＭＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭ、ＤＲＡＭやＳＲＡＭ等のメモリ装置に記憶しても良い。
【００８４】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００８５】
更に、各装置で行われる各種処理機能は、ＣＰＵ（Central  Processing  Unit）（又はＭＰＵ（Micro  Processing  Unit）、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
【００８６】
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することによって実現できる。そこで、以下では、図１０を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１０は、記憶制御プログラムを実行するコンピュータを示す説明図である。
【００８７】
図１０に示すように、記憶制御プログラムとしてのコンピュータ１００では、ＨＤＤ（Hard  Disk  Drive）１１０、ＲＡＭ(Random  Access  Memory)１２０、ＲＯＭ（Read  Only  Memory）１３０及びＣＰＵ１４０がバス１５０を介して接続される。更に、コンピュータ１００は、記憶部１７０をアクセス制御するＦＰＧＡ１６０をバス１５０で接続される。
【００８８】
そして、ＲＯＭ１３０若しくはＨＤＤ１１０には、上記の実施例と同様の機能を発揮する記憶制御プログラムが予め記憶されている。尚、ＲＯＭ１３０及びＨＤＤ１１０ではなく、図示せぬドライブでコンピュータ読取可能な記録媒体に記憶制御プログラムが記録されていても良い。また、記録媒体としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。記憶制御プログラムとしては、図１０に示すように、設定プログラム１３１である。尚、設定プログラム１３１は、図１に示した記憶制御部５の各構成要素と同様、適宜統合又は分散してもよい。
【００８９】
そして、ＣＰＵ１４０が、設定プログラム１３１をＲＯＭ１３０から読み出して実行する。そして、設定プログラム１３１は、設定プロセス１４１として機能する。
【００９０】
ＣＰＵ１４０は、記憶部１７０をアクセス制御するＦＰＧＡ１６０に関わる、記憶部１７０のアクセス制御の特性に対応した、複数の構成情報を記憶するＲＡＭ１２０から構成情報をＦＰＧＡ１６０に設定する。更に、ＣＰＵ１４０は、ＲＡＭ１２０に記憶中の一の構成情報をＦＰＧＡ１６０に設定した後、記憶部１７０のタイミングエラーを検出すると、ＲＡＭ１２０に記憶中の異なる構成情報に切替えて、切替えられた構成情報をＦＰＧＡ１６０に設定する。その結果、ＦＰＧＡ１６０は、記憶部１７０の特性変化によるタイミングエラーが発生した場合でも、構成情報を切替えて記憶部１７０の特性変化によるタイミングエラーを解消できる。
【００９１】
以上、本実施例を含む実施の形態に関し、更に以下の付記を開示する。
【００９２】
（付記１）複数のバンクを備え、設定された構成情報に基づき、前記バンク内に回路を構成する制御部と、
前記バンクに対応した前記構成情報を記憶する構成記憶部と、
前記構成記憶部から前記構成情報を読み出し、読み出された構成情報に関わるバンク内に当該構成情報を設定する設定部と、
前記設定部によって設定された前記構成情報に基づき当該バンク内に構成された、記憶部と接続する回路と当該記憶部との間のタイミング調整のエラーを検出した場合に、前記回路の故障と判定する故障判定部と
を有することを特徴とする記憶制御装置。
【００９３】
（付記２）前記設定部は、
前記故障判定部によって前記回路の故障と判定された場合に、前記制御部内の他のバンクに、前記記憶部と接続する回路を構成する前記構成情報を設定し、
前記制御部は、
前記設定部によって設定された前記構成情報に基づき、当該バンク内に当該回路を構成することを特徴とする付記１に記載の記憶制御装置。
【００９４】
（付記３）前記設定部は、
前記故障判定部によって前記回路の故障と判定された場合に、前記制御部内の未使用のバンクに、前記記憶部と接続する回路を構成する前記構成情報を設定し、
前記制御部は、
前記設定部によって設定された前記構成情報に基づき、当該未使用のバンク内に当該回路を構成することを特徴とする付記１に記載の記憶制御装置。
【００９５】
（付記４）前記故障判定部は、
前記回路と前記記憶部との間の通信速度を運用速度から低速化して前記タイミング調整のエラーを検出したか否かを判定し、前記タイミング調整のエラーを検出した場合に、前記回路の故障と判定すると共に、
前記通信速度を低速化して前記タイミング調整のエラーを検出しなかった場合に、前記回路の正常と判定する
ことを特徴とする付記１〜３の何れか一つに記載の記憶制御装置。
【００９６】
（付記５）複数のバンクを備え、設定された構成情報に基づき、前記バンク内に回路を構成する制御部と、前記バンクに対応した前記構成情報を記憶する構成記憶部と、前記構成記憶部から前記構成情報を読み出し、読み出された構成情報に関わるバンク内に当該構成情報を設定する設定部とを有する記憶制御装置の記憶制御方法であって、
前記記憶制御装置は、
前記設定部によって設定された前記構成情報に基づき当該バンク内に構成された、記憶部と接続する回路と当該記憶部との間のタイミング調整のエラーを検出した場合に、前記回路の故障と判定する
ことを特徴とする記憶制御方法。
【符号の説明】
【００９７】
１，１Ａ  情報処理装置
３，３Ａ  ＦＰＧＡ
４  記憶部
５，５Ａ  記憶制御部
１３，１３Ｂ  メモリコントローラ
１３Ａ  チェック部
１３Ｃ  故障判定部
２０，２０Ａ  メモリ
３０，３０Ａ  指示部
３１，３１Ａ  選択部
３２  生成部
４０，４０Ａ  コンフィグレーション制御部
【図１】
0005810962.tif 000002
【図２】
0005810962.tif 000003
【図３】
0005810962.tif 000004
【図４】
0005810962.tif 000005
【図５】
0005810962.tif 000006
【図６】
0005810962.tif 000007
【図７】
0005810962.tif 000008
【図８】
0005810962.tif 000009
【図９】
0005810962.tif 000010
【図１０】
0005810962.tif 000011
【図１１】
0005810962.tif 000012