記憶制御装置、記憶制御方法及び記憶制御プログラム
【課題】記憶部の特性に変化が生じた場合でも記憶部に対して正常なアクセス制御を確保する。
【解決手段】記憶部4をアクセス制御するFPGA3に関わる、記憶部4のアクセス制御の特性に対応した、複数の構成情報を記憶するメモリ20と、構成情報をFPGA3に設定するコンフィグレーション制御部40とを有する。コンフィグレーション制御部40は、メモリ20に記憶中の一の構成情報をFPGA3に設定した後、記憶部4のHレベルのメモリNG信号を検出すると、メモリ20に記憶中の異なる構成情報に切替える。そして、コンフィグレーション制御部40は、切替えられた構成情報をFPGA3に設定する。
【解決手段】記憶部4をアクセス制御するFPGA3に関わる、記憶部4のアクセス制御の特性に対応した、複数の構成情報を記憶するメモリ20と、構成情報をFPGA3に設定するコンフィグレーション制御部40とを有する。コンフィグレーション制御部40は、メモリ20に記憶中の一の構成情報をFPGA3に設定した後、記憶部4のHレベルのメモリNG信号を検出すると、メモリ20に記憶中の異なる構成情報に切替える。そして、コンフィグレーション制御部40は、切替えられた構成情報をFPGA3に設定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶制御装置、記憶制御方法及び記憶制御プログラムに関する。
【背景技術】
【0002】
例えば、通信機器やコンピュータ等の情報処理装置は、各種情報を記憶した記憶部を有している。図11は、情報処理装置内部の一例を示すブロック図である。例えば、通信機器等の情報処理装置100Aは、CPU(Central Processing Unit)101と、FPGA(Field Programmable Gate Array)102と、記憶部103と、記憶制御部104とを有する。CPU101は、FPGA102を通じて記憶部103に対してデータの書込み及び読出しを制御する。FPGA102は、後述する設定中の構成情報に基づき記憶部103をアクセス制御する。フラッシュメモリ111には、記憶部103の交流(AC:Alternating Current)特性に対応した構成情報が記憶される。尚、構成情報は、例えば、FPGA102が記憶部103をアクセス制御する上で記憶部103に対する各種制御信号のタイミングを制御する情報である。
【0003】
FPGA102は、CPUインタフェース102Aと、メモリインタフェース102Bと、メモリコントローラ102Cとを有する。CPUインタフェース102Aは、CPU101とメモリコントローラ102Cとを接続するインタフェースである。メモリインタフェース102Bは、メモリコントローラ102Cと記憶部103とを接続するインタフェースである。メモリコントローラ102Cは、設定中の構成情報に基づき、記憶部103をアクセス制御する。記憶部103は、例えば、EAROM(Electrically Alterable ROM)、EEPROM(Electrically Erasable and Programmable ROM)、フラッシュメモリ、FeRAM(Ferroelectric RAM)、MRAM(Magnetic RAM)等のメモリ装置である。
【0004】
記憶制御部104は、フラッシュメモリ111と、コンフィグレーション制御部112とを有する。コンフィグレーション制御部112は、情報処理装置100Aの電源起動を検出すると、フラッシュメモリ111に記憶中の初期設定の構成情報を読み出す。更に、コンフィグレーション制御部112は、構成情報及びコンフィグレーション信号(以下、コンフィグ信号と称する)をFPGA102に通知する。FPGA102内のメモリコントローラ102Cは、コンフィグレーション制御部112からのコンフィグ信号に応じて構成情報をFPGA102に設定する。
【0005】
メモリコントローラ102Cは、記憶部103との間で、例えば、アドレス信号、チップセレクト信号、ライトイネーブル信号、アウトプットイネーブル信号等の制御信号を用いて記憶部103のアクセスを制御する。尚、アドレス信号は、記憶部103内のアドレスを指定する信号である。チップセレクト信号は、記憶部103内のチップを指定する信号である。ライトイネーブル信号は、記憶部103内のデータ書込みを指示する信号である。アウトプットイネーブル信号は、記憶部103内のデータ読出を指示する信号である。
【0006】
構成情報は、メモリコントローラ102Cが記憶部103に対して正常にアクセス制御する上で、例えば、所定のセットアップタイム及びホールドタイムを設定する情報である。尚、セットアップタイムは、タイミング信号に先立ってデータを確定及び保持する最小限の時間である。ホールドタイムは、タイミング信号検出後もデータを保持する時間である。つまり、メモリコントローラ102Cは、セットアップタイム及びホールドタイムの条件を満たすことで、記憶部103との制御信号間の正常なタイミングでアクセス制御が可能となる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2010−122842号公報
【特許文献2】国際公開第2004/102389号
【特許文献3】特開2006−99597号公報
【特許文献4】特開2006−65470号公報
【特許文献5】特開2007−87284号公報
【特許文献6】特開2004−246699号公報
【特許文献7】特開2001−136058号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、FPGA102は、初期設定の構成情報を設定中に、記憶部103の経年劣化や温度変化等の環境変化で記憶部103のAC特性に変化が生じた場合に記憶部103との制御信号間でタイミングエラーが生じる。従って、FPGA102では、記憶部103との制御信号間のタイミングエラーが生じた場合、初期設定の構成情報で決定される、例えば、セットアップタイムまでにデータを確定及び保持できない。その結果、FPGA102は、記憶部103の特性変化等で初期設定の構成情報では記憶部103に対する正常なアクセス制御を確保できない。
【0009】
そこで、記憶制御部104では、例えば、チップセレクト信号、アドレス信号、ライトイネーブル信号やアウトプットイネーブル信号等の制御信号毎にタイミングを調整するタイミング調整回路を備え、制御信号間のタイミングエラーを解消することが考えられる。しかしながら、各タイミング調整回路は、制御信号のタイミングを高精度に調整するには複数段のフリップフロップ回路を要する。従って、記憶制御部104では、制御信号毎に複数のフリップフロップ回路を備えたタイミング調整回路を要するため、その回路規模が大規模になることは勿論のこと、その消費電力も大きくなる。
【0010】
一つの側面は、記憶部の特性に変化が生じた場合でも記憶部に対して正常なアクセス制御を確保できる記憶制御装置、記憶制御方法及び記憶制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
開示の装置は一つの態様において、記憶部をアクセス制御する制御部に関わる、前記記憶部のアクセス制御の特性に対応した、複数の構成情報を記憶する構成記憶部と、前記構成情報を前記制御部に設定する設定部とを有する。更に、開示の装置の前記設定部は、前記構成記憶部に記憶中の一の構成情報を前記制御部に設定した後、前記記憶部の制御エラーを検出すると、前記構成記憶部に記憶中の異なる構成情報に切替えて、切替えられた構成情報を前記制御部に設定する。
【発明の効果】
【0012】
記憶部の特性に変化が生じた場合でも記憶部に対して正常なアクセス制御を確保できる。
【図面の簡単な説明】
【0013】
【図1】図1は、実施例1の情報処理装置内部の一例を示すブロック図である。
【図2】図2は、生成部内部の一例を示すブロック図である。
【図3】図3は、生成部内部の再コンフィグ信号の生成タイミングを示す説明図である。
【図4】図4は、FPGA及び選択部に関わる記憶部のタイミングエラー発生からタイミングエラー解消までの動作タイミングを示す説明図である。
【図5】図5は、コンフィグレーション制御処理に関わるFPGA及びコンフィグレーション制御部の処理動作の一例を示すフローチャートである。
【図6】図6は、実施例2の情報処理装置内部の一例を示すブロック図である。
【図7】図7は、FPGAのバンク構成の一例を示す説明図である。
【図8】図8は、コンフィグレーション制御処理に関わるFPGA及びコンフィグレーション制御部の処理動作の一例を示すフローチャートである。
【図9】図9は、故障判定処理に関わる故障判定部の処理動作の一例を示すフローチャートである。
【図10】図10は、記憶制御プログラムを実行するコンピュータを示す説明図である。
【図11】図11は、情報処理装置内部の一例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、図面に基づいて、本願の開示する記憶制御装置、記憶制御方法及び記憶制御プログラムの実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。
【実施例1】
【0015】
図1は、実施例1の情報処理装置内部の一例を示すブロック図である。図1に示す情報処理装置1は、例えば、通信機器やコンピュータ等に相当し、CPU2と、FPGA3と、記憶部4と、記憶制御部5とを有する。CPU2は、情報処理装置1全体を制御すると共に、FPGA3経由で記憶部4をアクセス制御する。FPGA3は、CPU2と記憶部4との間に配置し、記憶部4をアクセス制御する。FPGA3は、CPUインタフェース11と、メモリインタフェース12と、メモリコントローラ13とを有する。CPUインタフェース11は、CPU2とメモリコントローラ13とを接続するインタフェースである。メモリインタフェース12は、メモリコントローラ13と記憶部4とを接続するインタフェースである。メモリコントローラ13は、後述する設定中の構成情報に基づき、記憶部4をアクセス制御する。更に、メモリコントローラ13は、記憶部4の状態、例えば、ECC(Error Check and Correct)やパリティチェックを行うチェック部13Aを有する。チェック部13Aは、例えば、記憶部4の経年変化や温度変化等の環境変化による記憶部4のAC特性が変化した場合に記憶部4の制御信号間のタイミングエラーを検出すると、メモリNG信号を出力する。
【0016】
記憶部4は、例えば、EAROM(Electrically Alterable ROM)、EEPROM(Electrically Erasable and Programmable ROM)、フラッシュメモリ、FeRAM(Ferroelectric RAM)、MRAM(Magnetic RAM)等のメモリ装置である。また、記憶部4は、例えば、PRAM(Pseudo RAM)、ReRAM(Resistance RAM)、DRAM(Dynamic RAM)やSRAM(Static RAM)等のメモリ装置である。
【0017】
記憶制御部5は、メモリ20と、指示部30と、コンフィグレーション制御部40とを有する。メモリ20は、例えばフラッシュメモリ、EAROM、EEPROM等のメモリ装置である。メモリ20には、記憶部4の異なるAC特性に対応した複数の構成情報が格納してある。尚、メモリ20には、例えば、アドレス“0000”〜“0FFF”の格納領域に初期設定の構成情報“A”が格納してある。更に、メモリ20には、アドレス“1000”〜“1FFF”の格納領域に、他のAC特性に対応した構成情報“B”が格納してある。更に、メモリ20は、アドレス“2000”〜“2FFF”の格納領域に、他のAC特性に対応した構成情報“C”が格納してある。これら3種類の構成情報“A”〜“C”は、一例に過ぎず、2種類あるいは4以上の種類の構成情報をメモリ20格納してもよい。
【0018】
指示部30は、選択部31と、生成部32とを有する。選択部31は、メモリコントローラ13からの“H”レベルのメモリNG信号を検出すると、メモリ20に格納された構成情報の内、切替先の構成情報を選択する選択信号を出力する。生成部32は、“H”レベルのメモリNG信号を検出すると、“H”レベルのメモリNG信号のタイミングに基づき再コンフィグ信号を生成する。
【0019】
図2は、生成部32内部の一例を示すブロック図である。図3は、生成部32内部の再コンフィグ信号の生成タイミングを示す説明図である。生成部32は、フリップフロップ回路(以下、単にFF回路)32Aと、NOT回路32Bと、AND回路32Cと、FF回路32Dとを有する。図3においてFF回路32Aは、“H”レベルのメモリNG信号の立ち上がりを検出すると、このメモリNG信号を1クロック(CLK)分遅延した信号をNOT回路32Bに出力する。NOT回路32Bは、FF回路32Aの出力信号を反転してAND回路32Cへ出力する。AND回路32Cは、NOT回路32Bの出力信号と、“H”レベルのメモリNG信号との論理積による信号を出力する。FF回路32Dは、AND回路32Cの出力信号を1クロック分遅延することで、再コンフィグ信号を出力する。尚、再コンフィグ信号は、他の構成情報をFPGA3に再設定する際のコンフィグ信号の生成に使用する。
【0020】
コンフィグレーション制御部40は、選択部31から切替先の構成情報を選択する選択信号を検出すると、選択信号により指定された構成情報をメモリ20から読み出す。
【0021】
コンフィグレーション制御部40は、上位指定部41と、下位指定部42と、ビット結合部43とを有する。上位指定部41は、選択部31からの選択信号を検出すると、構成情報を格納したメモリ20内の格納領域のアドレスの上位ビットを指定する。下位指定部42は、当該格納領域のアドレスの下位ビットを指定する。尚、例えば、構成情報“B”の格納領域の先頭アドレスが“1000”の場合、上位ビットは“1”、下位ビットは“000”となる。ビット結合部43は、上位指定部41により指定された上位ビットと、下位指定部42により指定された下位ビットとを結合して読み出し対象の構成情報のアドレスを生成する。尚、ビット結合部43は、上位ビットが“1”、下位ビットが“000”とした場合、“1”と“000”とを結合してアドレス信号“1000”となる。コンフィグレーション制御部40は、ビット結合部43が出力したアドレス信号に基づき、メモリ20から構成情報を読み出す。更に、コンフィグレーション制御部40は、生成部32から再コンフィグ信号を検出すると、読み出された指定の構成情報をFPGA3に設定するコンフィグ信号をFPGA3に出力する。FPGA3は、コンフィグ信号を検出すると、構成情報を設定する。
【0022】
次に実施例1の情報処理装置1の動作について説明する。図4は、FPGA3及び選択部31に関わる記憶部4のタイミングエラー発生からタイミングエラー解消までの動作タイミングを示す説明図である。図4では、記憶部4の経年変化や温度変化等の環境変化でAC特性に変化が生じ、例えば、初期設定の構成情報“A”のセットアップタイム前にデータを確定及び保持できずにタイミングエラーが生じたとする。尚、初期設定の構成情報“A”は、セットアップタイムTsuとホールドタイムThとの間を、例えば5n秒間とする。この際、メモリコントローラ13のチェック部13Aは、構成情報“A”のタイミングエラーを検出すると、“H”レベルのメモリNG信号を出力する。指示部30内の選択部31は、メモリコントローラ13から“H”レベルのメモリNG信号を検出すると、構成情報“A”から切替先の構成情報“B”を選択する選択信号をコンフィグレーション制御部40に出力する。更に、指示部30内の生成部32は、“H”レベルのメモリNG信号のタイミングに基づき再コンフィグ信号を生成する。そして、生成部32は、再コンフィグ信号をコンフィグレーション制御部40に出力する。
【0023】
コンフィグレーション制御部40は、選択信号を受信した場合、上位指定部41、下位指定部42及びビット結合部43を通じて構成情報“B”の格納領域のアドレス信号を生成する。更に、コンフィグレーション制御部40は、アドレス信号に基づき、メモリ20の格納領域から指定の構成情報“B”を読み出す。更に、コンフィグレーション制御部40は、構成情報“B”をFPGA3内のメモリコントローラ13に出力する。更に、コンフィグレーション制御部40は、指示部30からの再コンフィグ信号を検出すると、再コンフィグ信号に基づき、FPGA3に構成情報“B”を設定するコンフィグ信号を出力する。FPGA3は、コンフィグ信号を検出すると、構成情報“B”が設定されるため、構成情報“B”のセットアップタイムTsu1とホールドタイムTh1との間が、例えば3n秒間となる。その結果、FPGA3は、セットアップタイムがTsuからTsu1へ変わることで、セットアップタイムTsu1時又はセットアップタイムTsu1以前にデータを確定及び保持できる。従って、FPGA3は、構成情報“B”の設定で記憶部4のタイミングエラーが解消できる。つまり、図4の例では、構成情報“A”から構成情報“B”に切替選択し、セットアップタイムを変更して記憶部4のタイミングエラーが解消できる。
【0024】
図5は、コンフィグレーション制御処理に関わるFPGA3及びコンフィグレーション制御部40の処理動作の一例を示すフローチャートである。図5においてコンフィグレーション制御部40は、情報処理装置1の電源起動時にメモリ20に格納された初期設定の構成情報“A”をFPGA3に設定する(ステップS11)。FPGA3は、通常運用時に、例えば、記憶部4に書き込んだデータを読み出す(ステップS12)。FPGA3のメモリコントローラ13のチェック部13Aは、記憶部4のチェック結果がOK状態であるか否かを判定する(ステップS13)。尚、チェック部13Aは、例えば、セットアップタイム及びホールドタイムの正常条件を満たしたか否かを判定し、正常条件を満たした場合はチェック結果をOK状態とし、正常条件を満たしていない場合はチェック結果をOK状態でない、NG状態とする。チェック部13Aは、チェック結果がOK状態の場合(ステップS13肯定)、記憶部4に書き込んだデータを読み出すべく、ステップS12に移行する。
【0025】
また、チェック部13Aは、チェック結果がOK状態でない場合(ステップS13否定)、選択部31に対して“H”レベルのメモリNG信号を出力する(ステップS14)。選択部31は、“H”レベルのメモリNG信号を検出すると、切替先の構成情報を選択する選択信号をコンフィグレーション制御部40に出力する(ステップS15)。更に、生成部32は、“H”レベルのメモリNG信号を検出すると、メモリNG信号のタイミングに基づき再コンフィグ信号をコンフィグレーション制御部40に出力する(ステップS16)。
【0026】
コンフィグレーション制御部40は、FPGA3に現在設定中の構成情報が“C”であるか否かを判定する(ステップS17)。コンフィグレーション制御部40は、FPGA3に現在設定中の構成情報が“C”でない場合(ステップS17否定)、再コンフィグ信号を検出すると、コンフィグ信号をFPGA3に出力する。そして、FPGA3は、コンフィグ信号を検出すると、切替先の構成情報をFPGA3に再設定する(ステップS18)。尚、FPGA3内のメモリコントローラ13は、情報処理装置1の電源起動時に初期設定の構成情報“A”を設定し、“H”レベルのメモリNG信号を検出する都度、構成情報“B”→構成情報“C”に切替え設定する。そして、コンフィグレーション制御部40は、コンフィグ信号で構成情報をFPGA3のメモリコントローラ13に再設定すると、ステップS12に移行する。
【0027】
また、コンフィグレーション制御部40は、FPGA3に現在設定中の構成情報が“C”である場合(ステップS17肯定)、メモリ20内の全ての構成情報が設定されてもチェック結果がNG状態であると判断する。その結果、コンフィグレーション制御部40は、記憶部4の故障を外部通知する(ステップS19)。尚、情報処理装置1側のユーザは、例えば、故障アラームの音響出力や点灯出力等の外部通知で記憶部4の故障を認識できる。更に、コンフィグレーション制御部40は、記憶部4の故障を外部通知すると、記憶部4の動作を停止し(ステップS20)、図5に示す処理動作を終了する。
【0028】
図5に示すコンフィグレーション制御処理では、記憶部4の特性変化で“H”レベルのメモリNG信号を検出すると、メモリ20に格納中の複数の構成情報から異なる構成情報を読み出し、読み出された構成情報をFPGA3に設定する。その結果、FPGA3は、読み出された構成情報が設定されるため、記憶部4の特性変化に対応した構成情報を提供できる。
【0029】
また、コンフィグレーション制御処理では、情報処理装置1の電源起動時に初期設定の構成情報“A”、その後、“H”レベルのメモリNG信号を検出する都度、構成情報“B”→構成情報“C”の順に切替設定する。その結果、構成情報“A”→構成情報“B”→構成情報“C”の順に提供できる。尚、再度、情報処理装置1の電源起動を検出すると、初期設定の構成情報“A”に切替設定される。
【0030】
また、コンフィグレーション制御処理では、構成情報“A”→構成情報“B”→構成情報“C”の各構成情報が切替設定され、全ての構成情報によっても記憶部4のタイミングエラーが解消できない場合、記憶部4の故障を外部へ通知する。その結果、情報処理装置1側のユーザは、通知に基づき記憶部4の故障を認識できる。
【0031】
更に、コンフィグレーション制御処理では、各構成情報が順次設定されても、記憶部4のタイミングエラーが解消できなかった場合、記憶部4の動作を停止する。その結果、タイミングエラーを抱えた記憶部4の動作を自動停止できる。
【0032】
実施例1では、複数の構成情報を記憶しておき、一の構成情報をFPGA3に設定した後、記憶部4のAC特性変化で“H”レベルのメモリNG信号を検出した場合、他の構成情報に切替えて、切替えられた構成情報をFPGA3に設定する。その結果、FPGA3は、記憶部4のAC特性変化によるタイミングエラーが発生した場合でも、構成情報を切替えて記憶部4のAC特性変化によるタイミングエラーを解消できる。しかも、記憶制御部5では、記憶部4のAC特性変化によるタイミングエラーを解消する機能を備えたからといって、特別に大規模な回路規模を要せず、その消費電力も特別に大きくなることもない。
【0033】
また、実施例1では、異なる構成情報を切替設定した後、切替設定された各構成情報でもタイミングエラーが解消できない場合、記憶部4の動作を停止する。その結果、タイミングエラーを抱えた記憶部4の動作を自動停止できる。
【0034】
また、実施例1では、構成情報がセットアップタイムを調整する情報としたので、構成情報を切替設定することでセットアップタイムを調整する。その結果、FPGA3は、切替えた構成情報のセットアップタイム前にデータを確定及び保持できるため、AC特性変化による記憶部4のタイミングエラーを解消できる。
【0035】
尚、上記実施例1では、メモリNG信号を検出する都度、初期設定の構成情報“A”→構成情報“B”→構成情報“C”に切替設定し、電源停止後、再度、電源起動を検出すると、初期設定の構成情報“A”からFPGA3に設定する。しかしながら、記憶制御部5では、電源停止直前に設定中の構成情報、例えば、構成情報“B”をバックアップする不揮発性のバックアップ記憶部を備える。更に、記憶制御部5は、電源起動を検出した場合、タイミングエラーが生じた初期設定の構成情報“A”を再度設定せず、バックアップ記憶部に記憶中の構成情報“B”をFPGA3に設定しても良い。
【0036】
また、上記実施例1では、記憶部4のAC特性変化に対応した構成情報として、例えば、セットアップタイムを調整する情報としたが、例えば、ホールドタイムを調整する情報としても良い。
【0037】
また、構成情報として記憶部4に記憶されたデータを外部出力する制御信号の出力タイミングを調整する情報としても良い。FPGA3は、異なる構成情報を切替設定することで、制御信号の出力タイミングを調整して、記憶部4からのデータ読み出しタイミングを調整する。その結果、FPGA3は、記憶部4のAC特性変化によるタイミングエラーを解消できる。例えば、FPGA3が記憶部4へ出力する制御信号であるチップセレクト信号の出力タイミングを早める構成情報を切替設定することで、記憶部4のAC特性変化によるタイミングエラーを解消できる。
【0038】
また、構成情報としてFPGA3が記憶部4のアクセス制御のタイミング調整に使用するクロック(CLK)の位相を調整する情報としても良い。この場合、FPGA3は、異なる構成情報を切替設定することで、クロック(CLK)の位相を調整して、記憶部4のアクセス制御のタイミングを調整する。その結果、FPGA3は、記憶部4のAC特性変化によるタイミングエラーを解消できる。
【0039】
尚、上記実施例1では、FPGA3が、記憶部4のAC特性変化によるタイミングエラーが発生した場合、異なる構成情報を切替えて記憶部4のAC特性変化によるタイミングエラーを解消した。しかしながら、FPGA3内のメモリインタフェース12自体が故障した場合、記憶部4に対してアクセス制御できない。そこで、メモリインタフェース12自体が故障した場合でも、記憶部4に対して正常にアクセス制御できる情報処理装置1につき、実施例2として以下に説明する。
【実施例2】
【0040】
図6は、実施例2の情報処理装置内部の一例を示すブロック図である。尚、実施例1の情報処理装置1と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。図6に示す情報処理装置1Aは、CPU2と、FPGA3Aと、記憶部4と、記憶制御部5Aとを有する。CPU2は、情報処理装置1A全体を制御すると共に、FPGA3A経由で記憶部4をアクセス制御する。FPGA3Aは、CPU2と記憶部4との間に配置し、記憶部4をアクセス制御する。FPGA3Aは、CPUインタフェース11と、メモリインタフェース12Aと、メモリコントローラ13Bとを有する。
【0041】
メモリインタフェース12Aは、メモリコントローラ13Bと記憶部4とを接続するインタフェースである。メモリインタフェース12Aは、運用モード設定部61と、低速モード設定部62と、SEL(Selector)63とを有する。運用モード設定部61は、記憶部4との通信速度が、後述の低速モードよりも速い通常速度の運用モードに設定する。低速モード設定部62は、通信速度が運用モードの通常速度よりも遅い低速モードに設定する。SEL63は、メモリコントローラ13Bの切替制御のモード制御信号に応じて運用モード設定部61又は低速モード設定部62を切替選択することで、通信速度を運用モード又は低速モードに設定する。尚、低速モードに設定された場合、メモリインタフェース12Aの通信速度が全体的に遅くなるため、ACタイミングのセットアップタイムやホールドタイムに余裕が生じてタイミングエラーが解消できる。
【0042】
メモリコントローラ13Bは、設定中の構成情報に基づき、記憶部4をアクセス制御する。更に、メモリコントローラ13Bは、チェック部13Aの他に、メモリインタフェース12Aの故障を判定する故障判定部13Cを有する。故障判定部13Cは、所定タイミングに応じて、SEL63を切替制御することで運用モードから低速モードに切替設定する。尚、所定タイミングとは、例えば、チェック部13Aのチェック結果がOK状態でない、すなわちNG状態を検出した場合である。
【0043】
故障判定部13Cは、例えば、チェック部13AがNG状態を検出した場合、運用モードから低速モードに切り替え設定してメモリインタフェース12Aの故障を判定する故障判定処理を実行する。故障判定部13Cは、低速モードに設定されてチェック結果がOK状態の場合、メモリインタフェース12Aが正常と判定する。これに対して、故障判定部13Cは、低速モードに設定されたにもかかわらず、チェック結果がNG状態のままの場合、メモリインタフェース12Aの故障と判定する。そして、故障判定部13Cは、メモリインタフェース12Aの故障と判定された場合、インタフェースNG信号を指示部30に出力する。
【0044】
図7は、FPGA3Aのバンク構成の一例を示す説明図である。図7に示すFPGA3Aは、例えば、Bank a〜Bank pの合計16個のI/Oを備えたバンクを有し、各バンクは、設定された構成情報に基づき、例えば、メモリインタフェース12Aやメモリコントローラ13B等の各回路として機能(構成)する。そして、FPGA3Aは、空きのBankを確保しておく。例えば、FPGA3A内のBank aは、例えば、メモリインタフェース12Aとして機能し、FPGA3A内のBank bは、未使用の空き領域とする。
【0045】
記憶制御部5Aは、メモリ20Aと、指示部30Aと、コンフィグレーション制御部40Aとを有する。メモリ20Aは、例えば、FPGA3A内のメモリインタフェース12Aの構成情報が格納してある。尚、メモリ20Aには、アドレス“0000”〜“0FFF”の格納領域に、FPGA3A内のBank aの構成情報“A”が格納してある。更に、メモリ20Aには、アドレス“1000”〜“1FFF”の格納領域に、FPGA3A内のBank aの構成情報“B”が格納してある。更に、メモリ20Aには、アドレス“2000”〜“2FFF”の格納領域に、FPGA3A内のBank aの構成情報“C”が格納してある。
【0046】
また、メモリ20Aには、アドレス“3000”〜“3FFF”の格納領域に、FPGA3A内のBank bの構成情報“A”が格納してある。更に、メモリ20Aには、アドレス“4000”〜“4FFF”の格納領域に、FPGA3A内のBank bの構成情報“B”が格納してある。更に、メモリ20Aには、アドレス“5000”〜“5FFF”の格納領域に、FPGA3A内のBank bの構成情報“C”が格納してある。
【0047】
指示部30Aは、生成部32の他に、選択部31Aを有する。選択部31Aは、メモリコントローラ13Bからの“H”レベルのメモリNG信号を検出すると、メモリ20Aに格納されたBankの内、切替先のBankを選択する第1の選択信号を出力する。更に、選択部31Aは、“H”レベルのメモリNG信号を検出すると、メモリ20Aに格納された切替先Bankの構成情報“A”〜“C”の内、切替先の構成情報を選択する第2の選択信号を出力する。生成部32は、“H”レベルのメモリNG信号及び“H”レベルのインタフェースNG信号を検出すると、“H”レベルのメモリNG信号及び“H”レベルのインタフェースNG信号のタイミングに基づき再コンフィグ信号を生成する。尚、再コンフィグ信号は、他の構成情報をFPGA3Aに再設定する際のコンフィグ信号の生成に使用する。
【0048】
コンフィグレーション制御部40Aは、選択部31Aから切替先のBank及び切替先の構成情報を選択する選択信号を検出すると、メモリ20Aから指定のBankの構成情報を読み出す。尚、選択信号は、切替先のBankを選択する第1の選択信号と、切替先の構成情報を選択する第2の選択信号とを含む。
【0049】
コンフィグレーション制御部40Aは、Bank指定部41Aと、上位指定部41Bと、下位指定部42Aと、ビット結合部43Aとを有する。Bank指定部41Aは、選択部31Aから第1の選択信号が検出されると、切替先のBankを指定する。Bank指定部41Aは、第1の選択信号“0”が検出されると、Bank aを指定すると共に、第1の選択信号“1”が検出されると、Bank bを指定する。
【0050】
また、上位指定部41Bは、選択部31Aから第2の選択信号が検出されると、切替先の構成情報を指定する。上位指定部41Bは、例えば、第2の選択信号“0”が検出されると、構成情報“A”を指定する。また、上位指定部41Bは、例えば、第2の選択信号“1”が検出されると、構成情報“B”を指定する。また、上位指定部41Bは、例えば、第2の選択信号“2”が選択されると、構成情報“C”を指定する。
【0051】
また、下位指定部42Aは、メモリ20A内の格納領域のアドレスの下位ビットを指定する。ビット結合部43Aは、上位ビットと下位ビットとを結合して読み出し対象の構成情報のアドレスを指定する。ビット結合部43Aは、例えば、Bank指定部41Aが“0”、上位指定部41Bが“0”の場合、Bank aの構成情報“A”の上位アドレス“0”を指定すると共に、下位指定部42Aの下位アドレス“000”を指定する。コンフィグレーション制御部40Aは、上位アドレス“0”と下位アドレス“000”とを結合して、アドレス“0000”を指定してBank aの構成情報“A”をメモリ20Aから読み出す。
【0052】
また、ビット結合部43Aは、Bank指定部41Aが“0”、上位指定部41Bが“1”の場合、Bank aの構成情報“B”の上位アドレス“1”を指定すると共に、下位指定部42Aの下位アドレス“000”を指定する。コンフィグレーション制御部40Aは、上位アドレス“1”と下位アドレス“000”とを結合して、アドレス“1000”を指定してBank aの構成情報“B”をメモリ20Aから読み出す。
【0053】
また、ビット結合部43Aは、Bank指定部41Aが“0”、上位指定部41Bが“2”の場合、Bank aの構成情報“C”の上位アドレス“2”を指定すると共に、下位指定部42Aの下位アドレス“000”を指定する。コンフィグレーション制御部40Aは、上位アドレス“2”と下位アドレス“000”とを結合して、アドレス“2000”を指定してBank aの構成情報“C”をメモリ20Aから読み出す。
【0054】
また、ビット結合部43Aは、例えば、Bank指定部41Aが“1”、上位指定部41Bが“0”の場合、Bank bの構成情報「A」の上位アドレス“3”を指定すると共に、下位指定部42Aの下位アドレス“000”を指定する。コンフィグレーション制御部40Aは、上位アドレス“3”と下位アドレス“000”とを結合して、アドレス“3000”を指定してBank bの構成情報“A”をメモリ20Aから読み出す。
【0055】
また、ビット結合部43Aは、例えば、Bank指定部41Aが“1”、上位指定部41Bが“1”の場合、Bank bの構成情報“B”の上位アドレス“4”を指定すると共に、下位指定部42Aの下位アドレス“000”を指定する。コンフィグレーション制御部40Aは、上位アドレス“4”と下位アドレス“000”とを結合して、アドレス“4000”を指定してBank bの構成情報“B”をメモリ20Aから読み出す。
【0056】
また、ビット結合部43Aは、例えば、Bank指定部41Aが“1”、上位指定部41Bが“2”の場合、Bank bの構成情報“C”の上位アドレス“5”を指定すると共に、下位指定部42Aの下位アドレス“000”を指定する。コンフィグレーション制御部40Aは、上位アドレス“5”と下位アドレス“000”とを結合して、アドレス“5000”を指定してBank bの構成情報“C”をメモリ20Aから読み出す。
【0057】
コンフィグレーション制御部40Aは、ビット結合部43Aからのアドレス信号に基づき、メモリ20Aから構成情報を読み出す。更に、コンフィグレーション制御部40Aは、生成部32から再コンフィグ信号を検出すると、読み出された指定の構成情報をFPGA3Aに設定するコンフィグ信号をFPGA3Aに出力する。FPGA3Aは、コンフィグ信号を検出すると、構成情報を設定する。
【0058】
つまり、コンフィグレーション制御部40Aは、Bank bの構成情報がメモリ20Aから読み出されると、Bank bの格納領域に構成情報が設定される。その結果、FPGA3Aは、FPGA3A内のBank aのメモリインタフェース12Aの代わりに、Bank bの新たなメモリインタフェース12Aを機能させる。
【0059】
次に実施例2の情報処理装置1Aの動作について説明する。図8は、コンフィグレーション制御処理に関わるFPGA3A及びコンフィグレーション制御部40Aの処理動作の一例を示すフローチャートである。図8においてコンフィグレーション制御部40Aは、情報処理装置1Aの電源起動時にメモリ20Aに格納された初期設定のBank aの構成情報“A”をFPGA3A内のBank aに設定する(ステップS31)。FPGA3Aは、通常運用時に、例えば、記憶部4に書き込んだデータを読み出す(ステップS32)。
【0060】
FPGA3Aのメモリコントローラ13Bのチェック部13Aは、記憶部4のチェック結果がOK状態であるか否かを判定する(ステップS33)。尚、チェック部13Aは、例えば、セットアップタイム及びホールドタイムの正常条件を満たしたか否かを判定し、正常条件を満たした場合はチェック結果をOK状態とし、正常条件を満たしていない場合はチェック結果をOK状態でない、NG状態とする。チェック部13Aは、チェック結果がOK状態の場合(ステップS33肯定)、記憶部4に書き込んだデータを読み出すべく、ステップS32に移行する。
【0061】
また、メモリコントローラ13Bの故障判定部13Cは、チェック結果がOK状態でない場合(ステップS33否定)、後述する図9の故障判定処理の判定結果に基づき、メモリインタフェース12Aが故障であるか否かを判定する(ステップS34)。故障判定部13Cは、メモリインタフェース12Aが故障でない場合(ステップS34否定)、選択部31Aに対して“H”レベルのメモリNG信号を出力する(ステップS35)。
【0062】
選択部31Aは、“H”レベルのメモリNG信号を検出すると、Bank aの構成情報の内、切替先の構成情報を選択する選択信号をコンフィグレーション制御部40Aに出力する(ステップS36)。尚、選択信号は、第1の選択信号“0”と、第2選択信号とを含む。更に、生成部32は、“H”レベルのメモリNG信号を検出すると、メモリNG信号のタイミングに基づき再コンフィグ信号をコンフィグレーション制御部40Aに出力する(ステップS37)。
【0063】
コンフィグレーション制御部40Aは、FPGA3Aに現在設定中のBank aの構成情報が“C”であるか否かを判定する(ステップS38)。コンフィグレーション制御部40Aは、FPGA3Aに現在設定中のBank aの構成情報が“C”でない場合(ステップS38否定)、再コンフィグ信号を検出すると、コンフィグ信号をFPGA3Aに出力する。そして、FPGA3Aは、コンフィグ信号を検出すると、Bank aの切替先の構成情報をFPGA3Aに再設定する(ステップS39)。尚、FPGA3A内のメモリコントローラ13Aは、情報処理装置1Aの電源起動時に初期設定のBank aの構成情報“A”を設定し、“H”レベルのメモリNG信号を検出する都度、Bank a内の構成情報“B”→構成情報“C”に切替え設定する。そして、FPGA3Aのメモリコントローラ13Bは、コンフィグ信号でBank aの構成情報が再設定されると、ステップS32に移行する。
【0064】
また、コンフィグレーション制御部40Aは、FPGA3Aに現在設定中のBank aの構成情報が“C”である場合(ステップS38肯定)、メモリ20A内の全ての構成情報が設定されてもチェック結果がNG状態と判定する。その結果、コンフィグレーション制御部40Aは、記憶部4の故障を外部通知する(ステップS40)。尚、情報処理装置1A側のユーザは、例えば、故障アラームの音響出力や点灯出力等の外部通知で記憶部4の故障を認識できる。更に、コンフィグレーション制御部40Aは、記憶部4の故障を外部通知すると、記憶部4の動作を停止し(ステップS41)、図8に示す処理動作を終了する。
【0065】
また、故障判定部13Cは、メモリインタフェース12Aが故障の場合(ステップS34肯定)、選択部31Aに対して“H”レベルのインタフェースNG信号を出力する(ステップS42)。コンフィグレーション制御部40Aは、選択部31Aの指示に応じて、Bank bの構成情報“A”をメモリ20Aから読み出す(ステップS43)。コンフィグレーション制御部40Aは、読み出されたBank bの構成情報“A”をFPGA3A内のBank bに設定する(ステップS44)。
【0066】
FPGA3Aは、例えば、記憶部4に書き込んだデータを読み出す(ステップS45)。チェック部13Aは、記憶部4のチェック結果がOK状態であるか否かを判定する(ステップS46)。チェック部13Aは、チェック結果がOK状態の場合(ステップS46肯定)、記憶部4に書き込んだデータを読み出すべく、ステップS45に移行する。
【0067】
また、チェック部13Aは、チェック結果がOK状態でない場合(ステップS46否定)、選択部31Aに対して“H”レベルのメモリNG信号を出力する(ステップS47)。選択部31Aは、“H”レベルのメモリNG信号を検出すると、Bank bの構成情報の内、切替先の構成情報を選択する選択信号をコンフィグレーション制御部40Aに出力する(ステップS48)。尚、選択信号は、第1の選択信号“1”と、第2の選択信号とを含む。更に、生成部32は、“H”レベルのメモリNG信号を検出すると、メモリNG信号のタイミングに基づき再コンフィグ信号をコンフィグレーション制御部40Aに出力する(ステップS49)。
【0068】
コンフィグレーション制御部40Aは、FPGA3Aに現在設定中のBank bの構成情報が“C”であるか否かを判定する(ステップS50)。コンフィグレーション制御部40Aは、FPGA3Aに現在設定中のBank bの構成情報が“C”でない場合(ステップS50否定)、再コンフィグ信号を検出すると、コンフィグ信号をFPGA3Aに出力する。そして、FPGA3Aは、コンフィグ信号を検出すると、Bank bの切替先の構成情報をFPGA3Aに再設定する(ステップS51)。尚、メモリコントローラ13Aは、メモリインタフェース12Aの故障判定時に設定のBank bの構成情報“A”を設定した場合、“H”レベルのメモリNG信号を検出する都度、Bank b内の構成情報“B”→構成情報“C”に切替え設定する。そして、FPGA3Aのメモリコントローラ13Bは、コンフィグ信号でBank bの構成情報が再設定されると、ステップS45に移行する。
【0069】
また、コンフィグレーション制御部40Aは、FPGA3Aに現在設定中のBank bの構成情報が“C”である場合(ステップS50肯定)、メモリ20A内の全ての構成情報が設定されてもチェック結果がNG状態と判定する。その結果、コンフィグレーション制御部40Aは、FPGA3Aの故障を外部通知すべく、ステップS40に移行する。
【0070】
図8に示すコンフィグレーション制御処理では、メモリインタフェース12Aが故障と判定されると、メモリ20Aに格納中のBank bの構成情報を読み出し、読み出された構成情報をFPGA3A内のBank bに設定する。FPGA3Aは、Bank bに新規のメモリインタフェース12Aを設定する。その結果、FPGA3Aは、FPGA3A内のBank aの故障のメモリインタフェース12AをFPGA3A内のBank bの新規のメモリインタフェース12Aに代用できる。
【0071】
コンフィグレーション制御処理では、メモリインタフェース12Aの故障判定後、Bank bの構成情報“A”を設定した後、“H”レベルのメモリNG信号を検出する都度、構成情報“B”→構成情報“C”の順に切替設定する。その結果、Bank bの構成情報を、構成情報“A”→構成情報“B”→構成情報“C”の順に提供できる。
【0072】
また、コンフィグレーション制御処理では、Bank bの構成情報“A”→構成情報“B”→構成情報“C”の各構成情報が切替設定されても、エラーが解消できない場合には、FPGA3Aの故障を外部通知する。その結果、情報処理装置1A側のユーザは、外部通知に基づきFPGA3Aの故障を認識できる。
【0073】
更に、コンフィグレーション制御処理では、Bank bの各構成情報が順次設定されても、メモリインタフェース12Aの故障が解消できなかった場合、記憶部4の動作を停止する。その結果、故障したメモリインタフェース12Aと接続する記憶部4の動作を自動停止できる。
【0074】
図9は、故障判定処理に関わる故障判定部13Cの処理動作の一例を示すフローチャートである。図9に示す故障判定処理は、FPGA3A内のメモリインタフェース12Aの故障を判定する処理である。
【0075】
図9において故障判定部13Cは、所定タイミングであるか否かを判定する(ステップS61)。尚、所定タイミングとは、例えば、チェック部13Aのチェック結果がOK状態でない、すなわちNG状態と判定されたタイミングである。故障判定部13Cは、所定タイミングの場合(ステップS61肯定)、メモリインタフェース12Aを低速モードに設定する(ステップS62)。尚、故障判定部13Cは、メモリインタフェース12A内のSEL63に対して運用モード設定部61から低速モード設定部62に切替選択し、メモリインタフェース12Aを低速モードに設定する。
【0076】
故障判定部13Cは、低速モードに設定した後、チェック部13Aを通じてチェック結果がOK状態であるか否かを判定する(ステップS63)。故障判定部13Cは、チェック結果がOK状態の場合(ステップS63肯定)、現在使用中のメモリインタフェース12Aが正常と判定する(ステップS64)。故障判定部13Cは、メモリインタフェース12Aが正常と判定されると、メモリインタフェース12Aを運用モードに設定し(ステップS65)、図9に示す処理動作を終了する。
【0077】
また、故障判定部13Cは、チェック結果がOK状態でない場合(ステップS63否定)、現在使用中のメモリインタフェース12A自体が故障と判定し(ステップS66)、メモリインタフェース12Aを運用モードに設定すべく、ステップS65に移行する。
【0078】
図9に示す故障判定処理では、記憶部4との通信速度を低速にしたにも関わらず、チェック結果がNG状態の場合、FPGA3A内のメモリインタフェース12A自体が故障と判定する。その結果、FPGA3Aの故障判定部13Cは、Bank内のメモリインタフェース12Aの故障を認識できる。
【0079】
また、故障判定処理では、記憶部4との通信速度を低速することでチェック結果がOK状態の場合、FPGA3A内のメモリインタフェース12Aが正常と判定する。その結果、FPGA3Aの故障判定部13Cは、Bank内のメモリインタフェース12Aの正常を認識できる。
【0080】
実施例2の情報処理装置1Aでは、FPGA3A内のBank aのメモリインタフェース12A自体が故障した場合、FPGA3A内のBank bにBank bの構成情報を設定することで新たなメモリインタフェース12Aを構成する。その結果、FPGA3Aは、Bank aの故障したメモリインタフェース12AをBank bのメモリインタフェース12Aに代用できるため、FPGA3Aの故障によるタイミングエラーを解消できる。
【0081】
実施例2の情報処理装置1Aでは、Bank毎に複数の構成情報を記憶しておく。そして、情報処理装置1Aは、他のBankの一の構成情報をFPGA3Aに設定した後、記憶部4のAC特性変化で“H”レベルのメモリNG信号を検出した場合、同一Bank内の他の構成情報に切替えて、切替えられた構成情報をFPGA3Aに設定する。その結果、FPGA3Aは、記憶部4のAC特性変化によるタイミングエラーが発生した場合でも、同一Bank内の構成情報を切替えて記憶部4のAC特性変化によるタイミングエラーを解消できる。
【0082】
尚、上記実施例2の故障判定処理では、ステップS61の所定タイミングとして、例えば、チェック部13Aによるチェック結果がNG状態と判定されたタイミングを例示したが、このタイミングに限定されるものではない。例えば、FPGA3Aが記憶部4とのアクセスが少なくなる時間帯等のタイミングとしても良い。
【0083】
また、上記実施例では、メモリ20(20A)内に記憶された構成情報を3種類の構成情報としたが、その数に限定されるものではない。また、構成情報は、例えば、FeRAM、MRAM、PRAM、ReRAM、DRAMやSRAM等のメモリ装置に記憶しても良い。
【0084】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0085】
更に、各装置で行われる各種処理機能は、CPU(Central Processing Unit)(又はMPU(Micro Processing Unit)、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、CPU(又はMPU、MCU等のマイクロ・コンピュータ)で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
【0086】
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することによって実現できる。そこで、以下では、図10を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図10は、記憶制御プログラムを実行するコンピュータを示す説明図である。
【0087】
図10に示すように、記憶制御プログラムとしてのコンピュータ100では、HDD(Hard Disk Drive)110、RAM(Random Access Memory)120、ROM(Read Only Memory)130及びCPU140がバス150を介して接続される。更に、コンピュータ100は、記憶部170をアクセス制御するFPGA160をバス150で接続される。
【0088】
そして、ROM130若しくはHDD110には、上記の実施例と同様の機能を発揮する記憶制御プログラムが予め記憶されている。尚、ROM130及びHDD110ではなく、図示せぬドライブでコンピュータ読取可能な記録媒体に記憶制御プログラムが記録されていても良い。また、記録媒体としては、例えば、CD−ROM、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。記憶制御プログラムとしては、図10に示すように、設定プログラム131である。尚、設定プログラム131は、図1に示した記憶制御部5の各構成要素と同様、適宜統合又は分散してもよい。
【0089】
そして、CPU140が、設定プログラム131をROM130から読み出して実行する。そして、設定プログラム131は、設定プロセス141として機能する。
【0090】
CPU140は、記憶部170をアクセス制御するFPGA160に関わる、記憶部170のアクセス制御の特性に対応した、複数の構成情報を記憶するRAM120から構成情報をFPGA160に設定する。更に、CPU140は、RAM120に記憶中の一の構成情報をFPGA160に設定した後、記憶部170のタイミングエラーを検出すると、RAM120に記憶中の異なる構成情報に切替えて、切替えられた構成情報をFPGA160に設定する。その結果、FPGA160は、記憶部170の特性変化によるタイミングエラーが発生した場合でも、構成情報を切替えて記憶部170の特性変化によるタイミングエラーを解消できる。
【0091】
以上、本実施例を含む実施の形態に関し、更に以下の付記を開示する。
【0092】
(付記1)複数のバンクを備え、設定された構成情報に基づき、前記バンク内に回路を構成する制御部と、
前記バンクに対応した前記構成情報を記憶する構成記憶部と、
前記構成記憶部から前記構成情報を読み出し、読み出された構成情報に関わるバンク内に当該構成情報を設定する設定部と、
前記設定部によって設定された前記構成情報に基づき当該バンク内に構成された、記憶部と接続する回路と当該記憶部との間のタイミング調整のエラーを検出した場合に、前記回路の故障と判定する故障判定部と
を有することを特徴とする記憶制御装置。
【0093】
(付記2)前記設定部は、
前記故障判定部によって前記回路の故障と判定された場合に、前記制御部内の他のバンクに、前記記憶部と接続する回路を構成する前記構成情報を設定し、
前記制御部は、
前記設定部によって設定された前記構成情報に基づき、当該バンク内に当該回路を構成することを特徴とする付記1に記載の記憶制御装置。
【0094】
(付記3)前記設定部は、
前記故障判定部によって前記回路の故障と判定された場合に、前記制御部内の未使用のバンクに、前記記憶部と接続する回路を構成する前記構成情報を設定し、
前記制御部は、
前記設定部によって設定された前記構成情報に基づき、当該未使用のバンク内に当該回路を構成することを特徴とする付記1に記載の記憶制御装置。
【0095】
(付記4)前記故障判定部は、
前記回路と前記記憶部との間の通信速度を運用速度から低速化して前記タイミング調整のエラーを検出したか否かを判定し、前記タイミング調整のエラーを検出した場合に、前記回路の故障と判定すると共に、
前記通信速度を低速化して前記タイミング調整のエラーを検出しなかった場合に、前記回路の正常と判定する
ことを特徴とする付記1〜3の何れか一つに記載の記憶制御装置。
【0096】
(付記5)複数のバンクを備え、設定された構成情報に基づき、前記バンク内に回路を構成する制御部と、前記バンクに対応した前記構成情報を記憶する構成記憶部と、前記構成記憶部から前記構成情報を読み出し、読み出された構成情報に関わるバンク内に当該構成情報を設定する設定部とを有する記憶制御装置の記憶制御方法であって、
前記記憶制御装置は、
前記設定部によって設定された前記構成情報に基づき当該バンク内に構成された、記憶部と接続する回路と当該記憶部との間のタイミング調整のエラーを検出した場合に、前記回路の故障と判定する
ことを特徴とする記憶制御方法。
【符号の説明】
【0097】
1,1A 情報処理装置
3,3A FPGA
4 記憶部
5,5A 記憶制御部
13,13B メモリコントローラ
13A チェック部
13C 故障判定部
20,20A メモリ
30,30A 指示部
31,31A 選択部
32 生成部
40,40A コンフィグレーション制御部
【技術分野】
【0001】
本発明は、記憶制御装置、記憶制御方法及び記憶制御プログラムに関する。
【背景技術】
【0002】
例えば、通信機器やコンピュータ等の情報処理装置は、各種情報を記憶した記憶部を有している。図11は、情報処理装置内部の一例を示すブロック図である。例えば、通信機器等の情報処理装置100Aは、CPU(Central Processing Unit)101と、FPGA(Field Programmable Gate Array)102と、記憶部103と、記憶制御部104とを有する。CPU101は、FPGA102を通じて記憶部103に対してデータの書込み及び読出しを制御する。FPGA102は、後述する設定中の構成情報に基づき記憶部103をアクセス制御する。フラッシュメモリ111には、記憶部103の交流(AC:Alternating Current)特性に対応した構成情報が記憶される。尚、構成情報は、例えば、FPGA102が記憶部103をアクセス制御する上で記憶部103に対する各種制御信号のタイミングを制御する情報である。
【0003】
FPGA102は、CPUインタフェース102Aと、メモリインタフェース102Bと、メモリコントローラ102Cとを有する。CPUインタフェース102Aは、CPU101とメモリコントローラ102Cとを接続するインタフェースである。メモリインタフェース102Bは、メモリコントローラ102Cと記憶部103とを接続するインタフェースである。メモリコントローラ102Cは、設定中の構成情報に基づき、記憶部103をアクセス制御する。記憶部103は、例えば、EAROM(Electrically Alterable ROM)、EEPROM(Electrically Erasable and Programmable ROM)、フラッシュメモリ、FeRAM(Ferroelectric RAM)、MRAM(Magnetic RAM)等のメモリ装置である。
【0004】
記憶制御部104は、フラッシュメモリ111と、コンフィグレーション制御部112とを有する。コンフィグレーション制御部112は、情報処理装置100Aの電源起動を検出すると、フラッシュメモリ111に記憶中の初期設定の構成情報を読み出す。更に、コンフィグレーション制御部112は、構成情報及びコンフィグレーション信号(以下、コンフィグ信号と称する)をFPGA102に通知する。FPGA102内のメモリコントローラ102Cは、コンフィグレーション制御部112からのコンフィグ信号に応じて構成情報をFPGA102に設定する。
【0005】
メモリコントローラ102Cは、記憶部103との間で、例えば、アドレス信号、チップセレクト信号、ライトイネーブル信号、アウトプットイネーブル信号等の制御信号を用いて記憶部103のアクセスを制御する。尚、アドレス信号は、記憶部103内のアドレスを指定する信号である。チップセレクト信号は、記憶部103内のチップを指定する信号である。ライトイネーブル信号は、記憶部103内のデータ書込みを指示する信号である。アウトプットイネーブル信号は、記憶部103内のデータ読出を指示する信号である。
【0006】
構成情報は、メモリコントローラ102Cが記憶部103に対して正常にアクセス制御する上で、例えば、所定のセットアップタイム及びホールドタイムを設定する情報である。尚、セットアップタイムは、タイミング信号に先立ってデータを確定及び保持する最小限の時間である。ホールドタイムは、タイミング信号検出後もデータを保持する時間である。つまり、メモリコントローラ102Cは、セットアップタイム及びホールドタイムの条件を満たすことで、記憶部103との制御信号間の正常なタイミングでアクセス制御が可能となる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2010−122842号公報
【特許文献2】国際公開第2004/102389号
【特許文献3】特開2006−99597号公報
【特許文献4】特開2006−65470号公報
【特許文献5】特開2007−87284号公報
【特許文献6】特開2004−246699号公報
【特許文献7】特開2001−136058号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、FPGA102は、初期設定の構成情報を設定中に、記憶部103の経年劣化や温度変化等の環境変化で記憶部103のAC特性に変化が生じた場合に記憶部103との制御信号間でタイミングエラーが生じる。従って、FPGA102では、記憶部103との制御信号間のタイミングエラーが生じた場合、初期設定の構成情報で決定される、例えば、セットアップタイムまでにデータを確定及び保持できない。その結果、FPGA102は、記憶部103の特性変化等で初期設定の構成情報では記憶部103に対する正常なアクセス制御を確保できない。
【0009】
そこで、記憶制御部104では、例えば、チップセレクト信号、アドレス信号、ライトイネーブル信号やアウトプットイネーブル信号等の制御信号毎にタイミングを調整するタイミング調整回路を備え、制御信号間のタイミングエラーを解消することが考えられる。しかしながら、各タイミング調整回路は、制御信号のタイミングを高精度に調整するには複数段のフリップフロップ回路を要する。従って、記憶制御部104では、制御信号毎に複数のフリップフロップ回路を備えたタイミング調整回路を要するため、その回路規模が大規模になることは勿論のこと、その消費電力も大きくなる。
【0010】
一つの側面は、記憶部の特性に変化が生じた場合でも記憶部に対して正常なアクセス制御を確保できる記憶制御装置、記憶制御方法及び記憶制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
開示の装置は一つの態様において、記憶部をアクセス制御する制御部に関わる、前記記憶部のアクセス制御の特性に対応した、複数の構成情報を記憶する構成記憶部と、前記構成情報を前記制御部に設定する設定部とを有する。更に、開示の装置の前記設定部は、前記構成記憶部に記憶中の一の構成情報を前記制御部に設定した後、前記記憶部の制御エラーを検出すると、前記構成記憶部に記憶中の異なる構成情報に切替えて、切替えられた構成情報を前記制御部に設定する。
【発明の効果】
【0012】
記憶部の特性に変化が生じた場合でも記憶部に対して正常なアクセス制御を確保できる。
【図面の簡単な説明】
【0013】
【図1】図1は、実施例1の情報処理装置内部の一例を示すブロック図である。
【図2】図2は、生成部内部の一例を示すブロック図である。
【図3】図3は、生成部内部の再コンフィグ信号の生成タイミングを示す説明図である。
【図4】図4は、FPGA及び選択部に関わる記憶部のタイミングエラー発生からタイミングエラー解消までの動作タイミングを示す説明図である。
【図5】図5は、コンフィグレーション制御処理に関わるFPGA及びコンフィグレーション制御部の処理動作の一例を示すフローチャートである。
【図6】図6は、実施例2の情報処理装置内部の一例を示すブロック図である。
【図7】図7は、FPGAのバンク構成の一例を示す説明図である。
【図8】図8は、コンフィグレーション制御処理に関わるFPGA及びコンフィグレーション制御部の処理動作の一例を示すフローチャートである。
【図9】図9は、故障判定処理に関わる故障判定部の処理動作の一例を示すフローチャートである。
【図10】図10は、記憶制御プログラムを実行するコンピュータを示す説明図である。
【図11】図11は、情報処理装置内部の一例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、図面に基づいて、本願の開示する記憶制御装置、記憶制御方法及び記憶制御プログラムの実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。
【実施例1】
【0015】
図1は、実施例1の情報処理装置内部の一例を示すブロック図である。図1に示す情報処理装置1は、例えば、通信機器やコンピュータ等に相当し、CPU2と、FPGA3と、記憶部4と、記憶制御部5とを有する。CPU2は、情報処理装置1全体を制御すると共に、FPGA3経由で記憶部4をアクセス制御する。FPGA3は、CPU2と記憶部4との間に配置し、記憶部4をアクセス制御する。FPGA3は、CPUインタフェース11と、メモリインタフェース12と、メモリコントローラ13とを有する。CPUインタフェース11は、CPU2とメモリコントローラ13とを接続するインタフェースである。メモリインタフェース12は、メモリコントローラ13と記憶部4とを接続するインタフェースである。メモリコントローラ13は、後述する設定中の構成情報に基づき、記憶部4をアクセス制御する。更に、メモリコントローラ13は、記憶部4の状態、例えば、ECC(Error Check and Correct)やパリティチェックを行うチェック部13Aを有する。チェック部13Aは、例えば、記憶部4の経年変化や温度変化等の環境変化による記憶部4のAC特性が変化した場合に記憶部4の制御信号間のタイミングエラーを検出すると、メモリNG信号を出力する。
【0016】
記憶部4は、例えば、EAROM(Electrically Alterable ROM)、EEPROM(Electrically Erasable and Programmable ROM)、フラッシュメモリ、FeRAM(Ferroelectric RAM)、MRAM(Magnetic RAM)等のメモリ装置である。また、記憶部4は、例えば、PRAM(Pseudo RAM)、ReRAM(Resistance RAM)、DRAM(Dynamic RAM)やSRAM(Static RAM)等のメモリ装置である。
【0017】
記憶制御部5は、メモリ20と、指示部30と、コンフィグレーション制御部40とを有する。メモリ20は、例えばフラッシュメモリ、EAROM、EEPROM等のメモリ装置である。メモリ20には、記憶部4の異なるAC特性に対応した複数の構成情報が格納してある。尚、メモリ20には、例えば、アドレス“0000”〜“0FFF”の格納領域に初期設定の構成情報“A”が格納してある。更に、メモリ20には、アドレス“1000”〜“1FFF”の格納領域に、他のAC特性に対応した構成情報“B”が格納してある。更に、メモリ20は、アドレス“2000”〜“2FFF”の格納領域に、他のAC特性に対応した構成情報“C”が格納してある。これら3種類の構成情報“A”〜“C”は、一例に過ぎず、2種類あるいは4以上の種類の構成情報をメモリ20格納してもよい。
【0018】
指示部30は、選択部31と、生成部32とを有する。選択部31は、メモリコントローラ13からの“H”レベルのメモリNG信号を検出すると、メモリ20に格納された構成情報の内、切替先の構成情報を選択する選択信号を出力する。生成部32は、“H”レベルのメモリNG信号を検出すると、“H”レベルのメモリNG信号のタイミングに基づき再コンフィグ信号を生成する。
【0019】
図2は、生成部32内部の一例を示すブロック図である。図3は、生成部32内部の再コンフィグ信号の生成タイミングを示す説明図である。生成部32は、フリップフロップ回路(以下、単にFF回路)32Aと、NOT回路32Bと、AND回路32Cと、FF回路32Dとを有する。図3においてFF回路32Aは、“H”レベルのメモリNG信号の立ち上がりを検出すると、このメモリNG信号を1クロック(CLK)分遅延した信号をNOT回路32Bに出力する。NOT回路32Bは、FF回路32Aの出力信号を反転してAND回路32Cへ出力する。AND回路32Cは、NOT回路32Bの出力信号と、“H”レベルのメモリNG信号との論理積による信号を出力する。FF回路32Dは、AND回路32Cの出力信号を1クロック分遅延することで、再コンフィグ信号を出力する。尚、再コンフィグ信号は、他の構成情報をFPGA3に再設定する際のコンフィグ信号の生成に使用する。
【0020】
コンフィグレーション制御部40は、選択部31から切替先の構成情報を選択する選択信号を検出すると、選択信号により指定された構成情報をメモリ20から読み出す。
【0021】
コンフィグレーション制御部40は、上位指定部41と、下位指定部42と、ビット結合部43とを有する。上位指定部41は、選択部31からの選択信号を検出すると、構成情報を格納したメモリ20内の格納領域のアドレスの上位ビットを指定する。下位指定部42は、当該格納領域のアドレスの下位ビットを指定する。尚、例えば、構成情報“B”の格納領域の先頭アドレスが“1000”の場合、上位ビットは“1”、下位ビットは“000”となる。ビット結合部43は、上位指定部41により指定された上位ビットと、下位指定部42により指定された下位ビットとを結合して読み出し対象の構成情報のアドレスを生成する。尚、ビット結合部43は、上位ビットが“1”、下位ビットが“000”とした場合、“1”と“000”とを結合してアドレス信号“1000”となる。コンフィグレーション制御部40は、ビット結合部43が出力したアドレス信号に基づき、メモリ20から構成情報を読み出す。更に、コンフィグレーション制御部40は、生成部32から再コンフィグ信号を検出すると、読み出された指定の構成情報をFPGA3に設定するコンフィグ信号をFPGA3に出力する。FPGA3は、コンフィグ信号を検出すると、構成情報を設定する。
【0022】
次に実施例1の情報処理装置1の動作について説明する。図4は、FPGA3及び選択部31に関わる記憶部4のタイミングエラー発生からタイミングエラー解消までの動作タイミングを示す説明図である。図4では、記憶部4の経年変化や温度変化等の環境変化でAC特性に変化が生じ、例えば、初期設定の構成情報“A”のセットアップタイム前にデータを確定及び保持できずにタイミングエラーが生じたとする。尚、初期設定の構成情報“A”は、セットアップタイムTsuとホールドタイムThとの間を、例えば5n秒間とする。この際、メモリコントローラ13のチェック部13Aは、構成情報“A”のタイミングエラーを検出すると、“H”レベルのメモリNG信号を出力する。指示部30内の選択部31は、メモリコントローラ13から“H”レベルのメモリNG信号を検出すると、構成情報“A”から切替先の構成情報“B”を選択する選択信号をコンフィグレーション制御部40に出力する。更に、指示部30内の生成部32は、“H”レベルのメモリNG信号のタイミングに基づき再コンフィグ信号を生成する。そして、生成部32は、再コンフィグ信号をコンフィグレーション制御部40に出力する。
【0023】
コンフィグレーション制御部40は、選択信号を受信した場合、上位指定部41、下位指定部42及びビット結合部43を通じて構成情報“B”の格納領域のアドレス信号を生成する。更に、コンフィグレーション制御部40は、アドレス信号に基づき、メモリ20の格納領域から指定の構成情報“B”を読み出す。更に、コンフィグレーション制御部40は、構成情報“B”をFPGA3内のメモリコントローラ13に出力する。更に、コンフィグレーション制御部40は、指示部30からの再コンフィグ信号を検出すると、再コンフィグ信号に基づき、FPGA3に構成情報“B”を設定するコンフィグ信号を出力する。FPGA3は、コンフィグ信号を検出すると、構成情報“B”が設定されるため、構成情報“B”のセットアップタイムTsu1とホールドタイムTh1との間が、例えば3n秒間となる。その結果、FPGA3は、セットアップタイムがTsuからTsu1へ変わることで、セットアップタイムTsu1時又はセットアップタイムTsu1以前にデータを確定及び保持できる。従って、FPGA3は、構成情報“B”の設定で記憶部4のタイミングエラーが解消できる。つまり、図4の例では、構成情報“A”から構成情報“B”に切替選択し、セットアップタイムを変更して記憶部4のタイミングエラーが解消できる。
【0024】
図5は、コンフィグレーション制御処理に関わるFPGA3及びコンフィグレーション制御部40の処理動作の一例を示すフローチャートである。図5においてコンフィグレーション制御部40は、情報処理装置1の電源起動時にメモリ20に格納された初期設定の構成情報“A”をFPGA3に設定する(ステップS11)。FPGA3は、通常運用時に、例えば、記憶部4に書き込んだデータを読み出す(ステップS12)。FPGA3のメモリコントローラ13のチェック部13Aは、記憶部4のチェック結果がOK状態であるか否かを判定する(ステップS13)。尚、チェック部13Aは、例えば、セットアップタイム及びホールドタイムの正常条件を満たしたか否かを判定し、正常条件を満たした場合はチェック結果をOK状態とし、正常条件を満たしていない場合はチェック結果をOK状態でない、NG状態とする。チェック部13Aは、チェック結果がOK状態の場合(ステップS13肯定)、記憶部4に書き込んだデータを読み出すべく、ステップS12に移行する。
【0025】
また、チェック部13Aは、チェック結果がOK状態でない場合(ステップS13否定)、選択部31に対して“H”レベルのメモリNG信号を出力する(ステップS14)。選択部31は、“H”レベルのメモリNG信号を検出すると、切替先の構成情報を選択する選択信号をコンフィグレーション制御部40に出力する(ステップS15)。更に、生成部32は、“H”レベルのメモリNG信号を検出すると、メモリNG信号のタイミングに基づき再コンフィグ信号をコンフィグレーション制御部40に出力する(ステップS16)。
【0026】
コンフィグレーション制御部40は、FPGA3に現在設定中の構成情報が“C”であるか否かを判定する(ステップS17)。コンフィグレーション制御部40は、FPGA3に現在設定中の構成情報が“C”でない場合(ステップS17否定)、再コンフィグ信号を検出すると、コンフィグ信号をFPGA3に出力する。そして、FPGA3は、コンフィグ信号を検出すると、切替先の構成情報をFPGA3に再設定する(ステップS18)。尚、FPGA3内のメモリコントローラ13は、情報処理装置1の電源起動時に初期設定の構成情報“A”を設定し、“H”レベルのメモリNG信号を検出する都度、構成情報“B”→構成情報“C”に切替え設定する。そして、コンフィグレーション制御部40は、コンフィグ信号で構成情報をFPGA3のメモリコントローラ13に再設定すると、ステップS12に移行する。
【0027】
また、コンフィグレーション制御部40は、FPGA3に現在設定中の構成情報が“C”である場合(ステップS17肯定)、メモリ20内の全ての構成情報が設定されてもチェック結果がNG状態であると判断する。その結果、コンフィグレーション制御部40は、記憶部4の故障を外部通知する(ステップS19)。尚、情報処理装置1側のユーザは、例えば、故障アラームの音響出力や点灯出力等の外部通知で記憶部4の故障を認識できる。更に、コンフィグレーション制御部40は、記憶部4の故障を外部通知すると、記憶部4の動作を停止し(ステップS20)、図5に示す処理動作を終了する。
【0028】
図5に示すコンフィグレーション制御処理では、記憶部4の特性変化で“H”レベルのメモリNG信号を検出すると、メモリ20に格納中の複数の構成情報から異なる構成情報を読み出し、読み出された構成情報をFPGA3に設定する。その結果、FPGA3は、読み出された構成情報が設定されるため、記憶部4の特性変化に対応した構成情報を提供できる。
【0029】
また、コンフィグレーション制御処理では、情報処理装置1の電源起動時に初期設定の構成情報“A”、その後、“H”レベルのメモリNG信号を検出する都度、構成情報“B”→構成情報“C”の順に切替設定する。その結果、構成情報“A”→構成情報“B”→構成情報“C”の順に提供できる。尚、再度、情報処理装置1の電源起動を検出すると、初期設定の構成情報“A”に切替設定される。
【0030】
また、コンフィグレーション制御処理では、構成情報“A”→構成情報“B”→構成情報“C”の各構成情報が切替設定され、全ての構成情報によっても記憶部4のタイミングエラーが解消できない場合、記憶部4の故障を外部へ通知する。その結果、情報処理装置1側のユーザは、通知に基づき記憶部4の故障を認識できる。
【0031】
更に、コンフィグレーション制御処理では、各構成情報が順次設定されても、記憶部4のタイミングエラーが解消できなかった場合、記憶部4の動作を停止する。その結果、タイミングエラーを抱えた記憶部4の動作を自動停止できる。
【0032】
実施例1では、複数の構成情報を記憶しておき、一の構成情報をFPGA3に設定した後、記憶部4のAC特性変化で“H”レベルのメモリNG信号を検出した場合、他の構成情報に切替えて、切替えられた構成情報をFPGA3に設定する。その結果、FPGA3は、記憶部4のAC特性変化によるタイミングエラーが発生した場合でも、構成情報を切替えて記憶部4のAC特性変化によるタイミングエラーを解消できる。しかも、記憶制御部5では、記憶部4のAC特性変化によるタイミングエラーを解消する機能を備えたからといって、特別に大規模な回路規模を要せず、その消費電力も特別に大きくなることもない。
【0033】
また、実施例1では、異なる構成情報を切替設定した後、切替設定された各構成情報でもタイミングエラーが解消できない場合、記憶部4の動作を停止する。その結果、タイミングエラーを抱えた記憶部4の動作を自動停止できる。
【0034】
また、実施例1では、構成情報がセットアップタイムを調整する情報としたので、構成情報を切替設定することでセットアップタイムを調整する。その結果、FPGA3は、切替えた構成情報のセットアップタイム前にデータを確定及び保持できるため、AC特性変化による記憶部4のタイミングエラーを解消できる。
【0035】
尚、上記実施例1では、メモリNG信号を検出する都度、初期設定の構成情報“A”→構成情報“B”→構成情報“C”に切替設定し、電源停止後、再度、電源起動を検出すると、初期設定の構成情報“A”からFPGA3に設定する。しかしながら、記憶制御部5では、電源停止直前に設定中の構成情報、例えば、構成情報“B”をバックアップする不揮発性のバックアップ記憶部を備える。更に、記憶制御部5は、電源起動を検出した場合、タイミングエラーが生じた初期設定の構成情報“A”を再度設定せず、バックアップ記憶部に記憶中の構成情報“B”をFPGA3に設定しても良い。
【0036】
また、上記実施例1では、記憶部4のAC特性変化に対応した構成情報として、例えば、セットアップタイムを調整する情報としたが、例えば、ホールドタイムを調整する情報としても良い。
【0037】
また、構成情報として記憶部4に記憶されたデータを外部出力する制御信号の出力タイミングを調整する情報としても良い。FPGA3は、異なる構成情報を切替設定することで、制御信号の出力タイミングを調整して、記憶部4からのデータ読み出しタイミングを調整する。その結果、FPGA3は、記憶部4のAC特性変化によるタイミングエラーを解消できる。例えば、FPGA3が記憶部4へ出力する制御信号であるチップセレクト信号の出力タイミングを早める構成情報を切替設定することで、記憶部4のAC特性変化によるタイミングエラーを解消できる。
【0038】
また、構成情報としてFPGA3が記憶部4のアクセス制御のタイミング調整に使用するクロック(CLK)の位相を調整する情報としても良い。この場合、FPGA3は、異なる構成情報を切替設定することで、クロック(CLK)の位相を調整して、記憶部4のアクセス制御のタイミングを調整する。その結果、FPGA3は、記憶部4のAC特性変化によるタイミングエラーを解消できる。
【0039】
尚、上記実施例1では、FPGA3が、記憶部4のAC特性変化によるタイミングエラーが発生した場合、異なる構成情報を切替えて記憶部4のAC特性変化によるタイミングエラーを解消した。しかしながら、FPGA3内のメモリインタフェース12自体が故障した場合、記憶部4に対してアクセス制御できない。そこで、メモリインタフェース12自体が故障した場合でも、記憶部4に対して正常にアクセス制御できる情報処理装置1につき、実施例2として以下に説明する。
【実施例2】
【0040】
図6は、実施例2の情報処理装置内部の一例を示すブロック図である。尚、実施例1の情報処理装置1と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。図6に示す情報処理装置1Aは、CPU2と、FPGA3Aと、記憶部4と、記憶制御部5Aとを有する。CPU2は、情報処理装置1A全体を制御すると共に、FPGA3A経由で記憶部4をアクセス制御する。FPGA3Aは、CPU2と記憶部4との間に配置し、記憶部4をアクセス制御する。FPGA3Aは、CPUインタフェース11と、メモリインタフェース12Aと、メモリコントローラ13Bとを有する。
【0041】
メモリインタフェース12Aは、メモリコントローラ13Bと記憶部4とを接続するインタフェースである。メモリインタフェース12Aは、運用モード設定部61と、低速モード設定部62と、SEL(Selector)63とを有する。運用モード設定部61は、記憶部4との通信速度が、後述の低速モードよりも速い通常速度の運用モードに設定する。低速モード設定部62は、通信速度が運用モードの通常速度よりも遅い低速モードに設定する。SEL63は、メモリコントローラ13Bの切替制御のモード制御信号に応じて運用モード設定部61又は低速モード設定部62を切替選択することで、通信速度を運用モード又は低速モードに設定する。尚、低速モードに設定された場合、メモリインタフェース12Aの通信速度が全体的に遅くなるため、ACタイミングのセットアップタイムやホールドタイムに余裕が生じてタイミングエラーが解消できる。
【0042】
メモリコントローラ13Bは、設定中の構成情報に基づき、記憶部4をアクセス制御する。更に、メモリコントローラ13Bは、チェック部13Aの他に、メモリインタフェース12Aの故障を判定する故障判定部13Cを有する。故障判定部13Cは、所定タイミングに応じて、SEL63を切替制御することで運用モードから低速モードに切替設定する。尚、所定タイミングとは、例えば、チェック部13Aのチェック結果がOK状態でない、すなわちNG状態を検出した場合である。
【0043】
故障判定部13Cは、例えば、チェック部13AがNG状態を検出した場合、運用モードから低速モードに切り替え設定してメモリインタフェース12Aの故障を判定する故障判定処理を実行する。故障判定部13Cは、低速モードに設定されてチェック結果がOK状態の場合、メモリインタフェース12Aが正常と判定する。これに対して、故障判定部13Cは、低速モードに設定されたにもかかわらず、チェック結果がNG状態のままの場合、メモリインタフェース12Aの故障と判定する。そして、故障判定部13Cは、メモリインタフェース12Aの故障と判定された場合、インタフェースNG信号を指示部30に出力する。
【0044】
図7は、FPGA3Aのバンク構成の一例を示す説明図である。図7に示すFPGA3Aは、例えば、Bank a〜Bank pの合計16個のI/Oを備えたバンクを有し、各バンクは、設定された構成情報に基づき、例えば、メモリインタフェース12Aやメモリコントローラ13B等の各回路として機能(構成)する。そして、FPGA3Aは、空きのBankを確保しておく。例えば、FPGA3A内のBank aは、例えば、メモリインタフェース12Aとして機能し、FPGA3A内のBank bは、未使用の空き領域とする。
【0045】
記憶制御部5Aは、メモリ20Aと、指示部30Aと、コンフィグレーション制御部40Aとを有する。メモリ20Aは、例えば、FPGA3A内のメモリインタフェース12Aの構成情報が格納してある。尚、メモリ20Aには、アドレス“0000”〜“0FFF”の格納領域に、FPGA3A内のBank aの構成情報“A”が格納してある。更に、メモリ20Aには、アドレス“1000”〜“1FFF”の格納領域に、FPGA3A内のBank aの構成情報“B”が格納してある。更に、メモリ20Aには、アドレス“2000”〜“2FFF”の格納領域に、FPGA3A内のBank aの構成情報“C”が格納してある。
【0046】
また、メモリ20Aには、アドレス“3000”〜“3FFF”の格納領域に、FPGA3A内のBank bの構成情報“A”が格納してある。更に、メモリ20Aには、アドレス“4000”〜“4FFF”の格納領域に、FPGA3A内のBank bの構成情報“B”が格納してある。更に、メモリ20Aには、アドレス“5000”〜“5FFF”の格納領域に、FPGA3A内のBank bの構成情報“C”が格納してある。
【0047】
指示部30Aは、生成部32の他に、選択部31Aを有する。選択部31Aは、メモリコントローラ13Bからの“H”レベルのメモリNG信号を検出すると、メモリ20Aに格納されたBankの内、切替先のBankを選択する第1の選択信号を出力する。更に、選択部31Aは、“H”レベルのメモリNG信号を検出すると、メモリ20Aに格納された切替先Bankの構成情報“A”〜“C”の内、切替先の構成情報を選択する第2の選択信号を出力する。生成部32は、“H”レベルのメモリNG信号及び“H”レベルのインタフェースNG信号を検出すると、“H”レベルのメモリNG信号及び“H”レベルのインタフェースNG信号のタイミングに基づき再コンフィグ信号を生成する。尚、再コンフィグ信号は、他の構成情報をFPGA3Aに再設定する際のコンフィグ信号の生成に使用する。
【0048】
コンフィグレーション制御部40Aは、選択部31Aから切替先のBank及び切替先の構成情報を選択する選択信号を検出すると、メモリ20Aから指定のBankの構成情報を読み出す。尚、選択信号は、切替先のBankを選択する第1の選択信号と、切替先の構成情報を選択する第2の選択信号とを含む。
【0049】
コンフィグレーション制御部40Aは、Bank指定部41Aと、上位指定部41Bと、下位指定部42Aと、ビット結合部43Aとを有する。Bank指定部41Aは、選択部31Aから第1の選択信号が検出されると、切替先のBankを指定する。Bank指定部41Aは、第1の選択信号“0”が検出されると、Bank aを指定すると共に、第1の選択信号“1”が検出されると、Bank bを指定する。
【0050】
また、上位指定部41Bは、選択部31Aから第2の選択信号が検出されると、切替先の構成情報を指定する。上位指定部41Bは、例えば、第2の選択信号“0”が検出されると、構成情報“A”を指定する。また、上位指定部41Bは、例えば、第2の選択信号“1”が検出されると、構成情報“B”を指定する。また、上位指定部41Bは、例えば、第2の選択信号“2”が選択されると、構成情報“C”を指定する。
【0051】
また、下位指定部42Aは、メモリ20A内の格納領域のアドレスの下位ビットを指定する。ビット結合部43Aは、上位ビットと下位ビットとを結合して読み出し対象の構成情報のアドレスを指定する。ビット結合部43Aは、例えば、Bank指定部41Aが“0”、上位指定部41Bが“0”の場合、Bank aの構成情報“A”の上位アドレス“0”を指定すると共に、下位指定部42Aの下位アドレス“000”を指定する。コンフィグレーション制御部40Aは、上位アドレス“0”と下位アドレス“000”とを結合して、アドレス“0000”を指定してBank aの構成情報“A”をメモリ20Aから読み出す。
【0052】
また、ビット結合部43Aは、Bank指定部41Aが“0”、上位指定部41Bが“1”の場合、Bank aの構成情報“B”の上位アドレス“1”を指定すると共に、下位指定部42Aの下位アドレス“000”を指定する。コンフィグレーション制御部40Aは、上位アドレス“1”と下位アドレス“000”とを結合して、アドレス“1000”を指定してBank aの構成情報“B”をメモリ20Aから読み出す。
【0053】
また、ビット結合部43Aは、Bank指定部41Aが“0”、上位指定部41Bが“2”の場合、Bank aの構成情報“C”の上位アドレス“2”を指定すると共に、下位指定部42Aの下位アドレス“000”を指定する。コンフィグレーション制御部40Aは、上位アドレス“2”と下位アドレス“000”とを結合して、アドレス“2000”を指定してBank aの構成情報“C”をメモリ20Aから読み出す。
【0054】
また、ビット結合部43Aは、例えば、Bank指定部41Aが“1”、上位指定部41Bが“0”の場合、Bank bの構成情報「A」の上位アドレス“3”を指定すると共に、下位指定部42Aの下位アドレス“000”を指定する。コンフィグレーション制御部40Aは、上位アドレス“3”と下位アドレス“000”とを結合して、アドレス“3000”を指定してBank bの構成情報“A”をメモリ20Aから読み出す。
【0055】
また、ビット結合部43Aは、例えば、Bank指定部41Aが“1”、上位指定部41Bが“1”の場合、Bank bの構成情報“B”の上位アドレス“4”を指定すると共に、下位指定部42Aの下位アドレス“000”を指定する。コンフィグレーション制御部40Aは、上位アドレス“4”と下位アドレス“000”とを結合して、アドレス“4000”を指定してBank bの構成情報“B”をメモリ20Aから読み出す。
【0056】
また、ビット結合部43Aは、例えば、Bank指定部41Aが“1”、上位指定部41Bが“2”の場合、Bank bの構成情報“C”の上位アドレス“5”を指定すると共に、下位指定部42Aの下位アドレス“000”を指定する。コンフィグレーション制御部40Aは、上位アドレス“5”と下位アドレス“000”とを結合して、アドレス“5000”を指定してBank bの構成情報“C”をメモリ20Aから読み出す。
【0057】
コンフィグレーション制御部40Aは、ビット結合部43Aからのアドレス信号に基づき、メモリ20Aから構成情報を読み出す。更に、コンフィグレーション制御部40Aは、生成部32から再コンフィグ信号を検出すると、読み出された指定の構成情報をFPGA3Aに設定するコンフィグ信号をFPGA3Aに出力する。FPGA3Aは、コンフィグ信号を検出すると、構成情報を設定する。
【0058】
つまり、コンフィグレーション制御部40Aは、Bank bの構成情報がメモリ20Aから読み出されると、Bank bの格納領域に構成情報が設定される。その結果、FPGA3Aは、FPGA3A内のBank aのメモリインタフェース12Aの代わりに、Bank bの新たなメモリインタフェース12Aを機能させる。
【0059】
次に実施例2の情報処理装置1Aの動作について説明する。図8は、コンフィグレーション制御処理に関わるFPGA3A及びコンフィグレーション制御部40Aの処理動作の一例を示すフローチャートである。図8においてコンフィグレーション制御部40Aは、情報処理装置1Aの電源起動時にメモリ20Aに格納された初期設定のBank aの構成情報“A”をFPGA3A内のBank aに設定する(ステップS31)。FPGA3Aは、通常運用時に、例えば、記憶部4に書き込んだデータを読み出す(ステップS32)。
【0060】
FPGA3Aのメモリコントローラ13Bのチェック部13Aは、記憶部4のチェック結果がOK状態であるか否かを判定する(ステップS33)。尚、チェック部13Aは、例えば、セットアップタイム及びホールドタイムの正常条件を満たしたか否かを判定し、正常条件を満たした場合はチェック結果をOK状態とし、正常条件を満たしていない場合はチェック結果をOK状態でない、NG状態とする。チェック部13Aは、チェック結果がOK状態の場合(ステップS33肯定)、記憶部4に書き込んだデータを読み出すべく、ステップS32に移行する。
【0061】
また、メモリコントローラ13Bの故障判定部13Cは、チェック結果がOK状態でない場合(ステップS33否定)、後述する図9の故障判定処理の判定結果に基づき、メモリインタフェース12Aが故障であるか否かを判定する(ステップS34)。故障判定部13Cは、メモリインタフェース12Aが故障でない場合(ステップS34否定)、選択部31Aに対して“H”レベルのメモリNG信号を出力する(ステップS35)。
【0062】
選択部31Aは、“H”レベルのメモリNG信号を検出すると、Bank aの構成情報の内、切替先の構成情報を選択する選択信号をコンフィグレーション制御部40Aに出力する(ステップS36)。尚、選択信号は、第1の選択信号“0”と、第2選択信号とを含む。更に、生成部32は、“H”レベルのメモリNG信号を検出すると、メモリNG信号のタイミングに基づき再コンフィグ信号をコンフィグレーション制御部40Aに出力する(ステップS37)。
【0063】
コンフィグレーション制御部40Aは、FPGA3Aに現在設定中のBank aの構成情報が“C”であるか否かを判定する(ステップS38)。コンフィグレーション制御部40Aは、FPGA3Aに現在設定中のBank aの構成情報が“C”でない場合(ステップS38否定)、再コンフィグ信号を検出すると、コンフィグ信号をFPGA3Aに出力する。そして、FPGA3Aは、コンフィグ信号を検出すると、Bank aの切替先の構成情報をFPGA3Aに再設定する(ステップS39)。尚、FPGA3A内のメモリコントローラ13Aは、情報処理装置1Aの電源起動時に初期設定のBank aの構成情報“A”を設定し、“H”レベルのメモリNG信号を検出する都度、Bank a内の構成情報“B”→構成情報“C”に切替え設定する。そして、FPGA3Aのメモリコントローラ13Bは、コンフィグ信号でBank aの構成情報が再設定されると、ステップS32に移行する。
【0064】
また、コンフィグレーション制御部40Aは、FPGA3Aに現在設定中のBank aの構成情報が“C”である場合(ステップS38肯定)、メモリ20A内の全ての構成情報が設定されてもチェック結果がNG状態と判定する。その結果、コンフィグレーション制御部40Aは、記憶部4の故障を外部通知する(ステップS40)。尚、情報処理装置1A側のユーザは、例えば、故障アラームの音響出力や点灯出力等の外部通知で記憶部4の故障を認識できる。更に、コンフィグレーション制御部40Aは、記憶部4の故障を外部通知すると、記憶部4の動作を停止し(ステップS41)、図8に示す処理動作を終了する。
【0065】
また、故障判定部13Cは、メモリインタフェース12Aが故障の場合(ステップS34肯定)、選択部31Aに対して“H”レベルのインタフェースNG信号を出力する(ステップS42)。コンフィグレーション制御部40Aは、選択部31Aの指示に応じて、Bank bの構成情報“A”をメモリ20Aから読み出す(ステップS43)。コンフィグレーション制御部40Aは、読み出されたBank bの構成情報“A”をFPGA3A内のBank bに設定する(ステップS44)。
【0066】
FPGA3Aは、例えば、記憶部4に書き込んだデータを読み出す(ステップS45)。チェック部13Aは、記憶部4のチェック結果がOK状態であるか否かを判定する(ステップS46)。チェック部13Aは、チェック結果がOK状態の場合(ステップS46肯定)、記憶部4に書き込んだデータを読み出すべく、ステップS45に移行する。
【0067】
また、チェック部13Aは、チェック結果がOK状態でない場合(ステップS46否定)、選択部31Aに対して“H”レベルのメモリNG信号を出力する(ステップS47)。選択部31Aは、“H”レベルのメモリNG信号を検出すると、Bank bの構成情報の内、切替先の構成情報を選択する選択信号をコンフィグレーション制御部40Aに出力する(ステップS48)。尚、選択信号は、第1の選択信号“1”と、第2の選択信号とを含む。更に、生成部32は、“H”レベルのメモリNG信号を検出すると、メモリNG信号のタイミングに基づき再コンフィグ信号をコンフィグレーション制御部40Aに出力する(ステップS49)。
【0068】
コンフィグレーション制御部40Aは、FPGA3Aに現在設定中のBank bの構成情報が“C”であるか否かを判定する(ステップS50)。コンフィグレーション制御部40Aは、FPGA3Aに現在設定中のBank bの構成情報が“C”でない場合(ステップS50否定)、再コンフィグ信号を検出すると、コンフィグ信号をFPGA3Aに出力する。そして、FPGA3Aは、コンフィグ信号を検出すると、Bank bの切替先の構成情報をFPGA3Aに再設定する(ステップS51)。尚、メモリコントローラ13Aは、メモリインタフェース12Aの故障判定時に設定のBank bの構成情報“A”を設定した場合、“H”レベルのメモリNG信号を検出する都度、Bank b内の構成情報“B”→構成情報“C”に切替え設定する。そして、FPGA3Aのメモリコントローラ13Bは、コンフィグ信号でBank bの構成情報が再設定されると、ステップS45に移行する。
【0069】
また、コンフィグレーション制御部40Aは、FPGA3Aに現在設定中のBank bの構成情報が“C”である場合(ステップS50肯定)、メモリ20A内の全ての構成情報が設定されてもチェック結果がNG状態と判定する。その結果、コンフィグレーション制御部40Aは、FPGA3Aの故障を外部通知すべく、ステップS40に移行する。
【0070】
図8に示すコンフィグレーション制御処理では、メモリインタフェース12Aが故障と判定されると、メモリ20Aに格納中のBank bの構成情報を読み出し、読み出された構成情報をFPGA3A内のBank bに設定する。FPGA3Aは、Bank bに新規のメモリインタフェース12Aを設定する。その結果、FPGA3Aは、FPGA3A内のBank aの故障のメモリインタフェース12AをFPGA3A内のBank bの新規のメモリインタフェース12Aに代用できる。
【0071】
コンフィグレーション制御処理では、メモリインタフェース12Aの故障判定後、Bank bの構成情報“A”を設定した後、“H”レベルのメモリNG信号を検出する都度、構成情報“B”→構成情報“C”の順に切替設定する。その結果、Bank bの構成情報を、構成情報“A”→構成情報“B”→構成情報“C”の順に提供できる。
【0072】
また、コンフィグレーション制御処理では、Bank bの構成情報“A”→構成情報“B”→構成情報“C”の各構成情報が切替設定されても、エラーが解消できない場合には、FPGA3Aの故障を外部通知する。その結果、情報処理装置1A側のユーザは、外部通知に基づきFPGA3Aの故障を認識できる。
【0073】
更に、コンフィグレーション制御処理では、Bank bの各構成情報が順次設定されても、メモリインタフェース12Aの故障が解消できなかった場合、記憶部4の動作を停止する。その結果、故障したメモリインタフェース12Aと接続する記憶部4の動作を自動停止できる。
【0074】
図9は、故障判定処理に関わる故障判定部13Cの処理動作の一例を示すフローチャートである。図9に示す故障判定処理は、FPGA3A内のメモリインタフェース12Aの故障を判定する処理である。
【0075】
図9において故障判定部13Cは、所定タイミングであるか否かを判定する(ステップS61)。尚、所定タイミングとは、例えば、チェック部13Aのチェック結果がOK状態でない、すなわちNG状態と判定されたタイミングである。故障判定部13Cは、所定タイミングの場合(ステップS61肯定)、メモリインタフェース12Aを低速モードに設定する(ステップS62)。尚、故障判定部13Cは、メモリインタフェース12A内のSEL63に対して運用モード設定部61から低速モード設定部62に切替選択し、メモリインタフェース12Aを低速モードに設定する。
【0076】
故障判定部13Cは、低速モードに設定した後、チェック部13Aを通じてチェック結果がOK状態であるか否かを判定する(ステップS63)。故障判定部13Cは、チェック結果がOK状態の場合(ステップS63肯定)、現在使用中のメモリインタフェース12Aが正常と判定する(ステップS64)。故障判定部13Cは、メモリインタフェース12Aが正常と判定されると、メモリインタフェース12Aを運用モードに設定し(ステップS65)、図9に示す処理動作を終了する。
【0077】
また、故障判定部13Cは、チェック結果がOK状態でない場合(ステップS63否定)、現在使用中のメモリインタフェース12A自体が故障と判定し(ステップS66)、メモリインタフェース12Aを運用モードに設定すべく、ステップS65に移行する。
【0078】
図9に示す故障判定処理では、記憶部4との通信速度を低速にしたにも関わらず、チェック結果がNG状態の場合、FPGA3A内のメモリインタフェース12A自体が故障と判定する。その結果、FPGA3Aの故障判定部13Cは、Bank内のメモリインタフェース12Aの故障を認識できる。
【0079】
また、故障判定処理では、記憶部4との通信速度を低速することでチェック結果がOK状態の場合、FPGA3A内のメモリインタフェース12Aが正常と判定する。その結果、FPGA3Aの故障判定部13Cは、Bank内のメモリインタフェース12Aの正常を認識できる。
【0080】
実施例2の情報処理装置1Aでは、FPGA3A内のBank aのメモリインタフェース12A自体が故障した場合、FPGA3A内のBank bにBank bの構成情報を設定することで新たなメモリインタフェース12Aを構成する。その結果、FPGA3Aは、Bank aの故障したメモリインタフェース12AをBank bのメモリインタフェース12Aに代用できるため、FPGA3Aの故障によるタイミングエラーを解消できる。
【0081】
実施例2の情報処理装置1Aでは、Bank毎に複数の構成情報を記憶しておく。そして、情報処理装置1Aは、他のBankの一の構成情報をFPGA3Aに設定した後、記憶部4のAC特性変化で“H”レベルのメモリNG信号を検出した場合、同一Bank内の他の構成情報に切替えて、切替えられた構成情報をFPGA3Aに設定する。その結果、FPGA3Aは、記憶部4のAC特性変化によるタイミングエラーが発生した場合でも、同一Bank内の構成情報を切替えて記憶部4のAC特性変化によるタイミングエラーを解消できる。
【0082】
尚、上記実施例2の故障判定処理では、ステップS61の所定タイミングとして、例えば、チェック部13Aによるチェック結果がNG状態と判定されたタイミングを例示したが、このタイミングに限定されるものではない。例えば、FPGA3Aが記憶部4とのアクセスが少なくなる時間帯等のタイミングとしても良い。
【0083】
また、上記実施例では、メモリ20(20A)内に記憶された構成情報を3種類の構成情報としたが、その数に限定されるものではない。また、構成情報は、例えば、FeRAM、MRAM、PRAM、ReRAM、DRAMやSRAM等のメモリ装置に記憶しても良い。
【0084】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0085】
更に、各装置で行われる各種処理機能は、CPU(Central Processing Unit)(又はMPU(Micro Processing Unit)、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、CPU(又はMPU、MCU等のマイクロ・コンピュータ)で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
【0086】
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することによって実現できる。そこで、以下では、図10を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図10は、記憶制御プログラムを実行するコンピュータを示す説明図である。
【0087】
図10に示すように、記憶制御プログラムとしてのコンピュータ100では、HDD(Hard Disk Drive)110、RAM(Random Access Memory)120、ROM(Read Only Memory)130及びCPU140がバス150を介して接続される。更に、コンピュータ100は、記憶部170をアクセス制御するFPGA160をバス150で接続される。
【0088】
そして、ROM130若しくはHDD110には、上記の実施例と同様の機能を発揮する記憶制御プログラムが予め記憶されている。尚、ROM130及びHDD110ではなく、図示せぬドライブでコンピュータ読取可能な記録媒体に記憶制御プログラムが記録されていても良い。また、記録媒体としては、例えば、CD−ROM、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。記憶制御プログラムとしては、図10に示すように、設定プログラム131である。尚、設定プログラム131は、図1に示した記憶制御部5の各構成要素と同様、適宜統合又は分散してもよい。
【0089】
そして、CPU140が、設定プログラム131をROM130から読み出して実行する。そして、設定プログラム131は、設定プロセス141として機能する。
【0090】
CPU140は、記憶部170をアクセス制御するFPGA160に関わる、記憶部170のアクセス制御の特性に対応した、複数の構成情報を記憶するRAM120から構成情報をFPGA160に設定する。更に、CPU140は、RAM120に記憶中の一の構成情報をFPGA160に設定した後、記憶部170のタイミングエラーを検出すると、RAM120に記憶中の異なる構成情報に切替えて、切替えられた構成情報をFPGA160に設定する。その結果、FPGA160は、記憶部170の特性変化によるタイミングエラーが発生した場合でも、構成情報を切替えて記憶部170の特性変化によるタイミングエラーを解消できる。
【0091】
以上、本実施例を含む実施の形態に関し、更に以下の付記を開示する。
【0092】
(付記1)複数のバンクを備え、設定された構成情報に基づき、前記バンク内に回路を構成する制御部と、
前記バンクに対応した前記構成情報を記憶する構成記憶部と、
前記構成記憶部から前記構成情報を読み出し、読み出された構成情報に関わるバンク内に当該構成情報を設定する設定部と、
前記設定部によって設定された前記構成情報に基づき当該バンク内に構成された、記憶部と接続する回路と当該記憶部との間のタイミング調整のエラーを検出した場合に、前記回路の故障と判定する故障判定部と
を有することを特徴とする記憶制御装置。
【0093】
(付記2)前記設定部は、
前記故障判定部によって前記回路の故障と判定された場合に、前記制御部内の他のバンクに、前記記憶部と接続する回路を構成する前記構成情報を設定し、
前記制御部は、
前記設定部によって設定された前記構成情報に基づき、当該バンク内に当該回路を構成することを特徴とする付記1に記載の記憶制御装置。
【0094】
(付記3)前記設定部は、
前記故障判定部によって前記回路の故障と判定された場合に、前記制御部内の未使用のバンクに、前記記憶部と接続する回路を構成する前記構成情報を設定し、
前記制御部は、
前記設定部によって設定された前記構成情報に基づき、当該未使用のバンク内に当該回路を構成することを特徴とする付記1に記載の記憶制御装置。
【0095】
(付記4)前記故障判定部は、
前記回路と前記記憶部との間の通信速度を運用速度から低速化して前記タイミング調整のエラーを検出したか否かを判定し、前記タイミング調整のエラーを検出した場合に、前記回路の故障と判定すると共に、
前記通信速度を低速化して前記タイミング調整のエラーを検出しなかった場合に、前記回路の正常と判定する
ことを特徴とする付記1〜3の何れか一つに記載の記憶制御装置。
【0096】
(付記5)複数のバンクを備え、設定された構成情報に基づき、前記バンク内に回路を構成する制御部と、前記バンクに対応した前記構成情報を記憶する構成記憶部と、前記構成記憶部から前記構成情報を読み出し、読み出された構成情報に関わるバンク内に当該構成情報を設定する設定部とを有する記憶制御装置の記憶制御方法であって、
前記記憶制御装置は、
前記設定部によって設定された前記構成情報に基づき当該バンク内に構成された、記憶部と接続する回路と当該記憶部との間のタイミング調整のエラーを検出した場合に、前記回路の故障と判定する
ことを特徴とする記憶制御方法。
【符号の説明】
【0097】
1,1A 情報処理装置
3,3A FPGA
4 記憶部
5,5A 記憶制御部
13,13B メモリコントローラ
13A チェック部
13C 故障判定部
20,20A メモリ
30,30A 指示部
31,31A 選択部
32 生成部
40,40A コンフィグレーション制御部
【特許請求の範囲】
【請求項1】
記憶部をアクセス制御する制御部に関わる、前記記憶部のアクセス制御の特性に対応した、複数の構成情報を記憶する構成記憶部と、
前記構成情報を前記制御部に設定する設定部と
を有し、
前記設定部は、
前記構成記憶部に記憶中の一の構成情報を前記制御部に設定した後、前記記憶部の制御エラーを検出すると、前記構成記憶部に記憶中の異なる構成情報に切替えて、切替えられた構成情報を前記制御部に設定する
ことを特徴とする記憶制御装置。
【請求項2】
前記設定部にて前記構成記憶部に記憶中の異なる構成情報を切替設定した後、切替設定された構成情報毎に前記記憶部の前記制御エラーを検出した場合、前記記憶部の動作を停止する停止部を有することを特徴とする請求項1に記載の記憶制御装置。
【請求項3】
前記記憶部の電源停止直前に設定中の前記構成情報を記憶するバックアップ記憶部を有し、
前記設定部は、
前記電源の起動を検出した場合、前記バックアップ記憶部に記憶中の前記構成情報を前記制御部に設定することを特徴とする請求項1又は2に記載の記憶制御装置。
【請求項4】
前記構成情報は、
前記制御部が前記記憶部のセットアップタイムを調整する情報であって、
前記設定部は、
異なる構成情報を切替設定することで、前記制御部の前記セットアップタイムを調整して前記記憶部へのデータ書込みタイミングを調整することを特徴とする請求項1又は2に記載の記憶制御装置。
【請求項5】
前記構成情報は、
前記制御部が前記記憶部に記憶されたデータを外部出力する制御信号の出力タイミングを調整する情報であって、
前記設定部は、
異なる構成情報を切替設定することで、前記制御部が前記出力タイミングを調整して、前記記憶部からのデータ出力タイミングを調整することを特徴とする請求項1又は2に記載の記憶制御装置。
【請求項6】
前記構成情報は、
前記制御部が前記記憶部のアクセス制御のタイミング調整に使用するクロック位相を調整する情報であって、
前記設定部は、
異なる構成情報を切替設定することで、前記制御部が前記クロック位相を調整して、前記記憶部のアクセス制御のタイミングを調整することを特徴とする請求項1又は2に記載の記憶制御装置。
【請求項7】
記憶部をアクセス制御する制御部に構成情報を設定する記憶制御装置の記憶制御方法であって、
前記記憶制御装置は、
前記制御部に関わる、前記記憶部のアクセス制御の特性に対応した、複数の構成情報を記憶した構成記憶部から前記構成情報を前記制御部に設定し、前記構成記憶部に記憶中の一の構成情報を前記制御部に設定した後、前記記憶部の制御エラーを検出すると、前記構成記憶部に記憶中の異なる構成情報に切替えて、切替えられた構成情報を前記制御部に設定する
ことを特徴とする記憶制御方法。
【請求項8】
コンピュータに、
記憶部をアクセス制御する制御部に関わる、前記記憶部のアクセス制御の特性に対応した、複数の構成情報を記憶する構成記憶部から前記構成情報を前記制御部に設定し、前記構成記憶部に記憶中の一の構成情報を前記制御部に設定した後、前記記憶部の制御エラーを検出すると、前記構成記憶部に記憶中の異なる構成情報に切替えて、切替えられた構成情報を前記制御部に設定する
各処理を実行させることを特徴とする記憶制御プログラム。
【請求項1】
記憶部をアクセス制御する制御部に関わる、前記記憶部のアクセス制御の特性に対応した、複数の構成情報を記憶する構成記憶部と、
前記構成情報を前記制御部に設定する設定部と
を有し、
前記設定部は、
前記構成記憶部に記憶中の一の構成情報を前記制御部に設定した後、前記記憶部の制御エラーを検出すると、前記構成記憶部に記憶中の異なる構成情報に切替えて、切替えられた構成情報を前記制御部に設定する
ことを特徴とする記憶制御装置。
【請求項2】
前記設定部にて前記構成記憶部に記憶中の異なる構成情報を切替設定した後、切替設定された構成情報毎に前記記憶部の前記制御エラーを検出した場合、前記記憶部の動作を停止する停止部を有することを特徴とする請求項1に記載の記憶制御装置。
【請求項3】
前記記憶部の電源停止直前に設定中の前記構成情報を記憶するバックアップ記憶部を有し、
前記設定部は、
前記電源の起動を検出した場合、前記バックアップ記憶部に記憶中の前記構成情報を前記制御部に設定することを特徴とする請求項1又は2に記載の記憶制御装置。
【請求項4】
前記構成情報は、
前記制御部が前記記憶部のセットアップタイムを調整する情報であって、
前記設定部は、
異なる構成情報を切替設定することで、前記制御部の前記セットアップタイムを調整して前記記憶部へのデータ書込みタイミングを調整することを特徴とする請求項1又は2に記載の記憶制御装置。
【請求項5】
前記構成情報は、
前記制御部が前記記憶部に記憶されたデータを外部出力する制御信号の出力タイミングを調整する情報であって、
前記設定部は、
異なる構成情報を切替設定することで、前記制御部が前記出力タイミングを調整して、前記記憶部からのデータ出力タイミングを調整することを特徴とする請求項1又は2に記載の記憶制御装置。
【請求項6】
前記構成情報は、
前記制御部が前記記憶部のアクセス制御のタイミング調整に使用するクロック位相を調整する情報であって、
前記設定部は、
異なる構成情報を切替設定することで、前記制御部が前記クロック位相を調整して、前記記憶部のアクセス制御のタイミングを調整することを特徴とする請求項1又は2に記載の記憶制御装置。
【請求項7】
記憶部をアクセス制御する制御部に構成情報を設定する記憶制御装置の記憶制御方法であって、
前記記憶制御装置は、
前記制御部に関わる、前記記憶部のアクセス制御の特性に対応した、複数の構成情報を記憶した構成記憶部から前記構成情報を前記制御部に設定し、前記構成記憶部に記憶中の一の構成情報を前記制御部に設定した後、前記記憶部の制御エラーを検出すると、前記構成記憶部に記憶中の異なる構成情報に切替えて、切替えられた構成情報を前記制御部に設定する
ことを特徴とする記憶制御方法。
【請求項8】
コンピュータに、
記憶部をアクセス制御する制御部に関わる、前記記憶部のアクセス制御の特性に対応した、複数の構成情報を記憶する構成記憶部から前記構成情報を前記制御部に設定し、前記構成記憶部に記憶中の一の構成情報を前記制御部に設定した後、前記記憶部の制御エラーを検出すると、前記構成記憶部に記憶中の異なる構成情報に切替えて、切替えられた構成情報を前記制御部に設定する
各処理を実行させることを特徴とする記憶制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−216188(P2012−216188A)
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願番号】特願2012−35360(P2012−35360)
【出願日】平成24年2月21日(2012.2.21)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願日】平成24年2月21日(2012.2.21)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]