(57)【要約】【課題】フラッシュメモリを搭載した情報処理装置において、フラッシュメモリの置き換えに伴う工数を削減すること。【解決手段】情報処理装置１は、フラッシュメモリ２、記憶部３および制御部４を備えている。記憶部３は、搭載されているフラッシュメモリ２を含む複数のフラッシュメモリのそれぞれについて、フラッシュメモリに関する情報５，６を格納する。制御部４は、記憶部３に格納されている、フラッシュメモリに関する情報５，６のうちの、搭載されているフラッシュメモリ２に関する情報５に基づいて、搭載されているフラッシュメモリ２に対するアクセスの制御を行う。【選択図】図１
2011108161.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリを搭載する情報処理装置において、
搭載されているフラッシュメモリを含む複数のフラッシュメモリのそれぞれについて、フラッシュメモリに関する情報を格納する記憶部と、
該記憶部に格納されている情報のうちの該搭載されているフラッシュメモリに関する情報に基づいて、該搭載されているフラッシュメモリに対するアクセスの制御を行う制御部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記フラッシュメモリに関する情報は、フラッシュメモリのセクタに関する情報およびフラッシュメモリを制御するコマンドに関する情報を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、前記フラッシュメモリのセクタに関する情報および前記フラッシュメモリを制御するコマンドに関する情報に基づいて、前記搭載されているフラッシュメモリに対するデータの消去動作、書込み動作および読出し動作を制御することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
フラッシュメモリへのアクセスを制御する情報を格納する格納部と、
装置の起動時に、前記搭載されているフラッシュメモリに関する情報を前記記憶部から取得し、該取得した情報に含まれるフラッシュメモリのセクタに関する情報およびフラッシュメモリを制御するコマンドに関する情報を該格納部に格納する取得部と、
を備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記記憶部は、前記フラッシュメモリに関する情報を格納する書き換え可能な不揮発性メモリを備えることを特徴とする請求項４に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置に関する。
【背景技術】
【０００２】
従来、フラッシュメモリを備えた情報処理装置として、記録媒体側にフラッシュメモリの書換えに必要なプログラム（書換データへのポインタ、フラッシュメモリの各セクタ構成情報、データの書換範囲の指示データ）、書換データおよび書換操作時に書換不要データを含むセクタデータのバックアップ用領域を用意した装置が知られている。この情報処理装置は、書換処理の際、セクタ単位でセクタの消去を行う時に、記録媒体で書換不要データをバックアップし、電源ＯＦＦがあっても中断後に記録媒体からのデータにより復帰処理を行う（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３０８２５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の情報処理装置では、次のような問題点がある。例えば、フラッシュメモリの製造終了などの原因によって、フラッシュメモリを製造メーカや仕様の異なる別のフラッシュメモリに置き換えることがある。その場合、元のフラッシュメモリと代替のフラッシュメモリとで、内部のセクタ構成やフラッシュメモリへのアクセスコマンドなどのアーキテクチャが異なることがある。アーキテクチャが異なる場合、フラッシュメモリを制御するソフトウェアを代替のフラッシュメモリに対応したものに更新する必要があるため、その代替のフラッシュメモリを制御するソフトウェアの開発、試験および更新作業に膨大な工数がかかる、という問題点がある。
【０００５】
フラッシュメモリの置き換えに伴う工数を削減することができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この情報処理装置は、フラッシュメモリ、記憶部および制御部を備えている。記憶部は、搭載されているフラッシュメモリを含む複数のフラッシュメモリのそれぞれについて、フラッシュメモリに関する情報を格納する。制御部は、記憶部に格納されている、フラッシュメモリに関する情報のうちの、搭載されているフラッシュメモリに関する情報に基づいて、搭載されているフラッシュメモリに対するアクセスの制御を行う。
【発明の効果】
【０００７】
この情報処理装置によれば、フラッシュメモリの置き換えに伴う工数を削減することができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】実施例１にかかる情報処理装置を示すブロック図である。
【図２】実施例２にかかる情報処理装置の要部を示すブロック図である。
【図３】実施例２にかかる情報処理装置の詳細を示すブロック図である。
【図４】フラッシュメモリのセクタ構成の一例を示す図である。
【図５】フラッシュメモリを制御するコマンドの一例を示す図である。
【図６】実施例２にかかるフラッシュメモリ情報記憶部の格納情報の一例を示す図である。
【図７】実施例２にかかる情報処理装置の処理手順を示すシーケンス図である。
【図８】実施例２にかかる情報処理装置の処理手順を示すシーケンス図である。
【図９】実施例２にかかる情報処理装置の動作を示すフローチャートである。
【図１０】実施例２にかかる情報処理装置の動作を示すフローチャートである。
【図１１】実施例２にかかる情報処理装置の動作を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、この情報処理装置の好適な実施の形態を詳細に説明する。情報処理装置は、搭載しているフラッシュメモリを含む複数のフラッシュメモリについて、フラッシュメモリに関する情報を備えている。情報処理装置は、複数のフラッシュメモリに関する情報のうち、搭載しているフラッシュメモリに関する情報に基づいて、フラッシュメモリに対するアクセスを制御する。
【００１０】
（実施例１）
図１は、実施例１にかかる情報処理装置を示すブロック図である。図１に示すように、情報処理装置１は、フラッシュメモリ２、記憶部３および制御部４を備えている。記憶部３は、搭載されているフラッシュメモリ２を含む複数のフラッシュメモリのそれぞれについて、フラッシュメモリに関する情報５，６を格納する。制御部４は、記憶部３に格納されている、フラッシュメモリに関する情報５，６のうちの、搭載されているフラッシュメモリ２に関する情報５に基づいて、搭載されているフラッシュメモリ２に対するアクセスの制御を行う。なお、図１に示す例では、記憶部３にフラッシュメモリに関する情報が二つ示されているが、三つ以上のフラッシュメモリに関する情報が記憶部３に格納されていてもよい。
【００１１】
実施例１によれば、複数のフラッシュメモリに関する情報５，６が記憶部３に格納されているので、搭載されているフラッシュメモリ２を、記憶部３に情報が格納されているフラッシュメモリに置き換えることができる。その場合に、制御部４は、新たに搭載されたフラッシュメモリに対応する情報を記憶部３から取得することができる。従って、新たに搭載されたフラッシュメモリを制御するソフトウェアを開発したり、試験したり、更新する作業が不要となるので、フラッシュメモリの置き換えに伴う工数を削減することができる。
【００１２】
（実施例２）
実施例１にかかる情報処理装置の一例として、例えばプログラム可能なデバイスを備えた装置が挙げられる。実施例２では、プログラム可能なデバイスを備えた情報処理装置について説明する。
【００１３】
・情報処理装置の説明
図２は、実施例２にかかる情報処理装置の要部を示すブロック図である。図２に示すように、情報処理装置１１は、フラッシュメモリ１２、記憶部１３および制御部１４を備えている。記憶部１３は、書き換え可能な不揮発性メモリを備えている。書き換え可能な不揮発性メモリの一例として、例えばＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ、電気的消去およびプログラム可能な読み出し専用メモリ）が挙げられる。記憶部１３の書き換え可能な不揮発性メモリは、搭載されているフラッシュメモリ１２を含む複数のフラッシュメモリのそれぞれについて、フラッシュメモリに関する情報１５，１６を格納している。また、情報処理装置１１は、取得部１７、格納部１８、プログラム可能なデバイス１９およびＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、マイクロプロセッサ）２０を備えている。
【００１４】
フラッシュメモリ１２には、プログラム可能なデバイス１９の論理仕様を定義する情報としてコンフィグデータ２１が格納されている。フラッシュメモリ１２には、情報処理装置１１の起動時に実行されるイニシャルプログラムローダ２２が格納されている。取得部１７は、記憶部１３から、搭載されているフラッシュメモリ１２に関する情報１５を取得する。取得部１７は、記憶部１３から取得した情報に含まれる、フラッシュメモリのセクタに関する情報２３およびフラッシュメモリを制御するコマンドに関する情報２４を展開し、格納部１８に格納する。格納部１８は、フラッシュメモリ１２へのアクセスを制御する情報として、フラッシュメモリのセクタに関する情報２３およびフラッシュメモリを制御するコマンドに関する情報２４を格納する。
【００１５】
制御部１４は、格納部１８に格納されている、フラッシュメモリのセクタに関する情報２３およびフラッシュメモリを制御するコマンドに関する情報２４に基づいて、フラッシュメモリ１２へのアクセスを制御する。制御部１４は、フラッシュメモリ１２からコンフィグデータ２１を読み出し、コンフィグデータ２１に基づいて、プログラム可能なデバイス１９を設定する（コンフィギュレーション）。制御部１４は、ＭＰＵ２０からのローディング指示に基づいて、フラッシュメモリ１２にアクセスする。制御部１４は、フラッシュメモリ１２からイニシャルプログラムローダ２２を読み出し、ＭＰＵ２０にイニシャルプログラムローダ２２をローディングする。
【００１６】
ＭＰＵ２０は、制御部１４にイニシャルプログラムローダ２２のローディングを指示する。ＭＰＵ２０は、ソフトウェア２５を実行する。ＭＰＵ２０には、図示しない端末が接続されている。該端末からの指示によって、記憶部１３に対して、フラッシュメモリに関する情報１５，１６の読出しもしくは消去、またはフラッシュメモリに関する情報の書込みを行うことができるようになっている。
【００１７】
図３は、実施例２にかかる情報処理装置の詳細を示すブロック図である。図３に示すように、図示例では、図２のプログラム可能なデバイス１９の一例として、例えばＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、フィールドプログラマブルゲートアレイ）３１が用いられている。図２の制御部１４として、フラッシュアクセス制御部３２およびコンフィグ制御部３３が設けられている。図２の取得部１７として、初期ロード制御部３４が設けられている。図２の格納部１８として、セクタ構成テーブル３５およびコマンドテーブル３６が設けられている。また、アドレスデコード部３７、記憶部インタフェース部３８、フラッシュインタフェース部３９が設けられている。図２の記憶部１３として、フラッシュメモリ情報記憶部４０が設けられている。フラッシュアクセス制御部３２、コンフィグ制御部３３、初期ロード制御部３４、セクタ構成テーブル３５、コマンドテーブル３６、アドレスデコード部３７、記憶部インタフェース部３８およびフラッシュインタフェース部３９は、例えば一枚のボードにフラッシュメモリ制御用ハードウェア４１として設けられている。フラッシュメモリ制御用ハードウェア４１は、例えばプログラマブルロジックデバイス(ＰＬＤ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ)を備えている。ＭＰＵ２０には、例えばイーサポート４２を介して端末４３が接続されている。
【００１８】
フラッシュメモリ情報記憶部４０の書き換え可能な不揮発性メモリには、複数のフラッシュメモリに関する情報が格納されている。初期ロード制御部３４は、フラッシュメモリ情報記憶部４０から、搭載されているフラッシュメモリ１２に関する情報を取得する。初期ロード制御部３４は、フラッシュメモリ情報記憶部４０から取得した情報をセクタ構成テーブル３５およびコマンドテーブル３６に格納する。セクタ構成テーブル３５には、搭載されているフラッシュメモリ１２のセクタに関する情報が格納される。コマンドテーブル３６には、搭載されているフラッシュメモリ１２を制御するコマンドに関する情報が格納される。
【００１９】
フラッシュアクセス制御部３２は、セクタ構成テーブル３５に格納されている情報およびコマンドテーブル３６に格納されている情報に基づいて、フラッシュメモリ１２へのアクセスを制御する。フラッシュアクセス制御部３２は、フラッシュメモリ１２からＦＰＧＡ３１のコンフィグデータを読み出す。フラッシュアクセス制御部３２は、ＭＰＵ２０からのローディング指示に基づいて、フラッシュメモリ１２にアクセスする。フラッシュアクセス制御部３２は、フラッシュインタフェース部３９を介してフラッシュメモリ１２からイニシャルプログラムローダを読み出し、ＭＰＵ２０にイニシャルプログラムローダ２２をローディングする。コンフィグ制御部３３は、コンフィグデータに基づいて、ＦＰＧＡ３１を設定する。
【００２０】
アドレスデコード部３７は、アドレスデータをデコードする。記憶部インタフェース部３８は、フラッシュメモリ制御用ハードウェア４１とフラッシュメモリ情報記憶部４０とを接続するインタフェースである。フラッシュインタフェース部３９は、フラッシュメモリ制御用ハードウェア４１とフラッシュメモリ１２とを接続するインタフェースである。なお、フラッシュメモリ１２およびＭＰＵ２０については、図２を参照しながら説明したとおりである。
【００２１】
・フラッシュメモリのセクタ構成の一例
図４は、フラッシュメモリのセクタ構成の一例を示す図である。図４に示す図表５１のように、メーカや型番などによってフラッシュメモリのセクタ構成が異なることがある。図４に示す例では、Ａ社製のフラッシュメモリ、Ｂ社製のフラッシュメモリおよびＣ社製のフラッシュメモリは、いずれも例えば８．１９２Ｍバイトの容量を有するが、内部のセクタごとの容量が異なっている。例えば、Ａ社製のフラッシュメモリでは、セクタ番号が０から７まで、およびセクタ番号が１３４から１４１までの各セクタの容量は８Ｋバイトであり、セクタ番号が８から１３３までの各セクタの容量は６４Ｋバイトである。Ｂ社製のフラッシュメモリでは、セクタ番号が０から７までの各セクタの容量は８Ｋバイトであり、セクタ番号が８から１３４までの各セクタの容量は６４Ｋバイトである。Ｃ社製のフラッシュメモリでは、セクタ番号が０から１２７までの各セクタの容量は６４Ｋバイトである。
【００２２】
・フラッシュメモリを制御するコマンドの一例
図５は、フラッシュメモリを制御するコマンドの一例を示す図である。図５に示す図表５２のように、メーカや型番などによってフラッシュメモリを制御するコマンドが異なることがある。例えば、Ａ社製のフラッシュメモリに対してセクタを消去する際には、セクタ消去コマンドとして、アドレスＡＡＡでデータＡＡ、アドレス５５５でデータ５５、アドレスＡＡＡでデータ８０、アドレスＡＡＡでデータＡＡ、アドレス５５５でデータ５５、アドレスＳＡでデータ３０の順でコマンドが発行される。ＳＡは、セクタの先頭アドレスを表す。それに対して、例えば、Ｂ社製のフラッシュメモリに対してセクタを消去する際には、セクタの消去コマンドとして、アドレス５５５でデータＡＡ、アドレスＢＢＢでデータ５５、アドレス５５５でデータ８０、アドレス５５５でデータＡＡ、アドレスＢＢＢでデータ５５、アドレスＳＡでデータ３０の順でコマンドが発行される。Ｃ社製のフラッシュメモリに対するセクタ消去コマンド、各社製のフラッシュメモリに対するデータの書込コマンドおよび他モードからリードモードへ移行する際のコマンド（リードモード復帰コマンド）については、説明を省略する（図５を参照）。
【００２３】
・フラッシュメモリ情報記憶部に格納されている情報の一例
図６は、フラッシュメモリ情報記憶部に格納されている情報の一例を示す図である。図６に示すように、格納情報５３は、基本情報として、製造メーカＩＤおよびデバイスＩＤを有する。製造メーカＩＤおよびデバイスＩＤによって、フラッシュメモリの製造メーカおよびデバイスの型番などを識別することができる。図示例では、格納情報５３は、基本情報に続いて、セクタの容量と同一容量のセクタの連続数の情報を有する。図示例は、Ａ社製フラッシュメモリに関する情報であり、セクタ構成情報として、８Ｋバイトの容量のセクタが８個連続し、６４Ｋバイトの容量のセクタが１２６個連続し、再び８Ｋバイトの容量のセクタが８個連続していることを表している。
【００２４】
セクタ構成情報に続いて、例えば、消去コマンド、書込コマンドおよびリードモード復帰コマンドの順に図５に示すコマンドが格納されている。なお、消去コマンド、書込コマンドおよびリードモード復帰コマンドの格納順序は、別の順序でもよい。消去コマンドの直前には、消去コマンドの開始を示す情報境界識別子が挿入されている。例えば、消去コマンドの開始を示す情報境界識別子として０ｘＥＥＥ１が挿入されている。書込コマンドの直前には、書込コマンドの開始を示す情報境界識別子が挿入されている。例えば、書込コマンドの開始を示す情報境界識別子として０ｘＥＥＥ２が挿入されている。リードモード復帰コマンドの直前には、リードモード復帰コマンドの開始を示す情報境界識別子が挿入されている。例えば、リードモード復帰コマンドの開始を示す情報境界識別子として０ｘＥＥＥ３が挿入されている。
【００２５】
一フラッシュメモリに関する情報の終わりには、一フラッシュメモリに関する情報の終わりを示す情報境界識別子が挿入されている。例えば、一フラッシュメモリに関する情報の終わりを示す情報境界識別子としてＥＮＤが挿入されている。なお、各情報境界識別子は、上述した例に限らない。また、図示例では、製造メーカやデバイスのＩＤ、各コマンドのアドレスおよびデータ、並びに各情報境界識別子は、例えば１６ビット幅の領域に格納されているが、その他のビット幅でもよい。さらに、格納情報５３の構成は、図６に示す構成に限らない。
【００２６】
・情報処理装置の動作
図３を参照しながら、情報処理装置１１の動作を説明する。まず、電源投入直後の動作を説明する。情報処理装置１１の電源が投入されると、初期ロード制御部３４は、記憶部インタフェース部３８に対してアドレス信号ａ１、セレクト信号ｓ１およびリード信号ｒ１をアサートする。記憶部インタフェース部３８は、アドレス信号ａ１、セレクト信号ｓ１およびリード信号ｒ１のアサートを受けて、初期ロード制御部３４がフラッシュメモリ情報記憶部４０からデータを読み出すことを認識する。そして、記憶部インタフェース部３８は、フラッシュメモリ情報記憶部４０に対してアドレス信号ａ２、セレクト信号ｓ２およびリード信号ｒ２をアサートする。
【００２７】
記憶部インタフェース部３８は、データ信号線ｄ２を介してフラッシュメモリ情報記憶部４０から、搭載されているフラッシュメモリ１２のセクタ構成に関する情報を取得する。初期ロード制御部３４がセクタ構成テーブル３５に対してアドレス信号ａ３およびライト信号ｗ３をアサートすることによって、搭載されているフラッシュメモリ１２のセクタ構成に関する情報は、データバスｄ１を介してセクタ構成テーブル３５に格納される。
【００２８】
同様にして、記憶部インタフェース部３８は、フラッシュメモリ情報記憶部４０から、搭載されているフラッシュメモリ１２を制御するコマンドに関する情報を取得する。初期ロード制御部３４がコマンドテーブル３６に対してアドレス信号ａ４およびライト信号ｗ４をアサートすることによって、搭載されているフラッシュメモリ１２を制御するコマンドに関する情報は、データバスｄ１を介してコマンドテーブル３６に格納される。
【００２９】
次いで、フラッシュアクセス制御部３２は、セクタ構成テーブル３５に対してアドレス信号ａ３およびリード信号ｒ３をアサートする。それによって、フラッシュアクセス制御部３２は、データバスｄ１を介してセクタ構成テーブル３５からフラッシュメモリ１２のセクタ構成に関する情報を取得する。また、フラッシュアクセス制御部３２は、コマンドテーブル３６に対してアドレス信号ａ４およびリード信号ｒ４をアサートする。それによって、フラッシュアクセス制御部３２は、データバスｄ１を介してコマンドテーブル３６からフラッシュメモリ１２を制御するコマンドに関する情報を取得する。
【００３０】
次いで、フラッシュアクセス制御部３２は、フラッシュメモリ１２に対してアドレス信号ａ５をアサートする。また、フラッシュアクセス制御部３２は、フラッシュインタフェース部３９に対してリード信号ｒ６をアサートする。フラッシュインタフェース部３９は、リード信号ｒ６のアサートを受けて、フラッシュメモリ１２に対してセレクト信号ｓ５およびリード信号ｒ５をアサートする。それによって、フラッシュアクセス制御部３２は、データバスｄ５を介してフラッシュメモリ１２からＦＰＧＡ３１のコンフィグデータを取得する。
【００３１】
フラッシュアクセス制御部３２は、ＦＰＧＡ３１のコンフィグデータをデータバスｄ７に渡す。また、フラッシュアクセス制御部３２は、コンフィグ制御部３３に対してコンフィグ制御信号ｃ１をアサートする。コンフィグ制御部３３は、コンフィグ制御信号ｃ１のアサートを受けて、ＦＰＧＡ３１に対してコンフィグ制御信号ｃ２をアサートする。それによって、ＦＰＧＡ３１のコンフィグデータは、データバスｄ７からＦＰＧＡ３１に渡される。そして、ＦＰＧＡ３１は、コンフィグデータに基づいて設定される。
【００３２】
次いで、ＭＰＵ２０（ソフトウェア２５）は、アドレスデコード部３７に対してアドレス信号ａ８およびリード信号ｒ８をアサートする。アドレスデコード部３７は、アドレス信号ａ８およびリード信号ｒ８のアサートを受けて、フラッシュアクセス制御部３２に対してアドレス信号ａ７、セレクト信号ｓ７およびリード信号ｒ７をアサートする。フラッシュメモリ１２からＦＰＧＡ３１のコンフィグデータを取得したときと同様にして、フラッシュアクセス制御部３２は、データバスｄ５を介してフラッシュメモリ１２からイニシャルプログラムローダを取得する。イニシャルプログラムローダは、フラッシュアクセス制御部３２とアドレスデコード部３７との間のデータバスｄ７を介して、アドレスデコード部３７とＭＰＵ２０との間のデータバスｄ８に渡される。それによって、ＭＰＵ２０において、イニシャルプログラムローダのローディング動作が完了する。
【００３３】
次に、ＦＰＧＡ３１のコンフィグデータを更新する動作を説明する。ＦＰＧＡ３１のコンフィグデータを更新する際には、ＭＰＵ２０は、アドレスデコード部３７に対してアドレス信号ａ８およびライト信号ｗ８をアサートし、データバスｄ８を介してアドレスデコード部３７に新しいコンフィグデータを渡す。アドレスデコード部３７は、アドレス信号ａ８およびライト信号ｗ８のアサートを受けて、フラッシュアクセス制御部３２に対してアドレス信号ａ７およびライト信号ｗ７をアサートする。また、アドレスデコード部３７は、データバスｄ７を介してフラッシュアクセス制御部３２に新しいコンフィグデータを渡す。
【００３４】
フラッシュアクセス制御部３２は、フラッシュメモリ１２に対してアドレス信号ａ５をアサートし、データバスｄ５を介してフラッシュメモリ１２に新しいコンフィグデータを渡す。また、フラッシュアクセス制御部３２は、フラッシュインタフェース部３９に対してライト信号ｗ６をアサートする。フラッシュインタフェース部３９は、ライト信号ｗ６のアサートを受けて、フラッシュメモリ１２に対してセレクト信号ｓ５およびライト信号ｗ５をアサートする。それによって、フラッシュメモリ１２に新しいコンフィグデータが書き込まれる。
【００３５】
次に、端末４３を操作してフラッシュメモリ情報記憶部４０にフラッシュメモリに関する情報を書き込む動作を説明する。フラッシュメモリ情報記憶部４０にフラッシュメモリに関する情報を書き込む際には、まず、ＭＰＵ２０は、アドレスデコード部３７に対してアドレス信号ａ８およびライト信号ｗ８をアサートし、データバスｄ８を介してアドレスデコード部３７に書込対象のフラッシュメモリに関する情報を渡す。アドレスデコード部３７は、アドレス信号ａ８およびライト信号ｗ８のアサートを受けて、フラッシュメモリ情報記憶部４０への書込み指示であることを認識する。
【００３６】
そして、アドレスデコード部３７は、記憶部インタフェース部３８に対してアドレス信号ａ９、セレクト信号ｓ９およびライト信号ｗ９をアサートし、データバスｄ７を介して記憶部インタフェース部３８にフラッシュメモリに関する情報を渡す。記憶部インタフェース部３８は、アドレス信号ａ９、セレクト信号ｓ９およびライト信号ｗ９のアサートを受けて、フラッシュメモリ情報記憶部４０に対してアドレス信号ａ２、セレクト信号ｓ２およびライト信号ｗ２をアサートする。また、記憶部インタフェース部３８は、データ信号線ｄ２を介してフラッシュメモリ情報記憶部４０にフラッシュメモリに関する情報を渡す。それによって、フラッシュメモリ情報記憶部４０にフラッシュメモリに関する情報が書き込まれる。
【００３７】
次に、端末４３を操作してフラッシュメモリ情報記憶部４０からフラッシュメモリに関する情報を読み出す動作を説明する。フラッシュメモリ情報記憶部４０からフラッシュメモリに関する情報を読み出す際には、まず、ＭＰＵ２０は、アドレスデコード部３７に対してアドレス信号ａ８およびリード信号ｒ８をアサートする。アドレスデコード部３７は、アドレス信号ａ８およびリード信号ｒ８のアサートを受けて、フラッシュメモリ情報記憶部４０からの読み出し指示であることを認識する。
【００３８】
そして、アドレスデコード部３７は、記憶部インタフェース部３８に対してアドレス信号ａ９、セレクト信号ｓ９およびリード信号ｒ９をアサートする。記憶部インタフェース部３８は、アドレス信号ａ９、セレクト信号ｓ９およびリード信号ｒ９のアサートを受けて、フラッシュメモリ情報記憶部４０に対してアドレス信号ａ２、セレクト信号ｓ２およびリード信号ｒ２をアサートする。それによって、フラッシュメモリ情報記憶部４０からフラッシュメモリに関する情報が、データ信号線ｄ２、データバスｄ７、データバスｄ８およびＭＰＵ２０を介して端末４３に送られる。
【００３９】
・情報処理装置の立ち上げ時のシーケンス
図７は、実施例２にかかる情報処理装置の立ち上げ時の処理手順を示すシーケンス図である。なお、図７に示すシーケンス図では、フラッシュメモリにおいて、ＦＰＧＡのコンフィグデータを格納する領域をフラッシュメモリ（コンフィグ用）とし、イニシャルプログラムローダを格納する領域をフラッシュメモリ（ＩＰＬ用）としている。
【００４０】
図７に示すように、情報処理装置の電源が投入されると（ステップＳ１）、まず、フラッシュメモリ制御用ハードウェアは、フラッシュメモリ情報記憶部から、搭載されているフラッシュメモリに関する情報を取得する（ステップＳ２）。そして、フラッシュメモリ制御用ハードウェアは、フラッシュメモリに関する情報を内部で保持する（ステップＳ３）。次いで、フラッシュメモリ制御用ハードウェアは、フラッシュメモリに関する情報に基づいて、フラッシュメモリ（コンフィグ用）に対応するリードモード復帰コマンドを発行する（ステップＳ４）。そして、フラッシュメモリ制御用ハードウェアは、フラッシュメモリ（コンフィグ用）からＦＰＧＡのコンフィグデータをローディングし、該コンフィグデータをＦＰＧＡに提供する（ステップＳ５）。それによって、ＦＰＧＡの設定（コンフィグレーション）が行われる（ステップＳ６）。
【００４１】
次いで、ＭＰＵは、フラッシュメモリ制御用ハードウェアに対して、イニシャルプログラムローダのローディングを指示する（ステップＳ７）。フラッシュメモリ制御用ハードウェアは、フラッシュメモリに関する情報に基づいて、フラッシュメモリ（ＩＰＬ用）に対応するリードモード復帰コマンドを発行する（ステップＳ８）。そして、フラッシュメモリ制御用ハードウェアは、フラッシュメモリ（ＩＰＬ用）からイニシャルプログラムローダをローディングし、該イニシャルプログラムローダをＭＰＵに提供する（ステップＳ９）。それによって、ＭＰＵにおいてブートアップ処理が行われ（ステップＳ１０）、情報処理装置が運用状態へ遷移する（ステップＳ１１）。
【００４２】
・ＦＰＧＡのコンフィグデータ更新時のシーケンス
図８は、実施例２にかかる情報処理装置のコンフィグデータ更新時の処理手順を示すシーケンス図である。なお、図８に示すシーケンス図では、フラッシュメモリにおいて、ＦＰＧＡのコンフィグデータを格納する領域をフラッシュメモリ（コンフィグ用）とし、イニシャルプログラムローダを格納する領域をフラッシュメモリ（ＩＰＬ用）としている。
【００４３】
図８に示すように、ＦＰＧＡのコンフィグデータを更新する処理が開始されると、まず、ソフトウェアにより、フラッシュメモリ制御用ハードウェアに対してフラッシュメモリ（コンフィグ用）の消去が指示される（ステップＳ２１）。フラッシュメモリ制御用ハードウェアは、内部に保持しているフラッシュメモリに関する情報に基づいて、フラッシュメモリ（コンフィグ用）に対応する消去コマンドを発行する（ステップＳ２２）。それによって、フラッシュメモリ（コンフィグ用）においてＦＰＧＡのコンフィグデータが消去される（ステップＳ２３）。該当するセクタの消去が完了すると、フラッシュメモリ（コンフィグ用）は、フラッシュメモリ制御用ハードウェアへ消去完了通知を返す（ステップＳ２４）。フラッシュメモリ制御用ハードウェアは、ソフトウェアへ消去完了通知を返す（ステップＳ２５）。
【００４４】
次いで、ソフトウェアは、外部記憶装置などの他の装置から新たなコンフィグデータをローディングする（ステップＳ２６）。そして、ソフトウェアは、フラッシュメモリ制御用ハードウェアに対して、新たなコンフィグデータの書込み（更新）を指示する（ステップＳ２７）。フラッシュメモリ制御用ハードウェアは、内部に保持しているフラッシュメモリに関する情報に基づいて、フラッシュメモリ（コンフィグ用）に対応する書込コマンドを発行し、フラッシュメモリ（コンフィグ用）に新たなコンフィグデータを転送する（ステップＳ２８）。それによって、フラッシュメモリ（コンフィグ用）に新たなコンフィグデータが書き込まれ、コンフィグデータが更新される（ステップＳ２９）。新たなコンフィグデータの書込みが完了すると、フラッシュメモリ（コンフィグ用）は、フラッシュメモリ制御用ハードウェアへ書込完了通知を返す（ステップＳ３０）。フラッシュメモリ制御用ハードウェアは、ソフトウェアへ書込完了通知を返す（ステップＳ３１）。
【００４５】
次いで、ソフトウェアは、フラッシュメモリ制御用ハードウェアに対してＦＰＧＡの再コンフィグレーションを指示する（ステップＳ３２）。フラッシュメモリ制御用ハードウェアは、フラッシュメモリに関する情報に基づいて、フラッシュメモリ（コンフィグ用）に対応するリードモード復帰コマンドを発行する（ステップＳ３３）。そして、フラッシュメモリ制御用ハードウェアは、フラッシュメモリ（コンフィグ用）からＦＰＧＡのコンフィグデータをローディングし、該コンフィグデータをＦＰＧＡに提供する（ステップＳ３４）。それによって、ＦＰＧＡの再設定（再コンフィグレーション）が行われ（ステップＳ３５）、情報処理装置が運用状態へ遷移する（ステップＳ３６）。
【００４６】
・初期ロード制御部およびフラッシュアクセス制御部の動作
図９〜図１１は、実施例２にかかる情報処理装置の動作を示すフローチャートである。情報処理装置の電源が投入されると（ステップＳ４１）、まず、情報処理装置は、初期ロード制御部により、搭載されているフラッシュメモリに関する情報をフラッシュメモリ情報記憶部から取得する（ステップＳ４２）。次いで、情報処理装置は、初期ロード制御部により、搭載されているフラッシュメモリに関する情報に基づいてセクタ構成テーブルおよびコマンドテーブルを生成する（ステップＳ４３、ステップＳ４４）。セクタ構成テーブルの生成とコマンドテーブルの生成とは、いずれが先でもよい。ここまでの動作は、初期ロード制御部により制御される。これ以降の動作は、フラッシュアクセス制御部により制御される。
【００４７】
次いで、情報処理装置は、フラッシュアクセス制御部により、ソフトウェア（ＭＰＵ）からの指示内容を解釈し、消去指示、書込指示または読出指示を受け付けるまで待機する（ステップＳ４５、ステップＳ５３、ステップＳ５４）。消去指示を受け付けた場合（ステップＳ４５：Ｙｅｓ）、情報処理装置は、フラッシュアクセス制御部により、コマンドテーブルから消去コマンドを取得し、フラッシュメモリへ消去コマンドの先頭のコマンドを発行する（ステップＳ４６）。
【００４８】
例えば、搭載されているフラッシュメモリがＡ社製のフラッシュメモリである場合（図５参照）、コマンドテーブルにおいて、消去コマンドの先頭のアドレスの領域には、ＡＡＡが格納されている。コマンドテーブルの次のアドレスの領域には、ＡＡが格納されている。以後、コマンドテーブルのアドレスが一つ進むごとに、５５５、５５、ＡＡＡ、８０、ＡＡＡ、ＡＡ、５５５、５５、ＳＡおよび３０が格納されている。従って、情報処理装置は、消去コマンドの最後のコマンドである３０が発行されるまで（ステップＳ４８：Ｎｏ）、コマンドテーブルのアドレスをインクリメントしながら（ステップＳ４７）、該アドレスの領域に格納されているコマンドを発行する（ステップＳ４６）。
【００４９】
消去コマンドの全てのコマンドの発行が済んだら（ステップＳ４８：Ｙｅｓ）、情報処理装置は、フラッシュアクセス制御部により、フラッシュメモリ内のステータス情報を確認しながら（ステップＳ４９）、消去中のセクタの消去が完了するのを待つ（ステップＳ５０：Ｎｏ）。消去中のセクタの消去が完了したら（ステップＳ５０：Ｙｅｓ）、情報処理装置は、消去指定範囲の全てのセクタの消去が完了するまで（ステップＳ５２：Ｎｏ）、セクタ構成テーブルのアドレスをインクリメントしながら（ステップＳ５１）、ステップＳ４６以降の消去動作を繰り返す。セクタ構成テーブルの各アドレスの領域には、各セクタの容量が例えばＨＥＸ変換されたデータとして格納されている。消去指定範囲の全てのセクタの消去が完了したら（ステップＳ５２：Ｙｅｓ）、処理を終了する。
【００５０】
一方、書込指示を受け付けた場合（ステップＳ４５：Ｎｏ、ステップＳ５３：Ｙｅｓ）、図１０に示すように、情報処理装置は、フラッシュアクセス制御部により、コマンドテーブルから書込コマンドを取得し、フラッシュメモリへ書込コマンドの先頭のコマンドを発行する（ステップＳ６１）。
【００５１】
例えば、搭載されているフラッシュメモリがＡ社製のフラッシュメモリである場合（図５参照）、コマンドテーブルにおいて、書込コマンドの先頭のアドレスの領域には、ＡＡＡが格納されている。コマンドテーブルの次のアドレスの領域には、ＡＡが格納されている。以後、コマンドテーブルのアドレスが一つ進むごとに、５５５、５５、ＡＡＡ、ＡＡ、ＰＡ（プログラムアドレス）およびＰＤ（プログラムデータ）が格納されている。従って、情報処理装置は、書込コマンドの最後のコマンドであるＰＤ（プログラムデータ）が発行されるまで（ステップＳ６３：Ｎｏ）、コマンドテーブルのアドレスをインクリメントしながら（ステップＳ６２）、該アドレスの領域に格納されているコマンドを発行する（ステップＳ６１）。
【００５２】
書込コマンドの全てのコマンドの発行が済んだら（ステップＳ６３：Ｙｅｓ）、情報処理装置は、フラッシュアクセス制御部により、フラッシュメモリにデータを書き込む（ステップＳ６４）。そして、情報処理装置は、フラッシュアクセス制御部により、フラッシュメモリ内のステータス情報を確認しながら（ステップＳ６５）、データの書込みが完了するのを待つ（ステップＳ６６：Ｎｏ）。データの書込みが完了したら（ステップＳ６６：Ｙｅｓ）、情報処理装置は、書込指定範囲の書込みが完了するまで（ステップＳ６７：Ｎｏ）、ステップＳ６４以降の書込動作を繰り返す。書込指定範囲の書込みが完了したら（ステップＳ６７：Ｙｅｓ）、処理を終了する。
【００５３】
一方、読出指示を受け付けた場合（ステップＳ４５：Ｎｏ、ステップＳ５３：Ｎｏ、ステップＳ５４：Ｙｅｓ）、図１１に示すように、情報処理装置は、フラッシュアクセス制御部により、コマンドテーブルから読出コマンドを取得し、フラッシュメモリへ読出コマンドの先頭のコマンドを発行する（ステップＳ７１）。
【００５４】
例えば、搭載されているフラッシュメモリがＡ社製のフラッシュメモリである場合（図５参照）、コマンドテーブルにおいて、読出コマンドの先頭のアドレスの領域には、任意のデータが格納されている。コマンドテーブルの次のアドレスの領域には、Ｆ０が格納されている。従って、情報処理装置は、読出コマンドの最後のコマンドであるＦ０が発行されるまで（ステップＳ７３：Ｎｏ）、コマンドテーブルのアドレスをインクリメントしながら（ステップＳ７２）、該アドレスの領域に格納されているコマンドを発行する（ステップＳ７１）。
【００５５】
読出コマンドの全てのコマンドの発行が済んだら（ステップＳ７３：Ｙｅｓ）、情報処理装置は、フラッシュアクセス制御部により、フラッシュメモリの指定された先頭アドレスからデータを読み出す（ステップＳ７４）。そして、情報処理装置は、読出指定範囲の読出しが完了するまで（ステップＳ７５：Ｎｏ）、データの読出動作を繰り返す。読出指定範囲の読出しが完了したら（ステップＳ７５：Ｙｅｓ）、処理を終了する。
【００５６】
実施例２によれば、実施例１と同様の効果が得られる。また、フラッシュメモリを制御するソフトウェアの変更に伴う開発費や試験費やフィールドでのソフトウェアの更新費用を削減することができる。また、ピンコンパチビリティのフラッシュメモリであれば、如何なるタイプのフラッシュメモリでもボードに搭載することができるので、特定のメーカに限らず、種々のメーカからフラッシュメモリを調達することができる。また、従来、工場出荷後の故障などに備えて工場にフラッシュメモリを備蓄していたが、種々のメーカからフラッシュメモリを調達することができるので、フラッシュメモリを備蓄せずに済む。従って、フラッシュメモリを備蓄しておくための費用や作業工数や倉庫などのスペースが不要となり、コストを削減することができる。なお、プログラム可能なデバイスのコンフィグデータを格納するフラッシュメモリとイニシャルプログラムローダを格納するフラッシュメモリとを別々に設けてもよい。
【００５７】
上述した実施例１、２に関し、さらに以下の付記を開示する。
【００５８】
（付記１）フラッシュメモリを搭載する情報処理装置において、搭載されているフラッシュメモリを含む複数のフラッシュメモリのそれぞれについて、フラッシュメモリに関する情報を格納する記憶部と、該記憶部に格納されている情報のうちの該搭載されているフラッシュメモリに関する情報に基づいて、該搭載されているフラッシュメモリに対するアクセスの制御を行う制御部と、を備えることを特徴とする情報処理装置。
【００５９】
（付記２）前記フラッシュメモリに関する情報は、フラッシュメモリのセクタに関する情報およびフラッシュメモリを制御するコマンドに関する情報を含むことを特徴とする付記１に記載の情報処理装置。
【００６０】
（付記３）前記制御部は、前記フラッシュメモリのセクタに関する情報および前記フラッシュメモリを制御するコマンドに関する情報に基づいて、前記搭載されているフラッシュメモリに対するデータの消去動作、書込み動作および読出し動作を制御することを特徴とする付記２に記載の情報処理装置。
【００６１】
（付記４）フラッシュメモリへのアクセスを制御する情報を格納する格納部と、装置の起動時に、前記搭載されているフラッシュメモリに関する情報を前記記憶部から取得し、該取得した情報に含まれるフラッシュメモリのセクタに関する情報およびフラッシュメモリを制御するコマンドに関する情報を該格納部に格納する取得部と、を備えることを特徴とする付記３に記載の情報処理装置。
【００６２】
（付記５）前記記憶部は、前記フラッシュメモリに関する情報を格納する書き換え可能な不揮発性メモリを備えることを特徴とする付記４に記載の情報処理装置。
【００６３】
（付記６）前記フラッシュメモリは、プログラム可能なデバイスの論理仕様を定義する情報を格納していることを特徴とする付記１〜５のいずれか一つに記載の情報処理装置。
【００６４】
（付記７）前記フラッシュメモリは、装置の起動時に実行されるイニシャルプログラムローダを格納していることを特徴とする付記１〜６のいずれか一つに記載の情報処理装置。
【符号の説明】
【００６５】
１，１１  情報処理装置
２，１２  フラッシュメモリ
３，１３，４０  記憶部
４，１４，３２，３３  制御部
５，６，１５，１６  フラッシュメモリに関する情報
１７，３４  取得部
１８，３５，３６  格納部
１９，３１  プログラム可能なデバイス
２１  プログラム可能なデバイスの論理仕様を定義する情報
２２  イニシャルプログラムローダ
２３  フラッシュメモリのセクタに関する情報
２４  フラッシュメモリを制御するコマンドに関する情報
【図１】
2011108161.tif 000003
【図２】
2011108161.tif 000004
【図３】
2011108161.tif 000005
【図４】
2011108161.tif 000006
【図５】
2011108161.tif 000007
【図６】
2011108161.tif 000008
【図７】
2011108161.tif 000009
【図８】
2011108161.tif 000010
【図９】
2011108161.tif 000011
【図１０】
2011108161.tif 000012
【図１１】
2011108161.tif 000013