JP2005128894A - 不揮発性メモリ書き換え装置 - Google Patents
不揮発性メモリ書き換え装置 Download PDFInfo
- Publication number
- JP2005128894A JP2005128894A JP2003365214A JP2003365214A JP2005128894A JP 2005128894 A JP2005128894 A JP 2005128894A JP 2003365214 A JP2003365214 A JP 2003365214A JP 2003365214 A JP2003365214 A JP 2003365214A JP 2005128894 A JP2005128894 A JP 2005128894A
- Authority
- JP
- Japan
- Prior art keywords
- data
- nonvolatile memory
- rewriting
- same
- difference
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Read Only Memory (AREA)
- Stored Programmes (AREA)
Abstract
【課題】 不揮発性メモリの書き換え時間を常に最短に抑える不揮発性メモリ書き換え装置を提供する。
【解決手段】 不揮発性メモリに格納されている旧データと新データとの差異を求め(S100)、差異が70%以上なら(S101:YES)、新データをすべて不揮発性メモリに書き込んで処理を終了する(S108)。差異が70%未満なら(S101:NO)、変数iの値を1として(S102)、両データの第i番目のブロックどうしの差異を求め(S103)、差異が30%以上ならば(S104:YES)、新データの第i番目のブロックをすべて不揮発性メモリに書き込む(S109)。差異が30%未満なら(S104:NO)、差異部分のみを不揮発性メモリに書き込む(S105)。そして、変数iの値を1だけ増加させ(S106)、全ブロック数N以下なら処理を継続し(S107:NO)、さもなければ終了する(S107:YES)。
【選択図】 図2
【解決手段】 不揮発性メモリに格納されている旧データと新データとの差異を求め(S100)、差異が70%以上なら(S101:YES)、新データをすべて不揮発性メモリに書き込んで処理を終了する(S108)。差異が70%未満なら(S101:NO)、変数iの値を1として(S102)、両データの第i番目のブロックどうしの差異を求め(S103)、差異が30%以上ならば(S104:YES)、新データの第i番目のブロックをすべて不揮発性メモリに書き込む(S109)。差異が30%未満なら(S104:NO)、差異部分のみを不揮発性メモリに書き込む(S105)。そして、変数iの値を1だけ増加させ(S106)、全ブロック数N以下なら処理を継続し(S107:NO)、さもなければ終了する(S107:YES)。
【選択図】 図2
Description
本願発明は、不揮発性メモリにデータを格納する技術に関し、特に、不揮発性メモリにデータを格納するために要する時間を短縮する技術に関する。
近年、世界的な普及をみた携帯電話機には、何れも例外無くマイクロコンピュータが搭載されており、それらマイクロコンピュータは携帯電話機に内蔵されている不揮発性メモリに格納されたプログラムに従って動作する。
携帯電話機に搭載されているプログラムは、携帯電話機が多機能化するに従って急速に巨大化し、今や100万行を超えるプログラムサイズとなっている。また、携帯電話機は出荷台数が極めて多い。
携帯電話機に搭載されているプログラムは、携帯電話機が多機能化するに従って急速に巨大化し、今や100万行を超えるプログラムサイズとなっている。また、携帯電話機は出荷台数が極めて多い。
従って、携帯電話機の開発時、製造時、或いは、商品市場投入後のバージョンアップ時に、多数の携帯電話機の不揮発性メモリに膨大なサイズのプログラムを格納しなければならず、プログラム等のデータを高速に不揮発性メモリに格納する技術が希求されている。
このような問題に対して、次のような従来技術が提案されている。すなわち、既に不揮発性メモリに格納されているデータと、これから当該不揮発性メモリに書き込もうとしているデータとを比較して、両者が異なっている部分のみを不揮発性メモリに書き込む、差分書き換えという技術である(例えば、特許文献1を参照されたい。)。
このような問題に対して、次のような従来技術が提案されている。すなわち、既に不揮発性メモリに格納されているデータと、これから当該不揮発性メモリに書き込もうとしているデータとを比較して、両者が異なっている部分のみを不揮発性メモリに書き込む、差分書き換えという技術である(例えば、特許文献1を参照されたい。)。
このようにすれば、不揮発性メモリに書き込むデータ量を低減することができるので、データを高速に不揮発性メモリに格納できると期待される。
特開2003−67283号公報
しかしながら、実際には、上記従来技術は常に有効という訳ではない、という問題がある。すなわち、場合によっては新たなデータをすべて不揮発性メモリに書き込んだ方が、書き換え時間が短くなることがある。
本願発明は、上述のような問題に鑑みて為されたものであって、不揮発性メモリに格納されているデータを書き換えるために要する時間をより短縮することができる不揮発性メモリ書き換え装置を提供することを目的とする。
本願発明は、上述のような問題に鑑みて為されたものであって、不揮発性メモリに格納されているデータを書き換えるために要する時間をより短縮することができる不揮発性メモリ書き換え装置を提供することを目的とする。
上記目的を達成するため、本願発明に係る不揮発性メモリ書き換え装置は、不揮発性メモリに格納されているデータを書き換える不揮発性メモリ書き換え装置であって、前記不揮発性メモリに既に書き込まれている第1のデータと、前記不揮発性メモリに書き込むべき第2のデータとを比較して差異部分を検出するデータ比較手段と、前記データ比較手段にて検出された前記差異部分の前記第2のデータに対する比が70%を超える場合には、前記第2のデータを前記不揮発性メモリに書き込む全書き換え手段と、前記データ比較手段にて検出された前記差異部分の前記第2のデータに対する比が70%を超えない場合には、前記差異部分を前記不揮発性メモリに書き込む差分書き換え手段とを備えることを特徴とする。
本願発明に係る不揮発性メモリ書き換え装置によれば、上記のような構成により、不揮発性メモリの書き換えに要する時間を短縮することができる。したがって、携帯電話機に内蔵されている不揮発性メモリに格納されるプログラムを書き換える時間を短縮することができるので、携帯電話機のプログラムの開発を効率化して、生産性を向上させることができる。
なお、本願発明においては、前記全書き換え手段と前記差分書き換え手段とがひとつの不揮発性メモリ書き換え手段を共有する場合を含むと解釈されるべきである。
この解釈をとる場合において、前記の比が70%を超えたら、前記第2のデータを前記不揮発性メモリに書き込むように、前記全書き換え手段にて前記不揮発性メモリ書き換え手段を制御する。また、前記の比が70%を超えなければ、前記差異部分を前記不揮発性メモリに書き込むように前記差分書き換え手段にて不揮発性メモリ書き換え手段を制御する。
この解釈をとる場合において、前記の比が70%を超えたら、前記第2のデータを前記不揮発性メモリに書き込むように、前記全書き換え手段にて前記不揮発性メモリ書き換え手段を制御する。また、前記の比が70%を超えなければ、前記差異部分を前記不揮発性メモリに書き込むように前記差分書き換え手段にて不揮発性メモリ書き換え手段を制御する。
また、前記全書き換え手段と前記差分書き換え手段とは個別に不揮発性メモリ書き換え手段を有する場合も含むと解釈されるべきである。この解釈をとる場合には、前記全書き換え手段と前記差分書き換え手段とは前記の比に応じて、各自の不揮発性メモリ書き換え手段を制御して上記の処理を実行する。
また、本願発明に係る不揮発性メモリ書き換え装置は、前記第1のデータと同一のデータを予め記憶している同一データ記憶手段を備え、前記データ比較手段は、前記同一データ記憶手段にて記憶している第1のデータと同一のデータと前記第2のデータとを比較することを特徴とする。
また、本願発明に係る不揮発性メモリ書き換え装置は、前記第1のデータと同一のデータを予め記憶している同一データ記憶手段を備え、前記データ比較手段は、前記同一データ記憶手段にて記憶している第1のデータと同一のデータと前記第2のデータとを比較することを特徴とする。
このようにすれば、前記第1のデータと前記第2のデータとを比較するに際して、第1のデータを前記不揮発性メモリから読み出す必要がないので、これらデータの比較に要する時間を短縮することができ、延いては不揮発性メモリの書き換えに要する時間を短縮することができる。
また、本願発明に係る不揮発性メモリ書き換え装置は、前記不揮発性メモリは携帯電話機に内蔵されている不揮発性メモリであり、前記携帯電話機は、RS−232−Cインタフェースにて当該不揮発性メモリ書き換え装置に接続されており、前記全書き換え手段は、前記RS−232−Cインタフェースを介して前記第2のデータを書き込むことを特徴とする。
また、本願発明に係る不揮発性メモリ書き換え装置は、前記不揮発性メモリは携帯電話機に内蔵されている不揮発性メモリであり、前記携帯電話機は、RS−232−Cインタフェースにて当該不揮発性メモリ書き換え装置に接続されており、前記全書き換え手段は、前記RS−232−Cインタフェースを介して前記第2のデータを書き込むことを特徴とする。
このようにすれば、携帯電話機に内蔵されている不揮発性メモリに格納されるデータを書き換えるために要する時間を短縮することができるので、携帯電話機の開発に要する時間を短縮して、生産性の向上を図ることができる。
また、携帯電話機の利用者に対して携帯電話機のプログラムを更新するサービスを提供するに際しても、当該プログラムを更新するために要する時間を短縮することができるので、当該利用者の待ち時間を短縮することができる。従って、かかるサービスの質を向上させることができる。
また、携帯電話機の利用者に対して携帯電話機のプログラムを更新するサービスを提供するに際しても、当該プログラムを更新するために要する時間を短縮することができるので、当該利用者の待ち時間を短縮することができる。従って、かかるサービスの質を向上させることができる。
また、本願発明に係る不揮発性メモリ書き換え装置は、データを記憶するデータ記憶手段と、前記第1のデータに関する情報を取得する関連情報取得手段と、前記データ記憶手段にて記憶しているデータに関する情報と、前記関連情報取得手段にて取得した情報とを比較して、これらデータが同一か否かを判定する関連情報比較手段と、前記関連情報比較手段にて前記データが同一であると判定された場合には、前記データ比較手段は、前記同一データ記憶手段にて記憶している第1のデータと同一のデータと前記第2のデータとを比較することを特徴とする。
このようにすれば、データ記憶手段にて記憶しているデータが不揮発性メモリに既に格納されているデータと同一でないにも関わらず、差分部分のみを書き換えて、不揮発性メモリに記憶されているデータを破壊したり、無意味なものとしてしまったりするのを回避することができる。
また、本願発明に係る不揮発性メモリ書き換え装置は、不揮発性メモリに格納されているデータを書き換える不揮発性メモリ書き換え装置であって、前記不揮発性メモリに既に書き込まれている第1のデータと、前記不揮発性メモリに書き込むべき第2のデータとを比較して差異部分を検出するデータ比較手段と、前記データ比較手段にて検出された前記差異部分の前記第2のデータに対する比が70%を超える場合には、前記第2のデータを前記不揮発性メモリに書き込む全書き換え手段と、前記データ比較手段にて検出された前記差異部分の前記第2のデータに対する比が70%を超えない場合には、前記第1のデータと前記第2のデータとをその先頭から所定データ長ずつ比較して、それぞれについて差異部分を検出する部分データ比較手段と、前記部分データ比較手段にて検出された前記差異部分の前記所定データ長に対する比が30%を超える場合には、当該比較に係る第2データの部分を前記不揮発性メモリに書き込む部分書き換え手段と前記部分データ比較手段にて検出された前記差異部分の前記所定データ長に対する比が30%を超えない場合には、前記部分データ比較手段にて検出された前記差異部分を前記不揮発性メモリに書き込む差分書き換え手段とを備えることを特徴とする。
また、本願発明に係る不揮発性メモリ書き換え装置は、不揮発性メモリに格納されているデータを書き換える不揮発性メモリ書き換え装置であって、前記不揮発性メモリに既に書き込まれている第1のデータと、前記不揮発性メモリに書き込むべき第2のデータとを比較して差異部分を検出するデータ比較手段と、前記データ比較手段にて検出された前記差異部分の前記第2のデータに対する比が70%を超える場合には、前記第2のデータを前記不揮発性メモリに書き込む全書き換え手段と、前記データ比較手段にて検出された前記差異部分の前記第2のデータに対する比が70%を超えない場合には、前記第1のデータと前記第2のデータとをその先頭から所定データ長ずつ比較して、それぞれについて差異部分を検出する部分データ比較手段と、前記部分データ比較手段にて検出された前記差異部分の前記所定データ長に対する比が30%を超える場合には、当該比較に係る第2データの部分を前記不揮発性メモリに書き込む部分書き換え手段と前記部分データ比較手段にて検出された前記差異部分の前記所定データ長に対する比が30%を超えない場合には、前記部分データ比較手段にて検出された前記差異部分を前記不揮発性メモリに書き込む差分書き換え手段とを備えることを特徴とする。
データ間の差異部分は偏在していることが多いので、このようにすれば、更に、書き換え時間を短縮することができる。すなわち、データ全体に関する差分率が同じであっても、部分データに注目してみれば、差分率が大きい箇所があったり、差分率が小さい箇所があったりするのが通常である。
かかる偏りが存在する場合に、差分率が大きい部分データについてはそのすべてを不揮発性メモリに書き込み、また、差分率が小さい部分データについては差異部分のみを書き込むとすれば、更に書き換え時間を短縮することができる。なお、この場合において、前記所定データ長は64キロバイトであるとすれば好適である。
かかる偏りが存在する場合に、差分率が大きい部分データについてはそのすべてを不揮発性メモリに書き込み、また、差分率が小さい部分データについては差異部分のみを書き込むとすれば、更に書き換え時間を短縮することができる。なお、この場合において、前記所定データ長は64キロバイトであるとすれば好適である。
なお、本願発明においては、前記全書き換え手段、前記部分書き換え手段及び前記差分書き換え手段がひとつの不揮発性メモリ書き換え手段を共有する場合を含むと解釈されるべきである。
この解釈をとる場合において、前記全書き換え手段、前記部分書き換え手段及び前記差分書き換え手段は、前記の比に応じて、前記不揮発性メモリ書き換え手段を制御し、上述の処理を実行する。
この解釈をとる場合において、前記全書き換え手段、前記部分書き換え手段及び前記差分書き換え手段は、前記の比に応じて、前記不揮発性メモリ書き換え手段を制御し、上述の処理を実行する。
また、前記全書き換え手段、前記部分書き換え手段及び前記差分書き換え手段は個別に不揮発性メモリ書き換え手段を有する場合も含むと解釈されるべきである。この解釈をとる場合には、これら手段は前記の比に応じて、各自の不揮発性メモリ書き換え手段を制御して上記の処理を実行する。
また、本願発明に係る不揮発性メモリ書き換え装置は、前記第1のデータと同一のデータを予め記憶している同一データ記憶手段を備え、前記データ比較手段と前記部分データ比較手段とは、前記同一データ記憶手段にて記憶している第1のデータと同一のデータと前記第2のデータとを比較することを特徴とする。
また、本願発明に係る不揮発性メモリ書き換え装置は、前記第1のデータと同一のデータを予め記憶している同一データ記憶手段を備え、前記データ比較手段と前記部分データ比較手段とは、前記同一データ記憶手段にて記憶している第1のデータと同一のデータと前記第2のデータとを比較することを特徴とする。
このようにすれば、第1のデータと第2のデータの差異部分を予め特定し、また、差分率を予め求めておくことができるので、不揮発性メモリの書き換え時間を更に短縮することができる。
また、本願発明に係る不揮発性メモリ書き換え装置は、データを記憶するデータ記憶手段と、前記第1のデータに関する情報を取得する関連情報取得手段と、前記データ記憶手段にて記憶しているデータに関する情報と、前記関連情報取得手段にて取得した情報とを比較して、これらデータが同一か否かを判定する関連情報比較手段と、前記関連情報比較手段にて前記データが同一であると判定された場合には、前記データ比較手段と前記部分データ比較手段とは、前記同一データ記憶手段にて記憶している第1のデータと同一のデータと前記第2のデータとを比較することを特徴とする。
また、本願発明に係る不揮発性メモリ書き換え装置は、データを記憶するデータ記憶手段と、前記第1のデータに関する情報を取得する関連情報取得手段と、前記データ記憶手段にて記憶しているデータに関する情報と、前記関連情報取得手段にて取得した情報とを比較して、これらデータが同一か否かを判定する関連情報比較手段と、前記関連情報比較手段にて前記データが同一であると判定された場合には、前記データ比較手段と前記部分データ比較手段とは、前記同一データ記憶手段にて記憶している第1のデータと同一のデータと前記第2のデータとを比較することを特徴とする。
このようにすれば、データ記憶手段にて記憶しているデータが第1のデータと同一でないにも関わらず、差分部分のみを書き換えて、不揮発性メモリに記憶されているデータを破壊したり、無意味なものとしてしまったりするのを回避することができる。
また、本願発明に係る不揮発性メモリ書き換え装置は、前記不揮発性メモリは携帯電話機に内蔵されている不揮発性メモリであり、前記携帯電話機は、RS−232−Cインタフェースにて当該不揮発性メモリ書き換え装置に接続されており、前記全書き換え手段、部分書き換え手段および差分書き換え手段は、前記RS−232−Cインタフェースを介して前記第2のデータを書き込むことを特徴とする。
また、本願発明に係る不揮発性メモリ書き換え装置は、前記不揮発性メモリは携帯電話機に内蔵されている不揮発性メモリであり、前記携帯電話機は、RS−232−Cインタフェースにて当該不揮発性メモリ書き換え装置に接続されており、前記全書き換え手段、部分書き換え手段および差分書き換え手段は、前記RS−232−Cインタフェースを介して前記第2のデータを書き込むことを特徴とする。
このようにすれば、携帯電話機に内蔵されている不揮発性メモリに格納されるデータを書き換えるために要する時間を短縮することができるので、携帯電話機の開発に要する時間を短縮して、生産性の向上を図ることができる。また、この場合において、前記携帯電話機が備えるRS−232−Cインタフェースの受信バッファサイズは256バイトとすれば尚、好適である。
以下、本願発明に係る不揮発性メモリ書き換え装置の実施の形態について、不揮発性メモリ書き換えシステムを例にとり、図面を参照しながら説明する。
[1] 不揮発性メモリ書き換えシステムの構成
図1は、本実施の形態に係る不揮発性メモリ書き換えシステムの機器構成を示す機器構成図である。図1に示されるように、不揮発性メモリ書き換えシステム1は、パーソナル・コンピュータ10、シリアルケーブル11、および、携帯電話機12からなっている。
[1] 不揮発性メモリ書き換えシステムの構成
図1は、本実施の形態に係る不揮発性メモリ書き換えシステムの機器構成を示す機器構成図である。図1に示されるように、不揮発性メモリ書き換えシステム1は、パーソナル・コンピュータ10、シリアルケーブル11、および、携帯電話機12からなっている。
携帯電話機12は不揮発性メモリを内蔵しており、当該不揮発性メモリに格納されているプログラムに従って動作する。
パーソナル・コンピュータ10は、携帯電話機12の不揮発性メモリに格納されているプログラムと同一のプログラムと、当該不揮発性メモリに新たに格納すべきプログラムとの両方を、その記憶装置(例えば、ハードディスクドライブ。)に格納している。
パーソナル・コンピュータ10は、携帯電話機12の不揮発性メモリに格納されているプログラムと同一のプログラムと、当該不揮発性メモリに新たに格納すべきプログラムとの両方を、その記憶装置(例えば、ハードディスクドライブ。)に格納している。
パーソナル・コンピュータ10は、記憶装置に格納されている前記ふたつのプログラムを比較して、それらの間の差異の程度を評価する。そして、パーソナル・コンピュータ10は、RS−232−C(recommended standard-232-C)規格に従って、携帯電話機12に必要なデータを送信し、携帯電話機12が内蔵する不揮発性メモリにプログラムを書き込む。
[2] パーソナル・コンピュータ10の動作
次に、パーソナル・コンピュータ10の動作について説明する。
(1) 全体の流れ
図2は、携帯電話機12の不揮発性メモリにプログラムを書き込む際に、パーソナル・コンピュータ10が実行する処理の流れを示すフローチャートである。
次に、パーソナル・コンピュータ10の動作について説明する。
(1) 全体の流れ
図2は、携帯電話機12の不揮発性メモリにプログラムを書き込む際に、パーソナル・コンピュータ10が実行する処理の流れを示すフローチャートである。
図2に示されるように、パーソナル・コンピュータ10は、先ず、自己の記憶装置を参照して、携帯電話機12の不揮発性メモリに格納されているプログラムと同一のプログラムと、当該不揮発性メモリに新たに格納すべきプログラムとを1バイトずつ比較して、それらの差異の程度を評価する(ステップS100)。
例えば、携帯電話機の不揮発性メモリに新たに格納すべきプログラムのデータ量が10メガバイトであって、両プログラムの差異部分のデータ量の合計が5メガバイトである場合には、両プログラムの差異の程度を5メガバイト÷10メガバイト=50%と評価する。
例えば、携帯電話機の不揮発性メモリに新たに格納すべきプログラムのデータ量が10メガバイトであって、両プログラムの差異部分のデータ量の合計が5メガバイトである場合には、両プログラムの差異の程度を5メガバイト÷10メガバイト=50%と評価する。
両プログラムの差異が70%以上である場合には(ステップS101:YES)、全書き換え処理を実行する(ステップS108)。すなわち、前記不揮発性メモリに新たに格納すべきプログラムをすべて携帯電話機12に転送して、その不揮発性メモリに書き込ませて、書き換え処理を終了する。
両プログラムの差異が70%未満である場合には(ステップS101:NO)、先ず、変数iの値を1に初期化する(ステップS102)。そして、両プログラムそれぞれの第i番目のブロックどうしを1バイトずつ比較して、それらの間の差異を求める(ステップS103)。
両プログラムの差異が70%未満である場合には(ステップS101:NO)、先ず、変数iの値を1に初期化する(ステップS102)。そして、両プログラムそれぞれの第i番目のブロックどうしを1バイトずつ比較して、それらの間の差異を求める(ステップS103)。
この場合において、パーソナル・コンピュータ10は、プログラムを先頭から64キロバイト毎に区分してブロックとして、先頭のブロックから順に1、2、3、、、Nと番号を割り当てて、N個のブロックについて先頭から順に差異を計算する。なお、第N番目のブロックのデータ量は64キロバイトを下回っても良い。
また、ブロック毎の差異を求める場合も、新たに格納すべきプログラムに属するブロックのデータ量に対する差異部分のデータ量の比を用いる。
また、ブロック毎の差異を求める場合も、新たに格納すべきプログラムに属するブロックのデータ量に対する差異部分のデータ量の比を用いる。
さて、第i番目のブロックの差異が30%以上である場合には(ステップS104:YES)、パーソナル・コンピュータ10は、ブロック書き換え処理を実行する(ステップS109)。すなわち、パーソナル・コンピュータ10は、新たに格納すべきプログラムの第i番目のブロックをすべて携帯電話機12に転送して、その不揮発性メモリに書き込ませる。
逆に、第i番目のブロックの差異が30%未満である場合には(ステップS104:NO)、パーソナル・コンピュータ10は、差分書き換え処理を実行する(ステップS105)。
ステップS105、又はステップS109の処理の後、パーソナル・コンピュータ10は変数iの値を1だけ増加させる(ステップS106)。そして、変数iの値と前記プログラムの全ブロック数Nとを比較して、変数iの値が全ブロック数Nよりも大きい場合には(ステップS107:YES)、書き換え処理を終了する。
ステップS105、又はステップS109の処理の後、パーソナル・コンピュータ10は変数iの値を1だけ増加させる(ステップS106)。そして、変数iの値と前記プログラムの全ブロック数Nとを比較して、変数iの値が全ブロック数Nよりも大きい場合には(ステップS107:YES)、書き換え処理を終了する。
変数iの値が全ブロック数Nに等しいか、小さい場合には(ステップS107:NO)、ステップS103に進んで上述のような処理を繰り返す。
(2) 全書き換え処理(ステップS108)
次に、前記全書き換え処理について説明する。パーソナル・コンピュータ10は、全書き換え処理に際して、新たに格納すべきプログラムを256バイトずつ携帯電話機12に転送する。これは、携帯電話機12のRS232Cインタフェースが備えている受信バッファのサイズが256バイトであるためである。
(2) 全書き換え処理(ステップS108)
次に、前記全書き換え処理について説明する。パーソナル・コンピュータ10は、全書き換え処理に際して、新たに格納すべきプログラムを256バイトずつ携帯電話機12に転送する。これは、携帯電話機12のRS232Cインタフェースが備えている受信バッファのサイズが256バイトであるためである。
携帯電話機12は、パーソナル・コンピュータ10から受信したプログラムをすべて揮発性メモリに格納した後、ブロック単位で不揮発性メモリに書き込むとしても良い。或いは、携帯電話機12は、パーソナル・コンピュータ10から1ブロック分、64キロバイトのプログラムを受信する毎に不揮発性メモリに書き込むとしても良い。
(3) ブロック書き換え処理(ステップS109)
ブロック書き換え処理の場合も全書き換え処理の場合と同様に、パーソナル・コンピュータ10は、新たに格納すべきプログラムを、上述のようにして携帯電話機12に転送する。携帯電話機12は、パーソナル・コンピュータ10から受信したプログラムを一旦すべて揮発性メモリに格納した後、不揮発性メモリに書き込む。
(3) ブロック書き換え処理(ステップS109)
ブロック書き換え処理の場合も全書き換え処理の場合と同様に、パーソナル・コンピュータ10は、新たに格納すべきプログラムを、上述のようにして携帯電話機12に転送する。携帯電話機12は、パーソナル・コンピュータ10から受信したプログラムを一旦すべて揮発性メモリに格納した後、不揮発性メモリに書き込む。
(4) 差分書き換え処理(ステップS105)
差分書き換え処理の場合には、パーソナル・コンピュータ10は、書き換える部分のプログラムを順次、携帯電話機12に転送する。この場合も、一度に転送するデータ量は256バイトである。また、書き換えるプログラムの指定は1バイト単位で行うことができる。
差分書き換え処理の場合には、パーソナル・コンピュータ10は、書き換える部分のプログラムを順次、携帯電話機12に転送する。この場合も、一度に転送するデータ量は256バイトである。また、書き換えるプログラムの指定は1バイト単位で行うことができる。
すなわち、先ず、(1)差分書き換え処理の対象であるブロックの先頭から順に1バイトずつ比較を行って差異部分を探し、(2)差異部分を発見したら、当該差異部分の末尾を探す。そして、(3)差異部分の末尾を発見したら、当該差異部分にその先頭アドレスとサイズを添付して携帯電話機12に転送する。パーソナル・コンピュータ10は、当該ブロックの末尾に至るまで上記の処理を繰り返す。
また、差異部分の末尾を発見する前に、差異部分のサイズが256バイトに達した場合には、当該差異部分の先頭から256バイトに達した箇所までを携帯電話機12に転送し、当該差異部分の引き続く箇所を新たに差異部分の先頭として上記(1)〜(3)の処理を実行する。
[3] 閾値の決定方法
上述のように、本実施の形態においては、ふたつの閾値を基準としてプログラムの書き込み方法を選択する。以下、これら閾値の決定方法について説明する。
[3] 閾値の決定方法
上述のように、本実施の形態においては、ふたつの閾値を基準としてプログラムの書き込み方法を選択する。以下、これら閾値の決定方法について説明する。
(1) 全体の閾値
プログラム全体について書き換え方法を選択するための閾値を決定するために以下のような実験を行った。すなわち、16メガバイトのプログラムについて差分率を種々変更し、その各々について差分書き換え時間を計測した。また、同プログラムについて全書き換えに要する時間を計測した後、これらを比較して、一方の書き換え方法が他方の書き換え方法よりも有利となる分岐点を調べた。
プログラム全体について書き換え方法を選択するための閾値を決定するために以下のような実験を行った。すなわち、16メガバイトのプログラムについて差分率を種々変更し、その各々について差分書き換え時間を計測した。また、同プログラムについて全書き換えに要する時間を計測した後、これらを比較して、一方の書き換え方法が他方の書き換え方法よりも有利となる分岐点を調べた。
なお、差分書き換え時間を測定する場合においては、先ず、16メガバイトのプログラムを先頭から256バイトずつ部分プログラムに分割する。そして、部分プログラム毎にその先頭から差分率に応じて定まるデータ量を差異部分とする。例えば、差分率が50%である場合には、先頭から128バイトを差異部分として転送する。
下表は、上記の実験によって得られた差分率(10%〜90%)毎の差分書き込み時間(秒)を示すものである。
下表は、上記の実験によって得られた差分率(10%〜90%)毎の差分書き込み時間(秒)を示すものである。
一方、上記の実験によって得られた同プログラムの全書き換え時間は、10.15秒であった。これと上表の各差分書き換え時間とを比較すると、差分率が70%の場合には差分書き換え時間が10.07秒であり前記全書き換え時間よりも短い。一方、差分率が80%の場合には差分書き換え時間が11.12秒であり前記全書き換え時間よりも長い。
したがって、差分率が70%以下である場合には差分書き換えをし、差分率が70%を超える場合には全書き換えをすれば、プログラムの書き換え時間を短縮することができる。
(2) ブロックの閾値
次に、ブロック単位の書き換え方法を選択するための閾値を決定するために以下のような実験を行った。すなわち、1ブロック(64キロバイト)分のプログラムの差分書き換え時間と全書き換えに要する時間を計測、比較して、一方の書き換え方法が他方の書き換え方法よりも有利となる分岐点を調べた。
(2) ブロックの閾値
次に、ブロック単位の書き換え方法を選択するための閾値を決定するために以下のような実験を行った。すなわち、1ブロック(64キロバイト)分のプログラムの差分書き換え時間と全書き換えに要する時間を計測、比較して、一方の書き換え方法が他方の書き換え方法よりも有利となる分岐点を調べた。
なお、差分書き換え時間を測定する場合においては、上記と同様に、16メガバイトのプログラムを先頭から256バイトずつ部分プログラムに分割し、部分プログラム毎にその先頭から差分率に応じて定まるデータ量を差異部分とした。下表は、上記の実験によって得られた差分率(15%〜40%)毎の差分書き込み時間(ミリ秒)を示すものである。
全書き換え時間と上表の各差分書き換え時間とを比較すると、差分率が30%以下である場合には差分書き換えをし、差分率が30%を超える場合には全書き換えをすれば、プログラムの書き換え時間を短縮することができることが分かった。
[4] 変形例
以上、本願発明を実施の形態に基づいて説明してきたが、本願発明が上述の実施の形態に限定されないのは勿論であり、以下のような変形例を実施することができる。
(1) 上記実施の形態においては特に言及しなかったが、携帯電話機12の不揮発性メモリに格納されているプログラムと同一のプログラムと、携帯電話機12の不揮発性メモリに新たに格納すべきプログラムとを比較して差分率を検出するのに先立って、次のようにするとしても良い。
以上、本願発明を実施の形態に基づいて説明してきたが、本願発明が上述の実施の形態に限定されないのは勿論であり、以下のような変形例を実施することができる。
(1) 上記実施の形態においては特に言及しなかったが、携帯電話機12の不揮発性メモリに格納されているプログラムと同一のプログラムと、携帯電話機12の不揮発性メモリに新たに格納すべきプログラムとを比較して差分率を検出するのに先立って、次のようにするとしても良い。
すなわち、携帯電話機12の不揮発性メモリに格納されているプログラムと、パーソナル・コンピュータ10の記憶装置に格納されているプログラムとの同一性を確認するとしても良い。
この場合において、パーソナル・コンピュータ10は、先ず、携帯電話機12から、前記プログラムのバージョン、作成日およびデータ領域のCRC(cyclic redundancy code)を取得し、自己の記憶装置に格納されているプログラムのバージョン、作成日およびデータ領域のCRCと比較して、両プログラムの同一性を確認するとしても良い。
この場合において、パーソナル・コンピュータ10は、先ず、携帯電話機12から、前記プログラムのバージョン、作成日およびデータ領域のCRC(cyclic redundancy code)を取得し、自己の記憶装置に格納されているプログラムのバージョン、作成日およびデータ領域のCRCと比較して、両プログラムの同一性を確認するとしても良い。
そして、当該確認によって両プログラムが同一であると判断された場合には、上記実施の形態にて説明したような書き換え処理を実行すれば良い。また、同一でないと判断された場合には、パーソナル・コンピュータ10はその旨を表示して、書き換え処理を実行することなく、処理を修了するとしても良い。
(2) 上記実施の形態においては、閾値を決定するに当って、プログラムを先頭から256バイトずつ部分プログラムに分割して、部分プログラム毎にその先頭から差分率に応じて定まるデータ量を差異部分とするとしたが、本願発明がこれに限定されないのは言うまでも無く、次のようにするとしても良い。
(2) 上記実施の形態においては、閾値を決定するに当って、プログラムを先頭から256バイトずつ部分プログラムに分割して、部分プログラム毎にその先頭から差分率に応じて定まるデータ量を差異部分とするとしたが、本願発明がこれに限定されないのは言うまでも無く、次のようにするとしても良い。
すなわち、先頭から差分率に応じて定まるデータ量を差異部分とするのに代えて、先頭から所定番目のバイトを差異部分としても良い。例えば、差分率が50%である場合には、先頭から偶数番目のバイトを差異部分とするなどである。
また、乱数を用いて差異部分を決定するとしても良い。例えば、差分率が50%である場合には、バイト毎に0から1までの範囲の値をとる一様乱数を用いて、乱数値が0.5を超える場合には当該バイトを差異部分とし、超えない場合には当該バイトを差異部分で無いとしても良い。この場合において、末尾バイトに至っても差分率が所定値に満たない場合には、再度先頭から処理を繰り返すとしても良い。
また、乱数を用いて差異部分を決定するとしても良い。例えば、差分率が50%である場合には、バイト毎に0から1までの範囲の値をとる一様乱数を用いて、乱数値が0.5を超える場合には当該バイトを差異部分とし、超えない場合には当該バイトを差異部分で無いとしても良い。この場合において、末尾バイトに至っても差分率が所定値に満たない場合には、再度先頭から処理を繰り返すとしても良い。
また、同一の差分率について、上記のようなに様々な差異部分について書き換え時間を実測し、それらの平均値を以て書き換え時間としても良い。また、実測によりえられた書き換え時間が、同一の差分率に係る他の書き換え時間とは著しく異なっている書き換え時間については、平均値を求める際に除外するとしても良い。
(3) 上記実施の形態においては、全体の閾値と70%とし、ブロックの閾値を30%としたが、本願発明がこれに限定されないのは言うまでも無く、閾値としてこれら以外の値を用いるとしても良い。
(3) 上記実施の形態においては、全体の閾値と70%とし、ブロックの閾値を30%としたが、本願発明がこれに限定されないのは言うまでも無く、閾値としてこれら以外の値を用いるとしても良い。
実際のプログラムに生じる差異部分は、不規則に分布しているのが通常であり、プログラム内で均一に分散することもなければ、完全に1箇所にまとまってもいないことが多い。したがって、分布の仕方によって閾値を変更するとすれば、更に好適である。
例えば、差異部分の分布のばらつきが大きい場合には、より低い閾値を採用し、ばらつきが小さい場合には、より高い閾値を採用するとしても良い。
例えば、差異部分の分布のばらつきが大きい場合には、より低い閾値を採用し、ばらつきが小さい場合には、より高い閾値を採用するとしても良い。
また、閾値として固定値を用いる場合には、上記実施の形態にて述べた閾値に近い値を採用するのが望ましい。なぜなら、差異部分の分布のばらつきによる影響はあるが、書き換え時間は概ね差分率に従って増減するものであり、上記の閾値に近い値を用いれば、上記実施の形態に近い効果を得ることができるからである。
(4) 上記実施の形態においては、特に言及しなかったが、プログラム間の差異率やプログラムのブロック間の差異率、或いは、差異部分のアドレスやデータ長は、予め求めておくとしても良い。
(4) 上記実施の形態においては、特に言及しなかったが、プログラム間の差異率やプログラムのブロック間の差異率、或いは、差異部分のアドレスやデータ長は、予め求めておくとしても良い。
このようにすれば、例えば、旧バージョンのプログラムをインストールされた携帯電話機が複数台あって、かつ、これらの携帯電話機に新バージョンのプログラムをインストールしなければならない場合に、携帯電話機毎に差異率や差異部分等を求める必要がなくなるので、プログラムのバージョンアップに要する作業時間を短縮して、開発効率を向上させることができる。
本願発明に係る不揮発性メモリ書き換え装置は、不揮発性メモリにデータを格納するために要する時間を短縮する技術として有用である。
1……不揮発性メモリ書き換えシステム
10…パーソナル・コンピュータ
11…シリアルケーブル
12…携帯電話機
10…パーソナル・コンピュータ
11…シリアルケーブル
12…携帯電話機
Claims (10)
- 不揮発性メモリに格納されているデータを書き換える不揮発性メモリ書き換え装置であって、
前記不揮発性メモリに既に書き込まれている第1のデータと、前記不揮発性メモリに書き込むべき第2のデータとを比較して差異部分を検出するデータ比較手段と、
前記データ比較手段にて検出された前記差異部分の前記第2のデータに対する比が70%を超える場合には、前記第2のデータを前記不揮発性メモリに書き込む全書き換え手段と、
前記データ比較手段にて検出された前記差異部分の前記第2のデータに対する比が70%を超えない場合には、前記差異部分を前記不揮発性メモリに書き込む差分書き換え手段と
を備えることを特徴とする不揮発性メモリ書き換え装置。 - 前記第1のデータと同一のデータを予め記憶している同一データ記憶手段を備え、
前記データ比較手段は、前記同一データ記憶手段にて記憶している第1のデータと同一のデータと前記第2のデータとを比較する
ことを特徴とする請求項1に記載の不揮発性メモリ書き換え装置。 - 前記不揮発性メモリは携帯電話機に内蔵されている不揮発性メモリであり、
前記携帯電話機は、RS−232−Cインタフェースにて当該不揮発性メモリ書き換え装置に接続されており、
前記全書き換え手段は、前記RS−232−Cインタフェースを介して前記第2のデータを書き込む
ことを特徴とする請求項1に記載の不揮発性メモリ書き換え装置。 - データを記憶するデータ記憶手段と、
前記第1のデータに関する情報を取得する関連情報取得手段と、
前記データ記憶手段にて記憶しているデータに関する情報と、前記関連情報取得手段にて取得した情報とを比較して、これらデータが同一か否かを判定する関連情報比較手段と、
前記関連情報比較手段にて前記データが同一であると判定された場合には、前記データ比較手段は、前記同一データ記憶手段にて記憶している第1のデータと同一のデータと前記第2のデータとを比較する
ことを特徴とする請求項1に記載の不揮発性メモリ書き換え装置。 - 不揮発性メモリに格納されているデータを書き換える不揮発性メモリ書き換え装置であって、
前記不揮発性メモリに既に書き込まれている第1のデータと、前記不揮発性メモリに書き込むべき第2のデータとを比較して差異部分を検出するデータ比較手段と、
前記データ比較手段にて検出された前記差異部分の前記第2のデータに対する比が70%を超える場合には、前記第2のデータを前記不揮発性メモリに書き込む全書き換え手段と、
前記データ比較手段にて検出された前記差異部分の前記第2のデータに対する比が70%を超えない場合には、前記第1のデータと前記第2のデータとをその先頭から所定データ長ずつ比較して、それぞれについて差異部分を検出する部分データ比較手段と、
前記部分データ比較手段にて検出された前記差異部分の前記所定データ長に対する比が30%を超える場合には、当該比較に係る第2データの部分を前記不揮発性メモリに書き込む部分書き換え手段と
前記部分データ比較手段にて検出された前記差異部分の前記所定データ長に対する比が30%を超えない場合には、前記部分データ比較手段にて検出された前記差異部分を前記不揮発性メモリに書き込む差分書き換え手段と
を備えることを特徴とする不揮発性メモリ書き換え装置。 - 前記所定データ長は64キロバイトである
ことを特徴とする請求項5に記載の不揮発性メモリ書き換え装置。 - 前記第1のデータと同一のデータを予め記憶している同一データ記憶手段を備え、
前記データ比較手段と前記部分データ比較手段とは、前記同一データ記憶手段にて記憶している第1のデータと同一のデータと前記第2のデータとを比較する
ことを特徴とする請求項5に記載の不揮発性メモリ書き換え装置。 - データを記憶するデータ記憶手段と、
前記第1のデータに関する情報を取得する関連情報取得手段と、
前記データ記憶手段にて記憶しているデータに関する情報と、前記関連情報取得手段にて取得した情報とを比較して、これらデータが同一か否かを判定する関連情報比較手段と、
前記関連情報比較手段にて前記データが同一であると判定された場合には、前記データ比較手段と前記部分データ比較手段とは、前記同一データ記憶手段にて記憶している第1のデータと同一のデータと前記第2のデータとを比較する
ことを特徴とする請求項5に記載の不揮発性メモリ書き換え装置。 - 前記不揮発性メモリは携帯電話機に内蔵されている不揮発性メモリであり、
前記携帯電話機は、RS−232−Cインタフェースにて当該不揮発性メモリ書き換え装置に接続されており、
前記全書き換え手段、部分書き換え手段および差分書き換え手段は、前記RS−232−Cインタフェースを介して前記第2のデータを書き込む
ことを特徴とする請求項5に記載の不揮発性メモリ書き換え装置。 - 前記携帯電話機が備えるRS−232−Cインタフェースの受信バッファサイズは256バイトである
ことを特徴とする請求項9に記載の不揮発性メモリ書き換え装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003365214A JP2005128894A (ja) | 2003-10-24 | 2003-10-24 | 不揮発性メモリ書き換え装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003365214A JP2005128894A (ja) | 2003-10-24 | 2003-10-24 | 不揮発性メモリ書き換え装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005128894A true JP2005128894A (ja) | 2005-05-19 |
Family
ID=34643966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003365214A Pending JP2005128894A (ja) | 2003-10-24 | 2003-10-24 | 不揮発性メモリ書き換え装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005128894A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007249360A (ja) * | 2006-03-14 | 2007-09-27 | Fuji Electric Holdings Co Ltd | ファームウェアの更新システムおよび更新方法 |
JP2009526282A (ja) * | 2006-02-06 | 2009-07-16 | シーメンス アクチエンゲゼルシヤフト | 技術的プロセスを制御するためのデータを含んでいるデータモジュールを記憶させる方法および制御装置並びに自動化装置 |
JP2012173778A (ja) * | 2011-02-17 | 2012-09-10 | Sony Corp | 管理装置、および管理方法 |
JP2014502396A (ja) * | 2010-11-23 | 2014-01-30 | マイクロソフト コーポレーション | 効果的な仮想アプリケーションのアップデート |
WO2024030428A1 (en) * | 2022-08-01 | 2024-02-08 | Baker Hughes Holdings Llc | Automated borescope data synchronization |
-
2003
- 2003-10-24 JP JP2003365214A patent/JP2005128894A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009526282A (ja) * | 2006-02-06 | 2009-07-16 | シーメンス アクチエンゲゼルシヤフト | 技術的プロセスを制御するためのデータを含んでいるデータモジュールを記憶させる方法および制御装置並びに自動化装置 |
US8112606B2 (en) | 2006-02-06 | 2012-02-07 | Siemens Aktiengesellschaft | Method for storing a data block containing data for controlling a technical process, and control and automation device |
JP2007249360A (ja) * | 2006-03-14 | 2007-09-27 | Fuji Electric Holdings Co Ltd | ファームウェアの更新システムおよび更新方法 |
JP2014502396A (ja) * | 2010-11-23 | 2014-01-30 | マイクロソフト コーポレーション | 効果的な仮想アプリケーションのアップデート |
JP2012173778A (ja) * | 2011-02-17 | 2012-09-10 | Sony Corp | 管理装置、および管理方法 |
WO2024030428A1 (en) * | 2022-08-01 | 2024-02-08 | Baker Hughes Holdings Llc | Automated borescope data synchronization |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1739683B1 (en) | Space management for managing high capacity nonvolatile memory | |
US7243186B2 (en) | Method of optimizing performance of flash memory | |
EP1228510B1 (en) | Space management for managing high capacity nonvolatile memory | |
JP4132086B2 (ja) | フラッシュメモリ内のブロックにおける移動セクタ | |
US7920425B2 (en) | Differential flash memory programming technique | |
KR100493732B1 (ko) | 비휘발성 메모리내의 코드/데이터 경계를 조정가능하게하는 장치 및 방법 | |
EP1548599A2 (en) | Faster write operations to nonvolatile memory by manipulation of frequently accessed sectors | |
US20200293443A1 (en) | Garbage collection - automatic data placement | |
KR101472797B1 (ko) | 데이터를 읽거나 쓰기 위한 방법 및 장치 | |
KR0185954B1 (ko) | 휴대형 단말기기의 메모리 관리방법 | |
TW200915185A (en) | Method for updating firmware and firmware updating apparatus | |
KR20070006502A (ko) | 데이터 저장장치, 데이터 저장방법, 및 그 기록매체 | |
JP2005128894A (ja) | 不揮発性メモリ書き換え装置 | |
JP2006085342A (ja) | メモリ制御装置、メモリ制御方法、プログラム | |
JP2004295299A (ja) | フィールド機器システム | |
JP4910402B2 (ja) | 不揮発性メモリの書き換え装置及び書き換え方法 | |
JPH09259046A (ja) | フラッシュメモリへのデータ格納方法及びフラッシュメモリからのデータ読み込み方法 | |
JP2004310268A (ja) | フラッシュメモリ内蔵の半導体装置、フラッシュメモリの制御方法およびそのプログラム | |
JP2005275722A (ja) | 電子機器 | |
JP2006313411A (ja) | フラッシュメモリ制御方法及び制御装置 | |
KR100336745B1 (ko) | 플래시 메모리의 라이트장치 및 방법 | |
JPH10105533A (ja) | フラッシュメモリ内蔵マイクロコンピュータ | |
CN117348911A (zh) | 一种优化软件执行时间的nor flash数据更新方法及系统 | |
JP2002157149A (ja) | データ管理システムおよびそれを用いたデータ管理方法 | |
JPH11288388A (ja) | フラッシュメモリデータ退避システム |