(57)【要約】  【課題】  不揮発性メモリの書き換え時間を常に最短に抑える不揮発性メモリ書き換え装置を提供する。  【解決手段】  不揮発性メモリに格納されている旧データと新データとの差異を求め（Ｓ１００）、差異が７０％以上なら（Ｓ１０１：ＹＥＳ）、新データをすべて不揮発性メモリに書き込んで処理を終了する（Ｓ１０８）。差異が７０％未満なら（Ｓ１０１：ＮＯ）、変数ｉの値を１として（Ｓ１０２）、両データの第ｉ番目のブロックどうしの差異を求め（Ｓ１０３）、差異が３０％以上ならば（Ｓ１０４：ＹＥＳ）、新データの第ｉ番目のブロックをすべて不揮発性メモリに書き込む（Ｓ１０９）。差異が３０％未満なら（Ｓ１０４：ＮＯ）、差異部分のみを不揮発性メモリに書き込む（Ｓ１０５）。そして、変数ｉの値を１だけ増加させ（Ｓ１０６）、全ブロック数Ｎ以下なら処理を継続し（Ｓ１０７：ＮＯ）、さもなければ終了する（Ｓ１０７：ＹＥＳ）。  【選択図】  図２
2005128894.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリに格納されているデータを書き換える不揮発性メモリ書き換え装置であって、
前記不揮発性メモリに既に書き込まれている第１のデータと、前記不揮発性メモリに書き込むべき第２のデータとを比較して差異部分を検出するデータ比較手段と、
前記データ比較手段にて検出された前記差異部分の前記第２のデータに対する比が７０％を超える場合には、前記第２のデータを前記不揮発性メモリに書き込む全書き換え手段と、
前記データ比較手段にて検出された前記差異部分の前記第２のデータに対する比が７０％を超えない場合には、前記差異部分を前記不揮発性メモリに書き込む差分書き換え手段と
を備えることを特徴とする不揮発性メモリ書き換え装置。
【請求項２】
前記第１のデータと同一のデータを予め記憶している同一データ記憶手段を備え、
前記データ比較手段は、前記同一データ記憶手段にて記憶している第１のデータと同一のデータと前記第２のデータとを比較する
ことを特徴とする請求項１に記載の不揮発性メモリ書き換え装置。
【請求項３】
前記不揮発性メモリは携帯電話機に内蔵されている不揮発性メモリであり、
前記携帯電話機は、ＲＳ−２３２−Ｃインタフェースにて当該不揮発性メモリ書き換え装置に接続されており、
前記全書き換え手段は、前記ＲＳ−２３２−Ｃインタフェースを介して前記第２のデータを書き込む
ことを特徴とする請求項１に記載の不揮発性メモリ書き換え装置。
【請求項４】
データを記憶するデータ記憶手段と、
前記第１のデータに関する情報を取得する関連情報取得手段と、
前記データ記憶手段にて記憶しているデータに関する情報と、前記関連情報取得手段にて取得した情報とを比較して、これらデータが同一か否かを判定する関連情報比較手段と、
前記関連情報比較手段にて前記データが同一であると判定された場合には、前記データ比較手段は、前記同一データ記憶手段にて記憶している第１のデータと同一のデータと前記第２のデータとを比較する
ことを特徴とする請求項１に記載の不揮発性メモリ書き換え装置。
【請求項５】
不揮発性メモリに格納されているデータを書き換える不揮発性メモリ書き換え装置であって、
前記不揮発性メモリに既に書き込まれている第１のデータと、前記不揮発性メモリに書き込むべき第２のデータとを比較して差異部分を検出するデータ比較手段と、
前記データ比較手段にて検出された前記差異部分の前記第２のデータに対する比が７０％を超える場合には、前記第２のデータを前記不揮発性メモリに書き込む全書き換え手段と、
前記データ比較手段にて検出された前記差異部分の前記第２のデータに対する比が７０％を超えない場合には、前記第１のデータと前記第２のデータとをその先頭から所定データ長ずつ比較して、それぞれについて差異部分を検出する部分データ比較手段と、
前記部分データ比較手段にて検出された前記差異部分の前記所定データ長に対する比が３０％を超える場合には、当該比較に係る第２データの部分を前記不揮発性メモリに書き込む部分書き換え手段と
前記部分データ比較手段にて検出された前記差異部分の前記所定データ長に対する比が３０％を超えない場合には、前記部分データ比較手段にて検出された前記差異部分を前記不揮発性メモリに書き込む差分書き換え手段と
を備えることを特徴とする不揮発性メモリ書き換え装置。
【請求項６】
前記所定データ長は６４キロバイトである
ことを特徴とする請求項５に記載の不揮発性メモリ書き換え装置。
【請求項７】
前記第１のデータと同一のデータを予め記憶している同一データ記憶手段を備え、
前記データ比較手段と前記部分データ比較手段とは、前記同一データ記憶手段にて記憶している第１のデータと同一のデータと前記第２のデータとを比較する
ことを特徴とする請求項５に記載の不揮発性メモリ書き換え装置。
【請求項８】
データを記憶するデータ記憶手段と、
前記第１のデータに関する情報を取得する関連情報取得手段と、
前記データ記憶手段にて記憶しているデータに関する情報と、前記関連情報取得手段にて取得した情報とを比較して、これらデータが同一か否かを判定する関連情報比較手段と、
前記関連情報比較手段にて前記データが同一であると判定された場合には、前記データ比較手段と前記部分データ比較手段とは、前記同一データ記憶手段にて記憶している第１のデータと同一のデータと前記第２のデータとを比較する
ことを特徴とする請求項５に記載の不揮発性メモリ書き換え装置。
【請求項９】
前記不揮発性メモリは携帯電話機に内蔵されている不揮発性メモリであり、
前記携帯電話機は、ＲＳ−２３２−Ｃインタフェースにて当該不揮発性メモリ書き換え装置に接続されており、
前記全書き換え手段、部分書き換え手段および差分書き換え手段は、前記ＲＳ−２３２−Ｃインタフェースを介して前記第２のデータを書き込む
ことを特徴とする請求項５に記載の不揮発性メモリ書き換え装置。
【請求項１０】
前記携帯電話機が備えるＲＳ−２３２−Ｃインタフェースの受信バッファサイズは２５６バイトである
ことを特徴とする請求項９に記載の不揮発性メモリ書き換え装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、不揮発性メモリにデータを格納する技術に関し、特に、不揮発性メモリにデータを格納するために要する時間を短縮する技術に関する。
【背景技術】
【０００２】
近年、世界的な普及をみた携帯電話機には、何れも例外無くマイクロコンピュータが搭載されており、それらマイクロコンピュータは携帯電話機に内蔵されている不揮発性メモリに格納されたプログラムに従って動作する。
携帯電話機に搭載されているプログラムは、携帯電話機が多機能化するに従って急速に巨大化し、今や１００万行を超えるプログラムサイズとなっている。また、携帯電話機は出荷台数が極めて多い。
【０００３】
従って、携帯電話機の開発時、製造時、或いは、商品市場投入後のバージョンアップ時に、多数の携帯電話機の不揮発性メモリに膨大なサイズのプログラムを格納しなければならず、プログラム等のデータを高速に不揮発性メモリに格納する技術が希求されている。
このような問題に対して、次のような従来技術が提案されている。すなわち、既に不揮発性メモリに格納されているデータと、これから当該不揮発性メモリに書き込もうとしているデータとを比較して、両者が異なっている部分のみを不揮発性メモリに書き込む、差分書き換えという技術である（例えば、特許文献１を参照されたい。）。
【０００４】
このようにすれば、不揮発性メモリに書き込むデータ量を低減することができるので、データを高速に不揮発性メモリに格納できると期待される。
【特許文献１】特開２００３−６７２８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、実際には、上記従来技術は常に有効という訳ではない、という問題がある。すなわち、場合によっては新たなデータをすべて不揮発性メモリに書き込んだ方が、書き換え時間が短くなることがある。
本願発明は、上述のような問題に鑑みて為されたものであって、不揮発性メモリに格納されているデータを書き換えるために要する時間をより短縮することができる不揮発性メモリ書き換え装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本願発明に係る不揮発性メモリ書き換え装置は、不揮発性メモリに格納されているデータを書き換える不揮発性メモリ書き換え装置であって、前記不揮発性メモリに既に書き込まれている第１のデータと、前記不揮発性メモリに書き込むべき第２のデータとを比較して差異部分を検出するデータ比較手段と、前記データ比較手段にて検出された前記差異部分の前記第２のデータに対する比が７０％を超える場合には、前記第２のデータを前記不揮発性メモリに書き込む全書き換え手段と、前記データ比較手段にて検出された前記差異部分の前記第２のデータに対する比が７０％を超えない場合には、前記差異部分を前記不揮発性メモリに書き込む差分書き換え手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本願発明に係る不揮発性メモリ書き換え装置によれば、上記のような構成により、不揮発性メモリの書き換えに要する時間を短縮することができる。したがって、携帯電話機に内蔵されている不揮発性メモリに格納されるプログラムを書き換える時間を短縮することができるので、携帯電話機のプログラムの開発を効率化して、生産性を向上させることができる。
【０００８】
なお、本願発明においては、前記全書き換え手段と前記差分書き換え手段とがひとつの不揮発性メモリ書き換え手段を共有する場合を含むと解釈されるべきである。
この解釈をとる場合において、前記の比が７０％を超えたら、前記第２のデータを前記不揮発性メモリに書き込むように、前記全書き換え手段にて前記不揮発性メモリ書き換え手段を制御する。また、前記の比が７０％を超えなければ、前記差異部分を前記不揮発性メモリに書き込むように前記差分書き換え手段にて不揮発性メモリ書き換え手段を制御する。
【０００９】
また、前記全書き換え手段と前記差分書き換え手段とは個別に不揮発性メモリ書き換え手段を有する場合も含むと解釈されるべきである。この解釈をとる場合には、前記全書き換え手段と前記差分書き換え手段とは前記の比に応じて、各自の不揮発性メモリ書き換え手段を制御して上記の処理を実行する。
また、本願発明に係る不揮発性メモリ書き換え装置は、前記第１のデータと同一のデータを予め記憶している同一データ記憶手段を備え、前記データ比較手段は、前記同一データ記憶手段にて記憶している第１のデータと同一のデータと前記第２のデータとを比較することを特徴とする。
【００１０】
このようにすれば、前記第１のデータと前記第２のデータとを比較するに際して、第１のデータを前記不揮発性メモリから読み出す必要がないので、これらデータの比較に要する時間を短縮することができ、延いては不揮発性メモリの書き換えに要する時間を短縮することができる。
また、本願発明に係る不揮発性メモリ書き換え装置は、前記不揮発性メモリは携帯電話機に内蔵されている不揮発性メモリであり、前記携帯電話機は、ＲＳ−２３２−Ｃインタフェースにて当該不揮発性メモリ書き換え装置に接続されており、前記全書き換え手段は、前記ＲＳ−２３２−Ｃインタフェースを介して前記第２のデータを書き込むことを特徴とする。
【００１１】
このようにすれば、携帯電話機に内蔵されている不揮発性メモリに格納されるデータを書き換えるために要する時間を短縮することができるので、携帯電話機の開発に要する時間を短縮して、生産性の向上を図ることができる。
また、携帯電話機の利用者に対して携帯電話機のプログラムを更新するサービスを提供するに際しても、当該プログラムを更新するために要する時間を短縮することができるので、当該利用者の待ち時間を短縮することができる。従って、かかるサービスの質を向上させることができる。
【００１２】
また、本願発明に係る不揮発性メモリ書き換え装置は、データを記憶するデータ記憶手段と、前記第１のデータに関する情報を取得する関連情報取得手段と、前記データ記憶手段にて記憶しているデータに関する情報と、前記関連情報取得手段にて取得した情報とを比較して、これらデータが同一か否かを判定する関連情報比較手段と、前記関連情報比較手段にて前記データが同一であると判定された場合には、前記データ比較手段は、前記同一データ記憶手段にて記憶している第１のデータと同一のデータと前記第２のデータとを比較することを特徴とする。
【００１３】
このようにすれば、データ記憶手段にて記憶しているデータが不揮発性メモリに既に格納されているデータと同一でないにも関わらず、差分部分のみを書き換えて、不揮発性メモリに記憶されているデータを破壊したり、無意味なものとしてしまったりするのを回避することができる。
また、本願発明に係る不揮発性メモリ書き換え装置は、不揮発性メモリに格納されているデータを書き換える不揮発性メモリ書き換え装置であって、前記不揮発性メモリに既に書き込まれている第１のデータと、前記不揮発性メモリに書き込むべき第２のデータとを比較して差異部分を検出するデータ比較手段と、前記データ比較手段にて検出された前記差異部分の前記第２のデータに対する比が７０％を超える場合には、前記第２のデータを前記不揮発性メモリに書き込む全書き換え手段と、前記データ比較手段にて検出された前記差異部分の前記第２のデータに対する比が７０％を超えない場合には、前記第１のデータと前記第２のデータとをその先頭から所定データ長ずつ比較して、それぞれについて差異部分を検出する部分データ比較手段と、前記部分データ比較手段にて検出された前記差異部分の前記所定データ長に対する比が３０％を超える場合には、当該比較に係る第２データの部分を前記不揮発性メモリに書き込む部分書き換え手段と前記部分データ比較手段にて検出された前記差異部分の前記所定データ長に対する比が３０％を超えない場合には、前記部分データ比較手段にて検出された前記差異部分を前記不揮発性メモリに書き込む差分書き換え手段とを備えることを特徴とする。
【００１４】
データ間の差異部分は偏在していることが多いので、このようにすれば、更に、書き換え時間を短縮することができる。すなわち、データ全体に関する差分率が同じであっても、部分データに注目してみれば、差分率が大きい箇所があったり、差分率が小さい箇所があったりするのが通常である。
かかる偏りが存在する場合に、差分率が大きい部分データについてはそのすべてを不揮発性メモリに書き込み、また、差分率が小さい部分データについては差異部分のみを書き込むとすれば、更に書き換え時間を短縮することができる。なお、この場合において、前記所定データ長は６４キロバイトであるとすれば好適である。
【００１５】
なお、本願発明においては、前記全書き換え手段、前記部分書き換え手段及び前記差分書き換え手段がひとつの不揮発性メモリ書き換え手段を共有する場合を含むと解釈されるべきである。
この解釈をとる場合において、前記全書き換え手段、前記部分書き換え手段及び前記差分書き換え手段は、前記の比に応じて、前記不揮発性メモリ書き換え手段を制御し、上述の処理を実行する。
【００１６】
また、前記全書き換え手段、前記部分書き換え手段及び前記差分書き換え手段は個別に不揮発性メモリ書き換え手段を有する場合も含むと解釈されるべきである。この解釈をとる場合には、これら手段は前記の比に応じて、各自の不揮発性メモリ書き換え手段を制御して上記の処理を実行する。
また、本願発明に係る不揮発性メモリ書き換え装置は、前記第１のデータと同一のデータを予め記憶している同一データ記憶手段を備え、前記データ比較手段と前記部分データ比較手段とは、前記同一データ記憶手段にて記憶している第１のデータと同一のデータと前記第２のデータとを比較することを特徴とする。
【００１７】
このようにすれば、第１のデータと第２のデータの差異部分を予め特定し、また、差分率を予め求めておくことができるので、不揮発性メモリの書き換え時間を更に短縮することができる。
また、本願発明に係る不揮発性メモリ書き換え装置は、データを記憶するデータ記憶手段と、前記第１のデータに関する情報を取得する関連情報取得手段と、前記データ記憶手段にて記憶しているデータに関する情報と、前記関連情報取得手段にて取得した情報とを比較して、これらデータが同一か否かを判定する関連情報比較手段と、前記関連情報比較手段にて前記データが同一であると判定された場合には、前記データ比較手段と前記部分データ比較手段とは、前記同一データ記憶手段にて記憶している第１のデータと同一のデータと前記第２のデータとを比較することを特徴とする。
【００１８】
このようにすれば、データ記憶手段にて記憶しているデータが第１のデータと同一でないにも関わらず、差分部分のみを書き換えて、不揮発性メモリに記憶されているデータを破壊したり、無意味なものとしてしまったりするのを回避することができる。
また、本願発明に係る不揮発性メモリ書き換え装置は、前記不揮発性メモリは携帯電話機に内蔵されている不揮発性メモリであり、前記携帯電話機は、ＲＳ−２３２−Ｃインタフェースにて当該不揮発性メモリ書き換え装置に接続されており、前記全書き換え手段、部分書き換え手段および差分書き換え手段は、前記ＲＳ−２３２−Ｃインタフェースを介して前記第２のデータを書き込むことを特徴とする。
【００１９】
このようにすれば、携帯電話機に内蔵されている不揮発性メモリに格納されるデータを書き換えるために要する時間を短縮することができるので、携帯電話機の開発に要する時間を短縮して、生産性の向上を図ることができる。また、この場合において、前記携帯電話機が備えるＲＳ−２３２−Ｃインタフェースの受信バッファサイズは２５６バイトとすれば尚、好適である。
【発明を実施するための最良の形態】
【００２０】
以下、本願発明に係る不揮発性メモリ書き換え装置の実施の形態について、不揮発性メモリ書き換えシステムを例にとり、図面を参照しながら説明する。
［１］  不揮発性メモリ書き換えシステムの構成
図１は、本実施の形態に係る不揮発性メモリ書き換えシステムの機器構成を示す機器構成図である。図１に示されるように、不揮発性メモリ書き換えシステム１は、パーソナル・コンピュータ１０、シリアルケーブル１１、および、携帯電話機１２からなっている。
【００２１】
携帯電話機１２は不揮発性メモリを内蔵しており、当該不揮発性メモリに格納されているプログラムに従って動作する。
パーソナル・コンピュータ１０は、携帯電話機１２の不揮発性メモリに格納されているプログラムと同一のプログラムと、当該不揮発性メモリに新たに格納すべきプログラムとの両方を、その記憶装置（例えば、ハードディスクドライブ。）に格納している。
【００２２】
パーソナル・コンピュータ１０は、記憶装置に格納されている前記ふたつのプログラムを比較して、それらの間の差異の程度を評価する。そして、パーソナル・コンピュータ１０は、ＲＳ−２３２−Ｃ（recommended standard-232-C）規格に従って、携帯電話機１２に必要なデータを送信し、携帯電話機１２が内蔵する不揮発性メモリにプログラムを書き込む。
【００２３】
［２］  パーソナル・コンピュータ１０の動作
次に、パーソナル・コンピュータ１０の動作について説明する。
（１）  全体の流れ
図２は、携帯電話機１２の不揮発性メモリにプログラムを書き込む際に、パーソナル・コンピュータ１０が実行する処理の流れを示すフローチャートである。
【００２４】
図２に示されるように、パーソナル・コンピュータ１０は、先ず、自己の記憶装置を参照して、携帯電話機１２の不揮発性メモリに格納されているプログラムと同一のプログラムと、当該不揮発性メモリに新たに格納すべきプログラムとを１バイトずつ比較して、それらの差異の程度を評価する（ステップＳ１００）。
例えば、携帯電話機の不揮発性メモリに新たに格納すべきプログラムのデータ量が１０メガバイトであって、両プログラムの差異部分のデータ量の合計が５メガバイトである場合には、両プログラムの差異の程度を５メガバイト÷１０メガバイト＝５０％と評価する。
【００２５】
両プログラムの差異が７０％以上である場合には（ステップＳ１０１：ＹＥＳ）、全書き換え処理を実行する（ステップＳ１０８）。すなわち、前記不揮発性メモリに新たに格納すべきプログラムをすべて携帯電話機１２に転送して、その不揮発性メモリに書き込ませて、書き換え処理を終了する。
両プログラムの差異が７０％未満である場合には（ステップＳ１０１：ＮＯ）、先ず、変数ｉの値を１に初期化する（ステップＳ１０２）。そして、両プログラムそれぞれの第ｉ番目のブロックどうしを１バイトずつ比較して、それらの間の差異を求める（ステップＳ１０３）。
【００２６】
この場合において、パーソナル・コンピュータ１０は、プログラムを先頭から６４キロバイト毎に区分してブロックとして、先頭のブロックから順に１、２、３、、、Ｎと番号を割り当てて、Ｎ個のブロックについて先頭から順に差異を計算する。なお、第Ｎ番目のブロックのデータ量は６４キロバイトを下回っても良い。
また、ブロック毎の差異を求める場合も、新たに格納すべきプログラムに属するブロックのデータ量に対する差異部分のデータ量の比を用いる。
【００２７】
さて、第ｉ番目のブロックの差異が３０％以上である場合には（ステップＳ１０４：ＹＥＳ）、パーソナル・コンピュータ１０は、ブロック書き換え処理を実行する（ステップＳ１０９）。すなわち、パーソナル・コンピュータ１０は、新たに格納すべきプログラムの第ｉ番目のブロックをすべて携帯電話機１２に転送して、その不揮発性メモリに書き込ませる。
【００２８】
逆に、第ｉ番目のブロックの差異が３０％未満である場合には（ステップＳ１０４：ＮＯ）、パーソナル・コンピュータ１０は、差分書き換え処理を実行する（ステップＳ１０５）。
ステップＳ１０５、又はステップＳ１０９の処理の後、パーソナル・コンピュータ１０は変数ｉの値を１だけ増加させる（ステップＳ１０６）。そして、変数ｉの値と前記プログラムの全ブロック数Ｎとを比較して、変数ｉの値が全ブロック数Ｎよりも大きい場合には（ステップＳ１０７：ＹＥＳ）、書き換え処理を終了する。
【００２９】
変数ｉの値が全ブロック数Ｎに等しいか、小さい場合には（ステップＳ１０７：ＮＯ）、ステップＳ１０３に進んで上述のような処理を繰り返す。
（２）  全書き換え処理（ステップＳ１０８）
次に、前記全書き換え処理について説明する。パーソナル・コンピュータ１０は、全書き換え処理に際して、新たに格納すべきプログラムを２５６バイトずつ携帯電話機１２に転送する。これは、携帯電話機１２のＲＳ２３２Ｃインタフェースが備えている受信バッファのサイズが２５６バイトであるためである。
【００３０】
携帯電話機１２は、パーソナル・コンピュータ１０から受信したプログラムをすべて揮発性メモリに格納した後、ブロック単位で不揮発性メモリに書き込むとしても良い。或いは、携帯電話機１２は、パーソナル・コンピュータ１０から１ブロック分、６４キロバイトのプログラムを受信する毎に不揮発性メモリに書き込むとしても良い。
（３）  ブロック書き換え処理（ステップＳ１０９）
ブロック書き換え処理の場合も全書き換え処理の場合と同様に、パーソナル・コンピュータ１０は、新たに格納すべきプログラムを、上述のようにして携帯電話機１２に転送する。携帯電話機１２は、パーソナル・コンピュータ１０から受信したプログラムを一旦すべて揮発性メモリに格納した後、不揮発性メモリに書き込む。
【００３１】
（４）  差分書き換え処理（ステップＳ１０５）
差分書き換え処理の場合には、パーソナル・コンピュータ１０は、書き換える部分のプログラムを順次、携帯電話機１２に転送する。この場合も、一度に転送するデータ量は２５６バイトである。また、書き換えるプログラムの指定は１バイト単位で行うことができる。
【００３２】
すなわち、先ず、（１）差分書き換え処理の対象であるブロックの先頭から順に１バイトずつ比較を行って差異部分を探し、（２）差異部分を発見したら、当該差異部分の末尾を探す。そして、（３）差異部分の末尾を発見したら、当該差異部分にその先頭アドレスとサイズを添付して携帯電話機１２に転送する。パーソナル・コンピュータ１０は、当該ブロックの末尾に至るまで上記の処理を繰り返す。
【００３３】
また、差異部分の末尾を発見する前に、差異部分のサイズが２５６バイトに達した場合には、当該差異部分の先頭から２５６バイトに達した箇所までを携帯電話機１２に転送し、当該差異部分の引き続く箇所を新たに差異部分の先頭として上記（１）〜（３）の処理を実行する。
［３］  閾値の決定方法
上述のように、本実施の形態においては、ふたつの閾値を基準としてプログラムの書き込み方法を選択する。以下、これら閾値の決定方法について説明する。
【００３４】
（１）  全体の閾値
プログラム全体について書き換え方法を選択するための閾値を決定するために以下のような実験を行った。すなわち、１６メガバイトのプログラムについて差分率を種々変更し、その各々について差分書き換え時間を計測した。また、同プログラムについて全書き換えに要する時間を計測した後、これらを比較して、一方の書き換え方法が他方の書き換え方法よりも有利となる分岐点を調べた。
【００３５】
なお、差分書き換え時間を測定する場合においては、先ず、１６メガバイトのプログラムを先頭から２５６バイトずつ部分プログラムに分割する。そして、部分プログラム毎にその先頭から差分率に応じて定まるデータ量を差異部分とする。例えば、差分率が５０％である場合には、先頭から１２８バイトを差異部分として転送する。
下表は、上記の実験によって得られた差分率（１０％〜９０％）毎の差分書き込み時間（秒）を示すものである。
【００３６】
【表１】
2005128894.tif 000003
上表に示されるように、差分書き換え時間は、差分率が１０％から９０％へ増加するにつれて、３．３１秒から１２．１８秒へと増加する。
一方、上記の実験によって得られた同プログラムの全書き換え時間は、１０．１５秒であった。これと上表の各差分書き換え時間とを比較すると、差分率が７０％の場合には差分書き換え時間が１０．０７秒であり前記全書き換え時間よりも短い。一方、差分率が８０％の場合には差分書き換え時間が１１．１２秒であり前記全書き換え時間よりも長い。
【００３７】
したがって、差分率が７０％以下である場合には差分書き換えをし、差分率が７０％を超える場合には全書き換えをすれば、プログラムの書き換え時間を短縮することができる。
（２）  ブロックの閾値
次に、ブロック単位の書き換え方法を選択するための閾値を決定するために以下のような実験を行った。すなわち、１ブロック（６４キロバイト）分のプログラムの差分書き換え時間と全書き換えに要する時間を計測、比較して、一方の書き換え方法が他方の書き換え方法よりも有利となる分岐点を調べた。
【００３８】
なお、差分書き換え時間を測定する場合においては、上記と同様に、１６メガバイトのプログラムを先頭から２５６バイトずつ部分プログラムに分割し、部分プログラム毎にその先頭から差分率に応じて定まるデータ量を差異部分とした。下表は、上記の実験によって得られた差分率（１５％〜４０％）毎の差分書き込み時間（ミリ秒）を示すものである。
【００３９】
【表２】
2005128894.tif 000004
また、全書き換え時間は、６．９３７ミリ秒であった。
全書き換え時間と上表の各差分書き換え時間とを比較すると、差分率が３０％以下である場合には差分書き換えをし、差分率が３０％を超える場合には全書き換えをすれば、プログラムの書き換え時間を短縮することができることが分かった。
【００４０】
［４］  変形例
以上、本願発明を実施の形態に基づいて説明してきたが、本願発明が上述の実施の形態に限定されないのは勿論であり、以下のような変形例を実施することができる。
（１）  上記実施の形態においては特に言及しなかったが、携帯電話機１２の不揮発性メモリに格納されているプログラムと同一のプログラムと、携帯電話機１２の不揮発性メモリに新たに格納すべきプログラムとを比較して差分率を検出するのに先立って、次のようにするとしても良い。
【００４１】
すなわち、携帯電話機１２の不揮発性メモリに格納されているプログラムと、パーソナル・コンピュータ１０の記憶装置に格納されているプログラムとの同一性を確認するとしても良い。
この場合において、パーソナル・コンピュータ１０は、先ず、携帯電話機１２から、前記プログラムのバージョン、作成日およびデータ領域のＣＲＣ（cyclic redundancy code）を取得し、自己の記憶装置に格納されているプログラムのバージョン、作成日およびデータ領域のＣＲＣと比較して、両プログラムの同一性を確認するとしても良い。
【００４２】
そして、当該確認によって両プログラムが同一であると判断された場合には、上記実施の形態にて説明したような書き換え処理を実行すれば良い。また、同一でないと判断された場合には、パーソナル・コンピュータ１０はその旨を表示して、書き換え処理を実行することなく、処理を修了するとしても良い。
（２）  上記実施の形態においては、閾値を決定するに当って、プログラムを先頭から２５６バイトずつ部分プログラムに分割して、部分プログラム毎にその先頭から差分率に応じて定まるデータ量を差異部分とするとしたが、本願発明がこれに限定されないのは言うまでも無く、次のようにするとしても良い。
【００４３】
すなわち、先頭から差分率に応じて定まるデータ量を差異部分とするのに代えて、先頭から所定番目のバイトを差異部分としても良い。例えば、差分率が５０％である場合には、先頭から偶数番目のバイトを差異部分とするなどである。
また、乱数を用いて差異部分を決定するとしても良い。例えば、差分率が５０％である場合には、バイト毎に０から１までの範囲の値をとる一様乱数を用いて、乱数値が０．５を超える場合には当該バイトを差異部分とし、超えない場合には当該バイトを差異部分で無いとしても良い。この場合において、末尾バイトに至っても差分率が所定値に満たない場合には、再度先頭から処理を繰り返すとしても良い。
【００４４】
また、同一の差分率について、上記のようなに様々な差異部分について書き換え時間を実測し、それらの平均値を以て書き換え時間としても良い。また、実測によりえられた書き換え時間が、同一の差分率に係る他の書き換え時間とは著しく異なっている書き換え時間については、平均値を求める際に除外するとしても良い。
（３）  上記実施の形態においては、全体の閾値と７０％とし、ブロックの閾値を３０％としたが、本願発明がこれに限定されないのは言うまでも無く、閾値としてこれら以外の値を用いるとしても良い。
【００４５】
実際のプログラムに生じる差異部分は、不規則に分布しているのが通常であり、プログラム内で均一に分散することもなければ、完全に１箇所にまとまってもいないことが多い。したがって、分布の仕方によって閾値を変更するとすれば、更に好適である。
例えば、差異部分の分布のばらつきが大きい場合には、より低い閾値を採用し、ばらつきが小さい場合には、より高い閾値を採用するとしても良い。
【００４６】
また、閾値として固定値を用いる場合には、上記実施の形態にて述べた閾値に近い値を採用するのが望ましい。なぜなら、差異部分の分布のばらつきによる影響はあるが、書き換え時間は概ね差分率に従って増減するものであり、上記の閾値に近い値を用いれば、上記実施の形態に近い効果を得ることができるからである。
（４）  上記実施の形態においては、特に言及しなかったが、プログラム間の差異率やプログラムのブロック間の差異率、或いは、差異部分のアドレスやデータ長は、予め求めておくとしても良い。
【００４７】
このようにすれば、例えば、旧バージョンのプログラムをインストールされた携帯電話機が複数台あって、かつ、これらの携帯電話機に新バージョンのプログラムをインストールしなければならない場合に、携帯電話機毎に差異率や差異部分等を求める必要がなくなるので、プログラムのバージョンアップに要する作業時間を短縮して、開発効率を向上させることができる。
【産業上の利用可能性】
【００４８】
本願発明に係る不揮発性メモリ書き換え装置は、不揮発性メモリにデータを格納するために要する時間を短縮する技術として有用である。
【図面の簡単な説明】
【００４９】
【図１】本願発明の実施の形態に係る不揮発性メモリ書き換えシステムの機器構成を示す機器構成図である。
【図２】携帯電話機１２の不揮発性メモリにプログラムを書き込む際に、パーソナル・コンピュータ１０が実行する処理の流れを示すフローチャートである。
【符号の説明】
【００５０】
１……不揮発性メモリ書き換えシステム
１０…パーソナル・コンピュータ
１１…シリアルケーブル
１２…携帯電話機
【図１】
2005128894.tif 000005
【図２】
2005128894.tif 000006