(57)【要約】【課題】装置に搭載する不揮発性メモリ等のメモリとその動的管理方法に関し、メモリの有効利用を図る。【解決手段】装置Ｘの機能に対応したロードモジュールをインストールするメモリ１１に、装置Ｘの立上げ処理を行うブートストラップＢｏｏｔを含む格納領域のＢｏｏｔ領域１２と、ロードモジュールをインストールするロードモジュール格納領域１３と、データを格納するデータベース格納領域１４とを形成し、データベース格納領域１４を複数のレコードに分割し、レコード対応の複数のフィールドを設定し、レコードのサイズに従ったフィールドの有効／無効を管理し、且つレコードの使用／空きを管理するデータベース管理テーブルをＢｏｏｔ領域に形成する。【選択図】      図１
2004164076.tif 000002
【特許請求の範囲】
【請求項１】
装置の機能に対応したロードモジュールをインストールするメモリに於いて、
前記装置の立上げ処理を行うブートストラップを含む格納領域のＢｏｏｔ領域と、前記ロードモジュールをインストールするロードモジュール格納領域と、データを格納するデータベース格納領域とを有し、
前記データベース格納領域を複数のレコードに分割し、該レコード対応の複数のフィールドを設定し、前記レコードのサイズに従った前記フィールドの有効／無効を管理し、且つ前記レコードの使用／空きを管理するデータベース管理テーブルを前記Ｂｏｏｔ領域に形成した構成を有する
ことを特徴とするメモリ。
【請求項２】
装置の機能に対応したロードモジュールをインストールするメモリの動的管理方法に於いて、
前記装置の立上げ処理を行うブートストラップを含む格納領域のＢｏｏｔ領域を有するメモリに、データを格納するデータベース格納領域と、前記ロードモジュールをインストールするロードモジュール格納領域とを設定し、
前記データベース格納領域を複数のレコードに分割し、該レコード対応の複数のフィールドを設定し、前記レコードのサイズに従った前記フィールドの有効／無効を管理し、且つ前記レコードの使用／空きを管理し、全レコード数と、空きのレコードの先頭位置をデータの書込位置として管理するデータベース管理テーブルを前記Ｂｏｏｔ領域に形成し、
該データベース管理テーブルにより、前記データベース格納領域の空きレコードに追加ロードモジュールをインストールし、又はロードモジュールのアンインストールにより生じた領域を前記データベース格納領域の空きレコードとして追加する処理を行う過程を含む
ことを特徴とするメモリの動的管理方法。
【請求項３】
前記レコード対応の複数のフィールド間の優先度を設定し、前記レコードのサイズに対応したサイズとなるように、前記複数のフィールドを前記優先度に従って有効として設定する過程を含むことを特徴とする請求項２記載のメモリの動的管理方法。
【請求項４】
前記ロードモジュールの追加，削除による前記データベース格納領域の変更時、該データベース格納領域の連続したレコードをそれぞれ領域とし、各領域の先頭アドレスを前記データベース管理テーブルに設定して、前記データベース格納領域の断片化を管理する過程を含むことを特徴とする請求項２記載のメモリの動的管理方法。
【請求項５】
前記Ｂｏｏｔ領域を有する前記メモリに、所定機能に対応したサイズのデータベース格納領域を設定し、該データベース格納領域に従ったデータベース管理テーブルを形成し、前記メモリの残りの空き領域に、複数のロードモジュールを選択してインストールする過程を含むことを特徴とする請求項２又は３又は４記載のメモリの動的管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリに形成したロードモジュール格納領域とデータベース格納領域とを動的に管理して、有効利用を図るメモリ及び該メモリの動的管理方法に関する。
【０００２】
【従来の技術】
各種用途の小型の電子機器に於いては、用途に対応したプログラムをインストールするメモリを備えており、又処理したデータを格納するデータベースを内部に備えている場合が一般的である。その場合、メモリにロードモジュール格納領域とデータベース格納領域とを形成し、ロードモジュール格納領域に各種のプログラムをダウンロードし、処理したデータをデータベース格納領域に格納する構成を有することになる。
【０００３】
又小型の電子機器に対しては、更なる小型化と軽量化とが要望されていることにより、その電子機器に搭載する前述のロードモジュール格納領域とデータベース格納領域とを形成したメモリは、或る程度の容量に制約されることになる。又バックアップ電池等を必要としない浮遊ゲート構造の半導体メモリによるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性メモリを用いる場合が一般的である。
【０００４】
このようなメモリに於いては、ロードモジュール格納領域とデータベース格納領域とを予め固定的に割当てる場合が一般的である。しかし、複数種類のロードモジュールをインストールした場合、ロードモジュール対応の処理データを格納するデータベースとしての領域を割当てると、使用しないロードモジュール対応のデータベースとしての領域は無駄となる。
【０００５】
又不揮発性メモリを設けたＩＣカードに於いて、ロードモジュール格納領域に複数種類のロードモジュールのインストールを可能とし、インストールした複数のロードモジュールに対して共通の空き領域を形成し、管理テーブルにより空き領域を含めて管理し、ロードモジュールの実行によるデータを空き領域に一時的に格納し、そのロードモジュールの実行終了により、データベース格納領域として使用した領域を開放して空き領域とすることにより、データベース格納領域に於ける断片化が生じないので、最適化処理を不要とした構成が知られている（例えば、特許文献１参照）。
【０００６】
【特許文献１】
特開２００１−６７２１０号公報
【０００７】
【発明が解決しようとする課題】
ロードモジュールの実行によるデータを保持する必要のある場合、ロードモジュール対応のデータベース格納領域を確保する必要がある。その場合に、前述のように、ロードモジュール対応のデータベース格納領域を予め割当てると、実行しないロードモジュール対応のデータベース格納領域が無駄となり、実際に使用できる領域が小さくなる問題がある。又前述の特許文献１に示されているように、複数のロードモジュールに対して共通の空き領域を形成した場合は、ロードモジュールの実行によるデータを一時的に保持するだけであり、通常のデータベースのように、データを保持することができない問題がある。
【０００８】
本発明は、ロードモジュール対応のデータを保持し、且つロードモジュール格納領域及びデータベース格納領域を動的に割当てて、メモリ領域の有効利用を図ることを目的とする。
【０００９】
【課題を解決するための手段】
本発明のメモリは、図１を参照して説明すると、装置Ｘの機能に対応したロードモジュールをインストールするメモリ１１であって、装置Ｘの立上げ処理を行うブートストラップＢｏｏｔを含む格納領域のＢｏｏｔ領域１２と、ロードモジュールをインストールするロードモジュール格納領域１３と、データを格納するデータベース格納領域１４とを有し、データベース格納領域１４を複数のレコードに分割し、レコード対応の複数のフィールドを設定し、レコードのサイズに従ったフィールドの有効／無効を管理し、且つレコードの使用／空きを管理するデータベース管理テーブルをＢｏｏｔ領域に形成した構成を有するものである。
【００１０】
又本発明のメモリの動的管理方法は、装置Ｘの機能に対応したロードモジュールをインストールするメモリ１１の動的管理方法であって、装置Ｘの立上げ処理を行うブートストラップＢｏｏｔを含む格納領域のＢｏｏｔ領域１２を有するメモリ１１に、データを格納するデータベース格納領域１４と、ロードモジュールをインストールするロードモジュール格納領域１３とを設定し、データベース格納領域１４を複数のレコードに分割し、レコード対応の複数のフィールドを設定し、レコードのサイズに従ったフィールドの有効／無効を管理し、且つレコードの使用／空きを管理し、全レコード数と、空きのレコードの先頭位置をデータの書込位置として管理するデータベース管理テーブルをＢｏｏｔ領域１２に形成し、データベース管理テーブルにより、データベース格納領域１４の空きレコードに追加ロードモジュールをインストールし、又はロードモジュールのアンインストールにより生じた領域を、データベース格納領域１４の空きレコードとして追加する処理を行う過程を含むものである。
【００１１】
又レコード対応の複数のフィールド間の優先度を設定し、レコードのサイズに対応したサイズとなるように、複数のフィールドを、優先度に従って有効として設定する過程を含むことができる。又ロードモジュールの追加，削除によるデータベース格納領域１４の変更時、データベース格納領域１４の連続したレコードをそれぞれ領域とし、各領域の先頭アドレスをデータベース管理テーブルに設定して、データベース格納領域１４の断片化を管理する過程を含むことができる。又Ｂｏｏｔ領域１２を有するメモリ１１に、所定機能に対応したサイズのデータベース格納領域１４を設定し、データベース格納領域１４に従ったデータベース管理テーブルを形成し、メモリ１１の残りの空き領域に、複数のロードモジュールを選択してインストールする過程を含むことができる。
【００１２】
【発明の実施の形態】
図１は本発明の実施の形態の説明図であり、１１は装置Ｘに搭載したメモリを示し、例えば、１００Ｍバイトのサイズの不揮発性メモリとする。又（Ａ）はインストール前、（Ｂ）はロードモジュールのインストール、（Ｃ）はデータベース領域設定のそれぞれ状態を示す。図１の（Ａ）に於いて、１００Ｍバイトの中の１０Ｍバイトの領域をＢｏｏｔ領域１２とし、その領域の一部に、装置Ｘの立上げ処理を行うブートストラップＢｏｏｔを格納しておくもので、この状態では、９０Ｍバイトの空き領域を有することになる。
【００１３】
例えば、ファームウェア内の５０ＭバイトのロードモジュールＡ，Ｂ，Ｃを、インストール処理により、メモリ１１のＢｏｏｔ領域１２以外の空き領域に保存する。即ち、図１の（Ｂ）にように、ロードモジュールＡ，Ｂ，Ｃをインストールすることにより、５０Ｍバイトのロードモジュール格納領域１３となり、残りの空き領域は４０Ｍバイトとなる。
【００１４】
この空き領域をデータベース格納領域１４とする。この場合、ロードモジュール格納領域１３を先に設定し、データベース格納領域１４を空き領域を用いて設定する場合を示すが、所定のサイズのデータベース格納領域１４を設定し、空き領域に複数のロードモジュールを設定しロードモジュール格納領域１３とすることも可能である。前述のように、図１の（Ｂ）に示す空き領域に、データベース格納領域１４を設定すると、図１の（Ｃ）に示す状態となる。
【００１５】
この場合、データベース格納領域１４を、同一のフォーマットの複数のレコードに分割し、Ｂｏｏｔ領域１２の一部にデータベース管理テーブルを形成して管理する。このデータベース管理テーブルは、データベース格納領域１４内に保存可能のレコード数と、レコードの使用／空きの管理によるデータを書込む先頭レコード位置を管理する。又レコード詳細（フィールド名、サイズ、フィールド構成）として示すように、レコード対応に複数のフィールドに分割し、各フィールドに優先度を設定し、レコードのサイズに対応したサイズとなるフィールドを優先度に従って選択し、レコード対応の有効／無効を管理する。図１の（Ｃ）に於いては、レコード数を１００とし、各レコード１〜レコード１００は、それぞれ０．４Ｍバイトとなる。
【００１６】
又各レコード対応に分割した複数のフィールドは、優先度の高い順に、フィールド１、フィールド２、・・・を定義し、各レコードは、前述のように、０．４Ｍバイトとすると、フィールド１とフィールド２とを０．１Ｍバイト、フィールド３を０．０５Ｍバイト、フィールド４を０．１５Ｍバイト、フィールド５を０．１Ｍバイトとすると、各レコードが０．４Ｍバイトのサイズであるから、フィールド１〜フィールド４を有効とし、他のフィールドを無効に設定することになる。
【００１７】
図２はデータベース管理テーブルの説明図であり、（Ａ）は、全レコード数とデータの書込先頭位置を示すレコード位置と、レコード対応のフィールドとを含むもので、図１の（Ｃ）に対応させると、初期時は、全レコード数＝１００、レコード位置＝０、全フィールド＝無効に設定される。そして、各レコードのサイズが図１の（Ｃ）に示すように、０．４Ｍバイトであると、図２の（Ｂ）に示すように、このレコードのサイズに対応し、且つ優先度に従ってフィールド１〜フィールド４は有効、フィールド５以降は無効と設定し、又データの書込開始のレコード位置＝１とする。この場合、レコード１〜レコード１００は空きであることを示す。
【００１８】
図３は前述の装置Ｘに相当するデータ処理装置の要部を示し、１１は不揮発性メモリ等の前述のロードモジュールをインストールするメモリ（ＭＥＭ）、２はプロセッサ（ＣＰＵ）、３はランダムアクセスメモリ（ＲＡＭ）、４は表示部（ＤＳＰ）、５は入出力インタフェース部（ＩＦ）、６はバスを示す。
【００１９】
一般的な電子機器と同様に、メモリ１１に対するロードモジュールのインストールや、そのロードモジュールを例えばランダムアクセスメモリ３に展開して実行し、データをメモリ１１に書込む処理は、プロセッサ２の制御によって行うことができるものであり、ロードモジュールの選択結果や処理結果等は表示部４に表示することもできる。又各種の入出力条件を入出力インタフェース部５を介して設定することができる。
【００２０】
従って、図１の（Ａ）の状態から、ブートストラップＢｏｏｔをプロセッサ２が実行することにより、データ処理装置を立上げて、入出力インタフェース部５を介して、図示を省略したファームウェアからロードモジュールＡ，Ｂ，Ｃをメモリ１１にインストールし、図１の（Ｂ）の状態とし、更にデータベース管理テーブルをメモリ１１のＢｏｏｔ領域１２内に形成して、図１の（Ｃ）の状態とすることができる。
【００２１】
図４はロードモジュールＡ，Ｂ，Ｃをメモリ１１にインストール後の状態を示すもので、メモリ１１からＲＡＭ（ランダムアクセスメモリ）３（図３参照）にロードモジュールＡ’，ロードモジュールＢ’，ロードモジュールＣ’として示すように展開し、ロードモジュールＡ’の実行によるデータをレコード３（使用）に格納し、ロードモジュールＢ’の実行によるデータをレコード１（使用）に格納し、ロードモジュールＣ’の実行によるデータをレコード２（使用）に格納した場合を示す。即ち、図２に示すように、データベース管理テーブルのレコード位置としてデータを書込む空きレコード位置が順次更新される。この状態では、レコード４〜レコード１００は空きとなっている。
【００２２】
図５はロードモジュール追加の説明図であり、（Ａ）に示すように、ロードモジュール格納領域１３にロードモジュールＡ，Ｂ，Ｃがインストールされ、データベース格納領域１４に形成したレコード１〜レコード２０が使用され、レコード２１〜レコード１００が空きの場合に、２ＭバイトのロードモジュールＤを追加インストールする場合、レコードは前述のように０．４Ｍバイトの大きさであるから、２Ｍバイトを格納する為には、５個のレコードを必要とすることになる。そこで、データベース管理テーブルを参照して、データベース格納領域１４の空きレコードを検索する。それにより、図５の（Ｂ）に示すように、データベース格納領域１４の中の空きのレコード２１〜レコード２５をロードモジュール格納領域１３’に設定して、更新ロードモジュールＤのインストールを行う。
【００２３】
図６は前述のロードモジュール更新時のデータベース管理テーブルの説明図であり、（Ａ）は更新前で、空きレコードの先頭のレコード位置が２１を示している場合、２ＭバイトのロードモジュールＤをインストールする時は、空き領域を求める。この場合、全レコード数＝１００、空きレコードの先頭のレコード位置＝２１、１レコードサイズ＝０．４Ｍバイトであるから、空き領域の大きさは、（１００−２０）×０．４＝３２（Ｍバイト）となる。従って、２ＭバイトのロードモジュールＤはインストール可能と判定できる。又インストールに必要なレコード数は、２（Ｍバイト）÷０．４（Ｍバイト）＝５となる。即ち、５個のレコードを使用することになる。
【００２４】
そこで、図５の（Ｂ）に示すようにロードモジュールＤをレコード２１〜レコード２５にインストールし、データベース管理テーブル１４を、図６の（Ｂ）に示すように、５個のレコードを使用したから、全レコード数＝９５、レコード２１〜レコード２５を使用したから、次の書込可能の空きレコードの先頭位置を、レコード位置＝２６とするように更新する。従って、データベース格納領域１４に空きレコードが存在する場合、インストール可能の大きさのロードモジュールを、データベース格納領域１４に追加インストールすることができる。
【００２５】
図７はロードモジュールのバージョンアップにより更新する場合を示し、図４に示す場合と同様に、ロードモジュール格納領域１４に、ロードモジュールＡ，Ｂ，Ｃが格納され、ＲＡＭ３に、ロードモジュールＡ’，Ｂ’，Ｃ’として展開された状態で、データベース格納領域１４のレコード１〜レコード３０が使用済の場合に於いて、ロードモジュールＣをバージョンアップした４Ｍバイトの更新ロードモジュールＣをインストールする場合を示す。
【００２６】
各ロードモジュールは、モジュール名称と、モジュールサイズと、リビジョン版数とを含むモジュールヘッダを有するもので、リビジョン版数の値が大きい方がバージョンアップした新しいロードモジュールを示す。この場合、メモリ１１にインストール済のロードモジュールＣと、バージョンアップしてインストールする更新ロードモジュールＣとのモジュールヘッダを図示しており、インストール済のロードモジュールＣは、モジュール名称＝ＫＫＫ、モジュールサイズ＝２Ｍバイト、リビジョン版数＝０１であり、更新ロードモジュールＣは、モジュール名称＝ＫＫＫ、モジュールサイズ＝４Ｍバイト、リビジョン版数＝０２のそれぞれのモジュールヘッダ詳細を示している。
【００２７】
又更新ロードモジュールＣをメモリ１１にインストールとした後、ＲＡＭ３に、更新ロードモジュールＣ’として示すように展開する。この場合、ＲＡＭ３には、モジュール名称＝ＫＫＫが同一のロードモジュールＣ’と更新ロードモジュールＣ’とが展開されているが、リビジョン版数の大きい方を実行することにより、混乱を生じることはない。又メモリ１１にインストールされているリビジョン版数＝０１のロードモジュールＣは、不要となるからアンインストール処理する。そして、アンインストールにより空きとなった領域は、データベース格納領域に追加する。
【００２８】
このようにロードモジュールをアンインストールして、メモリ１１の領域の再配置を行うと、例えば、図８に示す構成となる。即ち、Ｂｏｏｔ領域１２のＢｏｏｔの領域とデータベース管理テーブルとはそのままの領域を確保し、ロードモジュールＡ，Ｂを格納したロードモジュール格納領域１３と、更新ロードモジュールＣを格納したロードモジュール領域１３’以外をデータベース格納領域１４とする。この場合、データベース格納領域は断片化された状態となり、各領域についてそれぞれ先頭アドレスを管理するもので、先頭アドレス０ｘ０５００番地の領域（３）の全レコードは空き、先頭アドレス０ｘ１０００番地の領域（１）は全レコードは使用中、先頭アドレス０ｘ２０００番地の領域（２）は全レコード空きの場合を示している。
【００２９】
この場合、データベース格納領域１４は、断片化された領域となるから、断片化された領域について、データベース格納領域１４の詳細を定義する。即ち、図９に示すように、データベース管理テーブルに、データ領域と、その先頭アドレスと、そのデータ領域内のレコード番号とを設定する。図９の（Ａ）は、図７に於ける更新ロードモジュールＣをインストールする前のメモリ１のデータベース管理テーブルについて示すもので、全レコード数＝１００、データを書込む先頭のレコード位置＝３１とし、又データ領域として示すデータベース格納領域を領域（１）とし、その先頭アドレスを０ｘ１０００、レコード番号を１〜１００とする。なお、レコード対応のフィールドについては、前述の場合と同様に、レコード１〜レコード４は有効、レコード５以降は無効として設定している。
【００３０】
そして、図８に示す再配置により、データベース管理テーブルは図９の（Ｂ）に示す内容となる。即ち、全レコード数は、ロードモジュールＣをメモリ１１から消去したことにより増加した分と、インストールした更新ロードモジュールＣの分との差により、９５となり、次にデータを書込む先頭のレコード位置は４１となる。この場合、ロードモジュールＣをアンインストールしたことによる空き領域については、前のデータベース格納領域１４の後のレコード番号として管理する。
【００３１】
又データ領域、即ち、データベース格納領域１４は、断片化された領域（１），（２），（３）となり、領域（１）の先頭アドレスは０ｘ１０００、レコード番号は１〜３０、領域（２）の先頭アドレスは０ｘ２０００、レコード番号は４１〜１００、ロードモジュールＣの消去による領域（３）の先頭アドレスは０ｘ０５００、レコード番号は、前述のように、レコード番号１００の後に継続した新たな１０１〜１０５とする。この場合、次のデータは、領域（２）のレコード番号４１が空きレコードの先頭のレコード位置となるから、このレコード４１に書込むことになる。
【００３２】図１０はファームウェア及び選択項目の説明図であり、（Ａ）は、ファームウェアの一例を示し、（Ｂ）はインストール時の選択項目を示す。ファームウェアは、装置運用に於いて何れかは必須とされる主ロードモジュールＡ，Ｂ，Ｃ，Ｄと、オプション機能としてオプションロードモジュールＥ，Ｆ，Ｇ，Ｈ，Ｉを含み、それぞれ名称とサイズと優先度とを設定している。例えば、主ロードモジュールＡは、名称＝ａａａ、サイズ＝２０Ｍバイトであり、又オプションロードモジュールＥは、名称＝ｅｅｅ、サイズ＝１０Ｍバイト、優先度＝３の場合を示している。又選択項目としては、装置運用に適したデータベース選択と、運用機能選択とを含み、データベース選択としては、標準データと拡張データとの何れかを選択し、運用機能選択としては、モードＭｏｄｅ１運用とＭｏｄｅ２運用との何れかを選択する場合を示す。
【００３３】
データベース選択の標準データの場合は、適応データベース容量＝２０Ｍバイト、レコード数＝１００、各レコード＝０．２Ｍバイトとする。又拡張データの場合は、適応データベース容量＝４０Ｍバイト、レコード数＝５０、各レコード＝０．８Ｍバイトとする。又運用機能選択のＭｏｄｅ１運用の場合は、主ロードモジュールＢ，Ｃ，Ｄを運用形態必要機能とし、Ｍｏｄｅ２運用の場合は、主ロードモジュールＡ，Ｃを運用形態必要機能とする。なお、図１０の（Ａ）に於いて、データベース選択：標準データ、運用機能選択：Ｍｏｄｅ１運用を選択した場合を左上枠内に示している。
【００３４】
図１１はインストール動作説明図であり、装置Ｘに搭載したメモリ１１は、図１に示すメモリ１１と同様に１００Ｍバイトの容量を有し、１０ＭバイトのＢｏｏｔ領域１２は、ブートストラップＢｏｏｔとデータベース管理テーブルとからなり、インストール時に、図１０の（Ａ）に示すように、データベース選択＝標準データ、運用機能選択＝Ｍｏｄｅ１として選択すると、適応データベース容量＝２０Ｍバイトから、データベース格納領域１４として２０Ｍバイトを割当て、レコード数＝１００からレコード１〜レコード１００として設定する。この状態を図１１の（Ａ）に示す。
【００３５】
次に、７０Ｍバイトの空き領域に、運用機能選択＝Ｍｏｄｅ１により、主ロードモジュールＢ，Ｃ，Ｄをインストールする。この場合、合計６０Ｍバイトのロードモジュールとなるから、空き領域は１０Ｍバイトとなる。この状態を図１１の（Ｂ）に示す。この空き領域に、例えば、それぞれ５ＭバイトのオプションロードモジュールＥ，Ｆをインストールする。この状態を図１１の（Ｃ）に示す。従って、１００Ｍバイトのサイズのメモリ１１を搭載した装置Ｘは、そのメモリ１１のロードモジュール格納領域１３に、主ロードモジュールＢ，Ｃ，Ｄと、オプションロードモジュールＥ，Ｆとをインストールし、２０Ｍバイトのデータベース格納領域１４を有する構成として運用開始することができる。
【００３６】
この場合、複数のオプションロードモジュールをインストールする為に選択すると、総て空き領域にインストールできる場合は、前述のようにインストールすることになるが、空き領域サイズが不足する場合、オプションロードモジュールの優先度が高い方から順（優先度１＞２＞３＞４＞５の順）に選択してインストールすることになる。例えば、オプションロードモジュールＧ（優先度＝５），オプションロードモジュールＨ（優先度＝１），オプションロードモジュールＩ（優先度＝４）をインストールするように選択した場合、合計で１５Ｍバイトとなり、１０Ｍバイトの空き領域に総てをインストールできないので、優先度の高い方のオプションロードモジュールＨ，Ｉをインストールすることになる。
【００３７】
図１２はルータに適用した場合を示し、（Ａ）はユニキャストＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケット（ＵＣパケット）のルーティング処理を行うルータを装置Ｘとして示し、（Ｂ）はマルチキャストＩＰパケット（ＭＣパケット）のルーティング処理を行うルータを装置Ｙとして示す。又装置Ｘ，Ｙに搭載するメモリ１１は、１３Ｍバイトのサイズを有し、３ＭバイトのＢｏｏｔ領域１２をブートストラップＢｏｏｔとデータベース管理テーブルとの領域とすると、１０Ｍバイトの空き領域を有することになり、この空き領域を前述のロードモジュール格納領域１３とデータベース格納領域１４とする場合を示す。又ファームウェアＡは、監視モジュールと、ＵＣルーティングモジュールとを含む３Ｍバイトのサイズであり、又ファームウェアＢは、監視モジュールと、ＵＣルーティングモジュールと、ＭＣルーティングモジュールとを含む５Ｍバイトのサイズの場合を示す。
【００３８】
図１３は運用時のメモリの説明図であり、（Ａ）は前述のルータとしての装置Ｘに搭載したメモリ１１の内容を示し、（Ｂ）は前述のルータとしての装置Ｙに搭載したメモリ１１の内容を示す。同図の（Ａ）の装置Ｘに於いては、データベース格納領域１４は４Ｍバイトのサイズであり、トラフィックデータが、下方に示すように、日付と、通過パケット数と、受信パケット数と、送信パケット数と、エラー受信パケット数と、エラー送信パケット数とを含む４０ｋバイトとすると、１００個のトラフィックデータをデータベース格納領域１４に格納することができる。この場合、例えば、自動的にトラフィックデータを収集する時、１００日間の収集が可能となる。なお、１００日以上の場合は、古い記録データに対して新しい記録データを上書きすることも可能である。
【００３９】
又図１３の（Ｂ）の装置Ｙに於いては、データベース格納領域１４は２Ｍバイトのサイズであり、トラフィックデータが、下方に示すように、日付と通過パケット数とを含む２０ｋバイトとすると、この場合も１００個のトラフィックデータをデータベース格納領域１４に格納することができる。即ち、前述のように、データベース格納領域１４をレコード１〜レコード１００に分割した場合に相当することになる。
【００４０】
図１４はデータベース管理テーブルの説明図であり、図１３に於けるデータベース管理テーブルの一例を示し、全レコード数＝１００とし、初期状態では、レコード位置＝０、各フィールドは無効として設定されている状態となる。そして、図１３の（Ａ）に示す場合は、フィールド名の日付と、通過パケット数と、受信パケット数と、送信パケット数と、エラー受信パケット数と、エラー送信パケット数とについては、フィールド構成は有効とし、ＵＣパケット数とＭＣパケット数とのフィールド構成は無効に設定する。又図１３の（Ｂ）に示す場合は、フィールド名の日付と、通過パケット数とのフィールドを有効とし、他のフィールドを無効に設定する。
【００４１】
図１５はロードモジュール追加の説明図であり、図１３の（Ａ）に示す装置Ｘに、ＭＣルーティングモジュールを追加する場合を示し、図１５の（Ａ）に示すように、４Ｍバイトのデータベース格納領域１４のレコード１〜レコード３０にトラフィックデータを記憶した状態に於いて、２ＭバイトのＭＣルーティングモジュールを追加して、図１３の（Ｂ）に示す装置Ｙと同様の機能で運用を行う場合、図５及び図６について説明したように、データベース格納領域１４の空きのレコードの合計２Ｍバイトを確保し、ＭＣルーティングモジュールをインストールする。
【００４２】
それにより、図１５の（Ｂ）に示すように、データベース格納領域１４のレコード３１〜レコード７９の領域にインストールされ、レコード８０〜レコード１００が未使用となる。従って、ＵＣパケットの処理を行う装置Ｘに、ＭＣパケットの処理を行う為のＭＣルーティングモジュールをインストールして装置Ｘ’とすることができる。この場合、ＵＣパケットの処理とＭＣパケットの処理とを実行し、且つデータベース格納領域１４の空きレコードが少なくなることにより、データベース管理テーブルのフィールド対応の有効／無効の設定の更新を行うことも可能である。
【００４３】
図１６はロードモジュール更新処理の説明図であり、メモリ１１とＲＡＭ３とを含む装置Ｘのメモリ１１は、３ＭバイトのＢｏｏｔ領域１２と、３Ｍバイトのロードモジュール格納領域１３と、４Ｍバイトのデータベース格納領域１４とを有し、ロードモジュール格納領域１３に、監視モジュールとＵＣルーティングモジュールとがインストールされ、この監視モジュールとＵＣルーティングモジュールとがＲＡＭ３に展開されて実行される状態に於いて、データベース格納領域１４の空きのレコードの領域に、更新ＵＣルーティングモジュールをインストールする。
【００４４】
このロードモジュールの更新処理は、図７についても説明したように、ロードモジュールの追加の場合と類似するが、更新前の古いロードモジュールを削除することができる。なお、最初のＵＣルーティングモジュールのモジュールヘッダは、モジュール名称＝ＲＩＰ、モジュールサイズ＝１Ｍバイト、リビジョン版数＝０１であり、更新ＵＣルーティングモジュールのモジュールヘッダは、モジュール名称＝ＲＩＰ、モジュールサイズ＝３Ｍバイト、リビジョン版数＝０２の場合を示す。
【００４５】
図示のように、更新ＵＣルーティングモジュールをメモリ１１のデータベース領域１４の空きのレコードの領域にインストールした後、モジュールヘッダのモジュール名称について、同一名称のロードモジュールの有無を判定する。この場合、ＵＣルーティングモジュールと、更新ＵＣルーティングモジュールとは、モジュール名称＝ＲＩＰで同一であるが、リビジョン版数が０１の方をメモリ１１から消去し、その領域をデータベース格納領域として再配置する。又ＲＡＭ３上に更新ＵＣルーティングモジュールを展開する。この場合、ＲＡＭ３上に於いては、リビジョン版数の値の大きい方を実行するように制御するか、又は×印で示すように、削除することができる。
【００４６】
前述の図１６に於ける更新ＵＣルーティングモジュールをインストールした後の再配置を行った状態を図１７に示す。即ち、ブートストラップＢｏｏｔとデータベース管理テーブルとからなる３ＭバイトのＢｏｏｔ領域と、１Ｍバイトの監視モジュールをインストールしたロードモジュール格納領域と、レコード１０１〜レコード１５０の２Ｍバイトのデータベース格納領域と、レコード１〜レコード２０の０．８Ｍバイトのデータベース格納領域と、３Ｍバイトの更新ＵＣルーティングモジュールをインストールしたロードモジュール格納領域と、レコード９６〜レコード１００のデータベース格納領域とから構成され、削除したリビジョン版数＝０１のＵＣルーティングモジュールの領域をデータベース格納領域のレコード１０１〜レコード１５０として使用することができる。なお、データベース格納領域は、断片化されるが、図９について説明したように、断片化された領域対応に管理することにより、連続したデータベース格納領域と同様にデータの書込みの制御が可能となる。
【００４７】
図１８は装置Ｘのメモリ１１に、パーソナルコンピュータ（ＰＣ）２０の画面の表示内容（Ｗｅｂ画面）を参照してインストールする場合を示す。装置Ｘに搭載した１０Ｍバイトのメモリ１１のＢｏｏｔ領域１２には、装置起動時の立上げ処理と、ファームウェアインストール時の処理とを行う機能が格納されている。そして、ファームウェア内のロードモジュールを選択して、インストールするものである。
【００４８】
この場合、インストールするファームウェア内には、装置運用に必須となる監視モジュールとＵＣルーティングモジュールとＭＣルーティングモジュールと、オプション機能として、ＦＴＰ機能を有するＦＴＰモジュールと、Ｔｅｌｎｅｔ機能を有するＴｅｌｎｅｔモジュールと、Ｗｅｂ監視機能のＨＴＴＰモジュールと、ルータの障害監視を行うＡＬＭモジュールとを含む場合を示し、それぞれのモジュールヘッダには、名称とサイズと優先度とが設定されている。なお、優先度は、オプション機能モジュールに対して、例えば、優先度＝ａ〜ｄ等により設定され、空き領域が少ない場合、選択されたオプション機能モジュールの中の優先度の高い方からインストールされる。
【００４９】
図１９はインストール時の選択項目の説明図であり、データベース選択と、運用機能選択とがあり、データベース選択の項目内には、基本的なトラフィックデータフォーマットである標準データ（全レコード数＝１００、１レコード＝０．０１Ｍバイト）と、更に詳細なデータが設定可能の拡張データ（全レコード数＝１００、１レコード＝０．０３Ｍバイト）とがある。又運用機能選択の項目内には、ＵＣルーティング機能に必要なモジュールを定義したＵＣルーティング運用と、ＭＣルーティング機能に必要なモジュールを定義したＭＣルーティング運用とがある。
【００５０】
図２０はインストール動作の説明図であり、図１８のパーソナルコンピュータ２０の画面表示を参照して、装置Ｘに搭載したメモリ１１に、図１９の選択項目の中の標準データと、ＵＣルーティング運用とを選択してインストールする場合を示す。同図の（Ａ）は、メモリ１１に、３ＭバイトのＢｏｏｔ領域１２と、１Ｍバイトのデータ格納領域１４とを形成し、６Ｍバイトの空き領域を有する状態を示す。即ち、標準データを選択したことにより、全レコード数＝１００、１レコード＝０．０１Ｍバイトであるから、合計で１Ｍバイトのデータベース格納領域１４を確保し、このデータベース格納領域１４を１００個のレコードに分割して、トラフィックデータ１〜トラフィックデータ１００を記録する領域を確保し、このデータベース格納領域１４を、Ｂｏｏｔ領域１２に形成したデータベース管理テーブルによって管理する。
【００５１】
又ＵＣルーティング運用を選択したことにより、必須ロードモジュールは、図１８を参照すると、１Ｍバイトの監視モジュールと、２ＭバイトのＵＣルーティングモジュールであるか、これをメモリ１１の空き領域にインストールする。それにより、図２０の（Ｂ）に示す状態となり、空き領域は３Ｍバイトとなる。
【００５２】
次に、オプション機能モジュールとして、例えば、優先度の高い方から順にインストールする場合、図１３に示すオプション機能モジュールのモジュールヘッダの優先度を参照し、３バイトの空き領域にインストール可能のモジュールを選択する。この場合、優先度＝ａ（優先度ａ＞優先度ｂ）の２ＭバイトのＨＴＴＰモジュールと、優先度＝ｂ（優先度ａ＞優先度ｃ）の１ＭバイトのＡＬＭモジュールとが選択されることになる。従って、このＨＴＴＰモジュールとＡＬＭモジュールとをインストールすると、図２０の（Ｃ）に示す状態となる。即ち、装置Ｘは、監視モジュールと、ＵＣルーティングモジュールと、ＨＴＴＰモジュールと、ＡＬＭモジュールとをメモリ１１のロードモジュール格納領域１３に格納し、ユニキャストＩＰパケットのルーティング制御を行い、データベース格納領域１４に、１００個のトラフィックデータを格納することができるルータを構成することができる。
【００５３】
本発明は、前述の各実施の形態にのみ限定されるものではなく、種々付加変更することが可能であり、メモリ１１は、各種の構成のメモリを適用できるものであり、一般的には、不揮発性メモリを適用するものであり、この不揮発性メモリとしては、例えば、各種の用途に適用されている浮遊ゲート構造のフラッシュＥＥＰＲＯＭを通常は適用することになるが、誘電体を用いたＦＲＡＭ，磁気抵抗効果を利用したＭＲＡＭ等を適用することも可能である。又複数のロードモジュールをインストールとして、所望の機能を実現するロードモジュールを選択指定する構成とすることも可能である。
【００５４】
【発明の効果】
以上説明したように、本発明は、装置に搭載する不揮発性メモリ等のメモリに、装置の立上げ処理を行うブートストラップＢｏｏｔとデータベース管理テーブルとを含むＢｏｏｔ領域１２と、ロードモジュール格納領域１３と、データベース格納領域１４とを設定し、データベース管理テーブルにより、データベース格納領域１４を管理し、ロードモジュールの追加インストール時や、アンインストール時に、追加インストールする空きの有無の判定や、インストール後やアンインストール後のデータベース管理テーブルの管理情報の更新を行うもので、各種の装置の機能対応の単一又は複数のロードモジュールのインストールが可能であり、且つデータベース格納領域を動的に再配置することが可能であるから、メモリ１１の有効利用を図ることができる利点がある。
【図面の簡単な説明】
【図１】本発明の実施の形態の説明図である。
【図２】データベース管理テーブルの説明図である。
【図３】データ処理装置の要部説明図である。
【図４】ロードモジュールのインストール後の説明図である。
【図５】ロードモジュール追加の説明図である。
【図６】データベース管理テーブルの説明図である。
【図７】ロードモジュール更新の説明図である。
【図８】メモリの領域再配置の説明図である。
【図９】データベース管理テーブルの説明図である。
【図１０】ファームウェア及び選択項目の説明図である。
【図１１】インストール動作説明図である。
【図１２】ルータに適用した場合の説明図である。
【図１３】運用時のメモリの説明図である。
【図１４】データベース管理テーブルの説明図である。
【図１５】ロードモジュール追加の説明図である。
【図１６】ロードモジュール更新処理の説明図である。
【図１７】再配置後のメモリの説明図である。
【図１８】インストールの説明図である。
【図１９】インストール時の選択項目の説明図である。
【図２０】インストール動作の説明図である。
【符号の説明】
１１  メモリ
１２  Ｂｏｏｔ領域
１３  ロードモジュール格納領域
１４  データベース格納領域
【図１】
2004164076.tif 000003
【図２】
2004164076.tif 000004
【図３】
2004164076.tif 000005
【図４】
2004164076.tif 000006
【図５】
2004164076.tif 000007
【図６】
2004164076.tif 000008
【図７】
2004164076.tif 000009
【図８】
2004164076.tif 000010
【図９】
2004164076.tif 000011
【図１０】
2004164076.tif 000012
【図１１】
2004164076.tif 000013
【図１２】
2004164076.tif 000014
【図１３】
2004164076.tif 000015
【図１４】
2004164076.tif 000016
【図１５】
2004164076.tif 000017
【図１６】
2004164076.tif 000018
【図１７】
2004164076.tif 000019
【図１８】
2004164076.tif 000020
【図１９】
2004164076.tif 000021
【図２０】
2004164076.tif 000022