JP2011081561A - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP2011081561A JP2011081561A JP2009232727A JP2009232727A JP2011081561A JP 2011081561 A JP2011081561 A JP 2011081561A JP 2009232727 A JP2009232727 A JP 2009232727A JP 2009232727 A JP2009232727 A JP 2009232727A JP 2011081561 A JP2011081561 A JP 2011081561A
- Authority
- JP
- Japan
- Prior art keywords
- data
- sector
- update
- storage area
- program
- 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
- 230000010365 information processing Effects 0.000 title claims description 15
- 238000000034 method Methods 0.000 description 26
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
【課題】 不揮発性メモリを有するCPUからなるマルチCPUシステムにおいて、小容量のRAMを用いてCPUのプログラムを更新する際に、小容量のRAMでは更新プログラムをすべて保存することはできないため、更新プログラムの全文を送信しながらプログラムの更新をする必要があるため、更新に時間がかかっていた。
【解決手段】 不揮発性メモリ内のあるセクタをプログラム更新のための退避用として使用することで、更新前のプログラムは退避用セクタに保持し、RAMは更新後の差分プログラムだけを保持し、退避用セクタのデータとRAMのデータを用いてプログラムの更新を行うことで、データの通信量を減らすことができ、更新にかかる時間を短縮できる。
【選択図】 図6
【解決手段】 不揮発性メモリ内のあるセクタをプログラム更新のための退避用として使用することで、更新前のプログラムは退避用セクタに保持し、RAMは更新後の差分プログラムだけを保持し、退避用セクタのデータとRAMのデータを用いてプログラムの更新を行うことで、データの通信量を減らすことができ、更新にかかる時間を短縮できる。
【選択図】 図6
Description
本発明は、データの更新が可能な情報処理装置に関するものである。
従来、不揮発性メモリ内のデータの更新作業を高速化する方法として、不揮発性メモリのデータの更新単位よりも大きな領域のRAM(Random Access Memory)を搭載するシステムにおいては、更新データを差分で送信する。そして、RAM内で更新データを作成して不揮発性メモリのデータを更新することで、更新作業を高速化する方法が特許文献1に提案されている。
しかしながら、不揮発性メモリのデータの更新単位よりも大きな領域のRAMを用いるとコスト高の要因となってしまっていた。そこで、低コストを実現するために、RAMの容量を不揮発性メモリのデータの更新単位よりも小さくすることが考えられる。小さな領域のRAMしか搭載していないシステムでのデータ更新作業においては、RAM内で更新データを作成できない。このような場合においては、一度不揮発性メモリのデータをすべて削除し、RAMの領域毎に順次更新データを受信し、順次不揮発性メモリに書き込むことでデータの更新を行っていた。このような方法では、不揮発性メモリに書き込むデータをすべて受信せねばならず、RAMでデータを受信する時間が長くなり、更新時間にかかる時間も長くなってしまっていた。
本出願に係る発明は、以上のような状況を鑑みてなされたものであり、不揮発性メモリのデータを更新するために小さい容量のRAMしか持たないシステムであっても、データの更新時間を短縮することを目的とする。
上記目的を達成するために、複数の記憶領域からなる記憶手段と、前記記憶手段に保存されているデータを更新するための更新データを受信する受信手段と、前記受信した更新データに基づき前記記憶手段のデータを更新する制御手段と、を有する情報処理装置であって、前記制御手段は、前記受信手段により前記複数の記憶領域のうちの第1の記憶領域に保存されているデータの一部を更新する前記更新データを受信すると、第2の記憶領域に保存されているデータを消去し、前記第1の記憶領域に保存されているデータを第2の記憶領域に書き込み、前記第1の記憶領域のデータを消去した後、前記受信手段により受信した更新データと前記第2の記憶領域に書き込んだデータとを用いて前記第1の記憶領域のデータを更新することを特徴とする。
本発明の構成によれば、不揮発性メモリの更新に必要なデータ量が少なくなるので、データの通信にかかる時間を短縮でき、データ更新時間を短縮することができる。
以下、図面を用いて本発明の実施形態について説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
(第1の実施形態)
図1(a)に本実施形態の情報処理装置であるマルチCPUシステムを示す。図1(b)に複数の記憶領域(以下、セクタとする)を有する不揮発性メモリ111の構成を示す。更新するデータの内容は、プログラムやパラメータ等、マルチCPUシステムを適応する装置の状況に応じて適宜設定することが可能であるが、以下では一例としてプログラムを更新する場合について説明する。また、本実施形態における不揮発性メモリ111は、データの書き込みは随時行うことができるが、データの消去は全消去しかできないものとする。
図1(a)に本実施形態の情報処理装置であるマルチCPUシステムを示す。図1(b)に複数の記憶領域(以下、セクタとする)を有する不揮発性メモリ111の構成を示す。更新するデータの内容は、プログラムやパラメータ等、マルチCPUシステムを適応する装置の状況に応じて適宜設定することが可能であるが、以下では一例としてプログラムを更新する場合について説明する。また、本実施形態における不揮発性メモリ111は、データの書き込みは随時行うことができるが、データの消去は全消去しかできないものとする。
図1(a)を用いてマルチCPUシステムについて説明する。101はプログラム更新データ出力装置、102は制御CPUを有するコントローラ、103は被制御CPUを有するコントローラである。制御CPUを有するコントローラ102は制御CPU105と不揮発性メモリ111より大容量のRAM107を有し、プログラム更新データ出力装置101と通信制御部104によって通信を行う。そして、シリアル通信制御部106によって被制御CPUを有するコントローラ103のシリアル通信制御部108とシリアル通信を行う。被制御CPUを有するコントローラ103は、被制御CPU109と不揮発性メモリ111と不揮発性メモリ111より小容量のRAM110を有する。そして、制御CPUを有するコントローラ102とシリアル通信制御部108によってシリアル通信を行い、不揮発性メモリ111を更新する。
図1(b)を用いて不揮発性メモリ111の構成について説明する。不揮発性メモリ111は、書き換え不可能である更新プログラム格納セクタ1111、書き換え可能である各プログラム更新対象セクタ1112、1113、1114から構成される。被制御CPU109のプログラム更新中の動作プログラムは更新プログラム格納セクタ1111に保存されている。
図2(a)に本実施形態でのプログラム更新に用いるプログラム更新データの一例を示す。図2(b)にプログラム更新データのより具体的な構成の一例を示す。201はソフトウェアのバージョンをVer1.4に更新するためのプログラム更新データである。プログラム更新データ201は、更新前のソフトウェアのバージョン名を示す各セクタ202、204、206と、夫々のバージョンに対応するプログラム更新データ203、205、207によって構成される。具体的には、202はソフトウェアの更新前のバージョンがVer1.3であることを示し、203はソフトウェアをVer1.3からVer1.4に更新するためのプログラム更新データが保存されている。同様に、204はソフトウェアの更新前のバージョンがVer1.2であることを示し、205はソフトウェアをVer1.2からVer1.4に更新するためのプログラム更新データが保存されている。206はソフトウェアの更新前のバージョンがVer1.1以前であることを示し、207はソフトウェアをVer1.1以前からVer1.4に更新するためのプログラム更新データが保存されている。
図2(b)にプログラム更新データのより具体的な構成を示す。Ver1.3用のプログラム更新データ203は、ヘッダ2031を先頭に更新後の不揮発性メモリの認証値を最後に配置し、データ退避用バッファセクタとして用いないセクタ、データ退避用バッファセクタとして用いるセクタの順に不揮発性メモリのセクタ単位に配置される。ヘッダ2031は、プログラム更新前のソフトウェアバージョン20311と、プログラム更新時にデータ退避用バッファセクタと用いるセクタ番号20312とプログラム更新データのヘッダが破壊されていない事を保証する為の認証値20313によって構成される。セクタ2032は、セクタ番号20321、セクタに対するデータが全文データか差分データかを示すデータ形式番号20322、データブロックの個数20323、ブロックの開始アドレス20324、ブロックのデータ長20325、ブロックのデータ20326から構成される。
図3はプログラム更新データの作成方法を示したフローチャートである。S301において、更新前後のプログラムを比較し、更新する箇所のアドレスマップを作成する。S302において、更新後の各セクタに保存されるプログラムの全文データサイズSz1と、先のS301により求めたアドレスマップの差分データを用いる場合の差分データサイズSz2を求める。S303において、全文データを送信した時のプログラム更新にかかる時間を算出する。全文データを送信した時の時間Ta(ms)は、不揮発性メモリを1度消去する時間Te(ms)、全文データサイズSz1(byte)、データ送信に必要な時間Tw(ms/byte)、データの書き込みに必要な時間Tp(ms/byte)、から下記の式(1)により算出される。
Ta=Te+Sz1×(Tw+Tp)・・・(1)
S304において、差分データを送信した時のプログラム更新にかかる時間を算出する。差分データを用いたプログラムの更新は、まずデータ退避用バッファセクタのデータを消去する。そして、書き換え対象セクタのデータを退避用バッファセクタにコピーした後、書き換え対象セクタのデータを消去して、プログラム更新データとデータ退避用バッファセクタを更新することで行う。これより、差分データを送信した時の時間Tb(ms)は、不揮発性メモリを1度消去する時間Te(ms)、差分データサイズSz2(byte)、データ送信に必要な時間Tw(ms/byte)、データの書き込みに必要な時間Tp(ms/byte)、から下記の式(2)により算出される。
Tb=2×Te+Tc×(2×Sz3−Sz2)+Sz2×(Tw+Tp)・・・(2)
S305において、先のS303及びS304で求めた、Ta及びTbの比較を各セクタで行う。Ta<Tbであれば、全文データを用いてプログラム更新データを作成し、Ta>Tbであれば、差分データを用いてプログラム更新データを作成する。S306において、書き換えの必要なセクタの個数を求める。そして、各セクタの更新方法を確認する。いずれかのセクタの更新方法に差分データを用いる場合は、S307において、不揮発性メモリ111の最大セクタサイズのセクタの内でTa−Tbが最小になるセクタを求め、そのセクタをデータ退避用バッファセクタ20312とする。これは、データ退避用バッファセクタとして使用するセクタのデータの更新は、更新量によらず全データを受信して更新する必要があるためである。一方、データ退避用バッファセクタとして使用しないセクタの更新は、更新を行う差分データのみの通信で良い。つまり、データ退避用バッファセクタとして使用するセクタは最も更新データ量が多いセクタとすると、データ更新のための全体の通信量を少なくすることができ、データ更新時間の短縮に繋がる。いずれのセクタの更新方法も全文データを用いる場合は、S308において、プログラム更新データを作成する。
Ta=Te+Sz1×(Tw+Tp)・・・(1)
S304において、差分データを送信した時のプログラム更新にかかる時間を算出する。差分データを用いたプログラムの更新は、まずデータ退避用バッファセクタのデータを消去する。そして、書き換え対象セクタのデータを退避用バッファセクタにコピーした後、書き換え対象セクタのデータを消去して、プログラム更新データとデータ退避用バッファセクタを更新することで行う。これより、差分データを送信した時の時間Tb(ms)は、不揮発性メモリを1度消去する時間Te(ms)、差分データサイズSz2(byte)、データ送信に必要な時間Tw(ms/byte)、データの書き込みに必要な時間Tp(ms/byte)、から下記の式(2)により算出される。
Tb=2×Te+Tc×(2×Sz3−Sz2)+Sz2×(Tw+Tp)・・・(2)
S305において、先のS303及びS304で求めた、Ta及びTbの比較を各セクタで行う。Ta<Tbであれば、全文データを用いてプログラム更新データを作成し、Ta>Tbであれば、差分データを用いてプログラム更新データを作成する。S306において、書き換えの必要なセクタの個数を求める。そして、各セクタの更新方法を確認する。いずれかのセクタの更新方法に差分データを用いる場合は、S307において、不揮発性メモリ111の最大セクタサイズのセクタの内でTa−Tbが最小になるセクタを求め、そのセクタをデータ退避用バッファセクタ20312とする。これは、データ退避用バッファセクタとして使用するセクタのデータの更新は、更新量によらず全データを受信して更新する必要があるためである。一方、データ退避用バッファセクタとして使用しないセクタの更新は、更新を行う差分データのみの通信で良い。つまり、データ退避用バッファセクタとして使用するセクタは最も更新データ量が多いセクタとすると、データ更新のための全体の通信量を少なくすることができ、データ更新時間の短縮に繋がる。いずれのセクタの更新方法も全文データを用いる場合は、S308において、プログラム更新データを作成する。
次に図4のフローチャートを用いて、プログラムの更新方法について説明する。S401において、制御CPU105が被制御CPU109のソフトウェアのバージョンを不揮発性メモリ111から読み出す事によって、プログラムの更新が開始される。S402において、プログラム更新データ出力装置101によりプログラム更新データ201が制御CPU105に通信制御部104を用いて送信される。制御CPU105は、プログラム更新データ201をRAM107に保存する。
S403において、制御CPU105はS401で読み出した被制御CPU109のソフトウェアのバージョンに応じて被制御CPU109に送信するプログラム更新データを選択する。S404において、制御CPU105はS403で選択したプログラム更新データを順次被制御CPU109にシリアル通信制御部106を用いて送信する。被制御CPU109は、シリアル通信制御部108を通してプログラム更新データを受信しRAM110に保存する。S405において、被制御CPU109は、RAM110に保存されたプログラム更新データを用いて、不揮発性メモリ111を更新する。S406において、プログラム更新作業が成功したかを確認し、成功した場合はプログラム更新作業を終了し、失敗した場合は、S406において、被制御CPU109のソフトウェアのバージョンを再度読み出し、S403からプログラム更新作業をやり直す。
次に、図5のフローチャートを用いて、被制御CPU109の不揮発性メモリ111を更新する方法について説明する。S408において、プログラム更新データ203のヘッダ部2031に保存されたデータ退避用バッファセクタ番号20312を得る。S409において、被制御CPU109は、各セクタのデータ2032、2033、2034を得る。さらに、セクタ番号20321、セクタにおいてのデータ形式20322を得る。S410において、プログラム更新データのデータ形式が全文データであるか差分データであるかを判断する。
データ形式が全文データである場合には、S411において、セクタ番号20321に対応するセクタ内のデータを消去し、順次受信するプログラム更新データをセクタに書き込む。S412において、ソフトウェアのバージョンを0にする。データ形式が差分データである場合には、S413において、データ退避用バッファセクタ番号20312に対応するセクタ内のデータを消去する。S414において、ソフトウェアのバージョンを0にする。S415において、更新するセクタ番号30321に対応するセクタのデータをデータ退避用バッファセクタにコピーする。S416において、プログラムの更新を行うセクタ内のデータを消去する。S417において、S415において作成した更新前のプログラムデータと順次送信されるプログラム更新データを用いて、プログラムの更新を行うセクタにデータを書き込む。具体的には、プログラム更新データを受信していないアドレスのデータは、データ退避用バッファセクタから書き込みを行い、プログラム更新データを受信しているアドレスのデータは、RAM110から書き込みを行う。S418において、プログラムの更新を行う全セクタが書き換えられているかの確認を行う。書き換えが終わっていない場合は、ステップS409に戻り、セクタの更新を続ける。
図6に差分データを用いてプログラムの更新を行う方法を図式化したものを示す。不揮発性メモリ111にはセクタ1、2、3があり、ここではセクタ1とセクタ2のプログラムを更新することとする。
601は、セクタ1、2、3に更新前のプログラムが保存されている状態である。602は、セクタ1をデータ退避用バッファセクタとして使用するため、セクタ1のデータを削除した状態である。603は、データを削除したセクタ1をデータ退避用バッファセクタとして使用して、セクタ2のデータをコピーする。そして、元々のセクタ2のデータを削除した状態である。604は、データを削除したセクタ2に、更新したプログラムを書き込む。具体的には、先にも説明したように、RAM110に保持されたプログラム更新データのアドレスはRAMから書き込み、プログラム更新データとして保持されていないアドレスはデータ退避用バッファセクタにコピーしたデータから書き込む。これをセクタ2のデータがすべて書き込まれるまで繰り返す。
605は、セクタ2のプログラムの更新が完了し、データ退避用バッファセクタとして使用されていたセクタ1のデータを削除した状態である。606は、セクタ1のプログラムを全文データにより更新している状態である。RAM110は、セクタ1のプログラム更新データを受信すると、順次セクタ1に書き込む。これをセクタ1のデータがすべて書き込まれるまで繰り返す。607は、セクタ1、セクタ2共にプログラムの更新が行われた状態である。
このように、プログラムの更新の際にプログラムの更新量に応じて、差分データを送信することによって、全文データを送る場合よりデータの通信量を少なくすることができる。そのため、データの通信にかかる時間を削減することができるため、プログラムの更新の際に、全文データを用いるか差分データを用いるかを選択することによって、データの更新に必要な時間を短縮することができる。よって、プログラムの一部のみを更新するような場合には、更新しないプログラムに関しては通信する必要がないため、更新時間を短縮できる。
(第2の実施形態)
第1の実施形態では、大容量のRAM107を有する制御CPU105からプログラム更新データが送信される場合について説明した。本実施形態では、大容量のRAMを有しない制御CPUに接続されている場合について説明する。なお、第1の実施形態と同様の構成に関しては、本実施形態では同様に実現可能であることを述べ、ここでの詳しい説明は省略する。また、プログラム更新データは、第1の実施形態における図2と同様の構成を用いることができ、プログラム更新データの作成方法は、図3と同様の方法を用いることができるため、ここでの説明は省略する。
第1の実施形態では、大容量のRAM107を有する制御CPU105からプログラム更新データが送信される場合について説明した。本実施形態では、大容量のRAMを有しない制御CPUに接続されている場合について説明する。なお、第1の実施形態と同様の構成に関しては、本実施形態では同様に実現可能であることを述べ、ここでの詳しい説明は省略する。また、プログラム更新データは、第1の実施形態における図2と同様の構成を用いることができ、プログラム更新データの作成方法は、図3と同様の方法を用いることができるため、ここでの説明は省略する。
図7(a)に本実施形態の情報処理装置であるマルチCPUシステムを示す。図7(b)に不揮発性メモリ615の構成を示す。図7(a)を用いてマルチCPUシステムについて説明する。601はプログラム更新データ出力装置、602は制御CPUを有するコントローラ、603は被制御MAINCPUを有するコントローラ、604は被制御SUBCPUを有するコントローラである。制御CPUを有するコントローラ602は制御CPU606と不揮発性メモリ615より大容量のRAM608を有し、プログラム更新データ出力装置601と通信制御部605によって通信を行う。そして、シリアル通信制御部607によって被制御MAINCPUを有するコントローラ603のシリアル通信制御部609と通信を行う。
被制御MAINCPUを有するコントローラ603は、MAINCPU610と不揮発性メモリ615より小容量のRAM612を有する。そして、制御側CPUを有するコントローラ602とシリアル通信制御部609によってシリアル通信を行い、シリアル通信制御部611によって被制御SUBCPUを有するコントローラ604のシリアル通信制御部613とシリアル通信を行う。被制御SUBCPUを有するコントローラ604は、SUBCPU614と不揮発性メモリ615より小容量のRAM616を有する。そして、被制御MAINCPUを有するコントローラ603とシリアル通信制御部613によってシリアル通信を行い、不揮発性メモリ615を更新する。なお、図7(b)の不揮発性メモリ615の構成は、図1(b)と同様であるためここでの説明は省略する。
図8のフローチャートを用いて、プログラムの更新方法について説明する。S801において、被制御MAINCPU610が被制御SUBCPU614のソフトウェアのバージョンを不揮発性メモリ615から読み出す。そして、制御CPU606が被制御MAINCPU610から被制御SUBCPU614のソフトウェアのバージョンを読み出す事によって、プログラムの更新が開始される。S802において、プログラム更新データ出力装置601によりプログラム更新データ701が制御CPU606に通信制御部607を用いて送信される。制御CPU606は、プログラム更新データをRAM608に保存する。
S803において、制御CPU606は、S801で読み出した被制御SUBCPU614のソフトウェアのバージョンに応じて、被制御MAINCPU610に送信するプログラム更新データを選択する。S804において、制御CPU606はS803で選択したプログラム更新データ704を順次被制御MAINCPU610にシリアル通信制御部607を用いて送信する。被制御MAINCPU610は、シリアル通信制御部609を通してプログラム更新データを受信しRAM612に保存する。S805において、被制御MAINCPU610は、RAM612に順次保存されるプログラム更新データを被制御SUBCPU614にシリアル通信制御部611を用いて送信する。被制御SUBCPU614はシリアル通信制御部613を通してプログラム更新データを受信しRAM616に保存する。
S806において、被制御SUBCPU614はRAM616に順次保存されるプログラム更新データを用いて、不揮発性メモリ615を更新する。S807において、プログラム更新作業が成功したかを確認し、成功した場合はプログラム更新作業を終了し、失敗した場合は、S808において、被制御SUBCPU614のソフトウェアのバージョンを再度読み出し、S804からプログラム更新作業をやり直す。なお、被制御SUBCUP614の不揮発性メモリ615を更新する方法は、第1の実施形態の図5で説明した方法と同様のため、ここでの説明は省略する。
このように、プログラム更新の際に、プログラム更新データを複数回通信しなければならない状況においては、データの通信に多くの時間がかかってしまう。そのような状況においても、全文データと差分データを使い分けることによって、プログラム更新データの通信量を少なくすることができるため、更新に必要な時間を短縮することができる。よって、プログラムの一部のみを更新するような場合には、更新しないプログラムに関しては通信する必要がないため、更新時間を短縮できる。
(第3の実施形態)
第1の実施形態及び第2の実施形態では、不揮発性メモリのあるセクタをデータ退避用バッファセクタとしてプログラムの更新を行う方法について説明した。このように、データ退避用バッファセクタを利用することで、更新プログラムの通信量を減らすことができ、更新時間の削減を行うことができるが、データ退避用バッファセクタを用いることで、不揮発性メモリ内のセクタ間で書き込み回数のばらつきが生じる。毎回同じセクタをデータ退避用バッファセクタとしてプログラムの更新を行っていると、データ退避用バッファセクタとしたセクタのみ書き込み回数が増えてしまう。一般に不揮発性メモリの書き込み回数には保証回数があるため、同じセクタに書き込みを続けていると、他のセクタよりも早く書き込み保証回数を超えてしまう可能性がある。本実施形態では、セクタの書き込み保証回数を考慮し、プログラムの更新を行う方法について説明する。
第1の実施形態及び第2の実施形態では、不揮発性メモリのあるセクタをデータ退避用バッファセクタとしてプログラムの更新を行う方法について説明した。このように、データ退避用バッファセクタを利用することで、更新プログラムの通信量を減らすことができ、更新時間の削減を行うことができるが、データ退避用バッファセクタを用いることで、不揮発性メモリ内のセクタ間で書き込み回数のばらつきが生じる。毎回同じセクタをデータ退避用バッファセクタとしてプログラムの更新を行っていると、データ退避用バッファセクタとしたセクタのみ書き込み回数が増えてしまう。一般に不揮発性メモリの書き込み回数には保証回数があるため、同じセクタに書き込みを続けていると、他のセクタよりも早く書き込み保証回数を超えてしまう可能性がある。本実施形態では、セクタの書き込み保証回数を考慮し、プログラムの更新を行う方法について説明する。
図9(a)に本実施形態の情報処理装置であるマルチCPUシステムを示す。図9(b)に不揮発性メモリ911の構成を示す。図9(a)のマルチCPUシステムは先の第1の実施形態の図1(a)で説明した構成と同様のため、ここでの説明は省略する。
図9(b)を用いて不揮発性メモリ911の構成について説明する。ここでは、先の第1の実施形態の図1(b)と差異のある構成のみ説明する。プログラム更新対象セクタ9112、9113、9114は、夫々セクタの書き込み回数を記憶するカウンタ9115、9116、9117を有する。夫々のカウンタは、セクタに書き込みが行われる度に書き込み回数を1ずつインクリメントする。
図10(a)に本実施形態でのプログラム更新に用いるプログラム更新データの一例を示す。図10(b)にプログラム更新データのより具体的な構成の一例を示す。ここでは、先の第1の実施形態で説明した図2(a)及び図2(b)と差異のある構成について説明する。1003、1005はデータ退避用バッファセクタとして用いることが禁止されているセクタの番号を保持している。この1003、1005に番号が保持されているセクタは、データ退避用バッファセクタとして使用しないことでセクタの書き込み回数が偏ってしまうことを防ぐ。
図11のフローチャートを用いて、データ退避用バッファセクタの決定方法を説明する。なお、プログラム更新データの作成方法は先の第1の実施形態の図3と同様である。また、図11のフローチャートは図3のS307におけるデータ退避用バッファセクタの決定時に用いられるものである。
S3071において、現在までに各セクタにおいて行われた書き込みの回数を読み出す。S3072において、各セクタの書き込みの回数を比較し、書き込み回数が最少のセクタを選択する。S3073において、回数が最少のセクタをデータ退避用バッファセクタとしてプログラム更新した場合のΔtと、Ta−Tbが最大になる場合のΔtmaxとの比較を行う。S3073において、Δtの方が大きい場合は、S3074において、選択されたセクタをデータ退避用バッファセクタの候補から外し、次に書き込み回数が少ないセクタを選択し、S3073に戻る。S3073において、Δtの方が小さい場合は、S3075において、選択されたセクタをデータ退避用バッファセクタとする。S3076において、S3075でデータ退避用バッファセクタとして用いると決定したセクタの書き込み回数を、データ退避用バッファセクタとして使用した後の回数に書き替える。
図12のフローチャートを用いて、プログラムの更新方法について説明する。なお、ここでは、先の第1の実施形態で説明した図4のフローチャートと差異のあるステップについて説明する。S1201において、被制御CPUのバージョンを読み出した後、S1202において、データ退避用バッファセクタとして使用禁止のセクタ番号を読み出す。被制御CPU909は不揮発性メモリ911上の各セクタの書き込み回数を示すデータアドレス9115、9116、9117の値が規定値回数以上であったセクタは、データ退避用バッファセクタとしての使用を禁止する。書き込み回数が他のセクタより多いセクタはデータ退避用バッファセクタとして用いないとしたこれ以降の更新処理は、先の第1の実施形態の図4及び図5と同様であるためここでの説明は省略する。
このように、他のセクタよりも書き込み回数が多いセクタは、データ退避用バッファセクタとして用いないようにすることで、ひとつのセクタの書き込み回数が増えてしまい、不揮発性メモリの寿命が短縮してしまうことを防ぐことができる。また、先の実施形態と同様に、全文データを用いるか差分データを用いるかを選択することによって、データの更新に必要な時間を短縮することができる。よって、プログラムの一部のみを更新するような場合には、更新しないプログラムに関しては通信する必要がないため、更新時間を短縮できる。なお、先の実施形態で説明した更新データの多いセクタをデータ退避用バッファセクタとして用いるという条件と、本実施形態で説明した書き込み回数が多いセクタはデータ退避用バッファセクタとして用いないという条件を組み合わせることが可能である。例えば、更新データの最も多いセクタが書き込み回数の閾値を越えているときに、残りのセクタのうち書き込み回数が閾値を越えていないセクタの中で最も更新データの多いセクタをデータ退避用バッファセクタとして用いるということが可能である。
101 プログラム更新データ出力装置
102 制御CPUを有するコントローラ
103 被制御CPUを有するコントローラ
105 制御CPU
107 大容量のRAM
109 被制御CPU
110 小容量RAM
111 不揮発性メモリ
1112、1113、1114 プログラム更新対象セクタ
102 制御CPUを有するコントローラ
103 被制御CPUを有するコントローラ
105 制御CPU
107 大容量のRAM
109 被制御CPU
110 小容量RAM
111 不揮発性メモリ
1112、1113、1114 プログラム更新対象セクタ
Claims (6)
- 複数の記憶領域からなる記憶手段と、
前記記憶手段に保存されているデータを更新するための更新データを受信する受信手段と、
前記受信した更新データに基づき前記記憶手段のデータを更新する制御手段と、を有する情報処理装置であって、
前記制御手段は、前記受信手段により前記複数の記憶領域のうちの第1の記憶領域に保存されているデータの一部を更新する前記更新データを受信すると、第2の記憶領域に保存されているデータを消去し、前記第1の記憶領域に保存されているデータを第2の記憶領域に書き込み、前記第1の記憶領域のデータを消去した後、前記受信手段により受信した更新データと前記第2の記憶領域に書き込んだデータとを用いて前記第1の記憶領域のデータを更新することを特徴とする情報処理装置。 - 前記制御手段は、前記第1の記憶領域のデータを更新した後、前記第2の記憶領域のデータを消去し、前記第2の記憶領域の更新データを前記受信手段によって受信し、受信した前記第2の記憶領域の更新データを用いて前記第2の記憶領域のデータを更新することを特徴とする請求項1に記載の情報処理装置。
- 前記制御手段は、前記第1の記憶領域のデータを書き込むための前記第2の記憶領域として、前記第1の記憶領域の更新データ量より更新データ量が多い記憶領域を第2の記憶領域として使用することを特徴とする請求項1又は2に記載の情報処理装置。
- 前記制御手段は、前記第1の記憶領域のデータを書き込むための前記第2の記憶領域として、書き込み回数が閾値より少ない記憶領域を第2の記憶領域として使用することを特徴とする請求項1又は2に記載の情報処理装置。
- 前記制御手段は、書き込み回数が閾値より少ない、且つ更新データの最も多い記憶領域を第2の記憶領域として使用することを特徴とする請求項1又は2に記載の情報処理装置。
- 前記制御手段は、前記受信手段により第1の記憶領域に保存されたデータのすべてを更新する更新データを受信すると、前記第1の記憶領域に保存されたデータを消去した後、前記受信手段により受信した更新データを前記第1の記憶領域に書き込むことを特徴とする請求項1に記載の情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009232727A JP2011081561A (ja) | 2009-10-06 | 2009-10-06 | 情報処理装置 |
US12/893,392 US20110082995A1 (en) | 2009-10-06 | 2010-09-29 | Information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009232727A JP2011081561A (ja) | 2009-10-06 | 2009-10-06 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011081561A true JP2011081561A (ja) | 2011-04-21 |
Family
ID=43824067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009232727A Pending JP2011081561A (ja) | 2009-10-06 | 2009-10-06 | 情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110082995A1 (ja) |
JP (1) | JP2011081561A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017057111A1 (ja) * | 2015-09-29 | 2017-04-06 | 日立オートモティブシステムズ株式会社 | 車載制御装置、プログラム更新システム、及び、プログラム更新ソフトウェア |
WO2018173911A1 (ja) | 2017-03-24 | 2018-09-27 | 日立オートモティブシステムズ株式会社 | 車載制御装置、及び、プログラム更新ソフトウェア |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3093761A1 (en) * | 2015-05-13 | 2016-11-16 | Gemalto Sa | Integrated circuit card adapted to transfer first data from a first application for use by a second application |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6331876B1 (en) * | 1996-11-12 | 2001-12-18 | U.S. Philips Corporation | Method of updating software in a video receiver |
US6675281B1 (en) * | 2002-01-22 | 2004-01-06 | Icreate Technologies Corporation | Distributed mapping scheme for mass storage system |
US6973531B1 (en) * | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
US6865122B2 (en) * | 2003-04-11 | 2005-03-08 | Intel Corporation | Reclaiming blocks in a block-alterable memory |
US7587433B2 (en) * | 2004-06-01 | 2009-09-08 | Red Bend Ltd. | Method and system for in-place updating content stored in a storage device |
US9176741B2 (en) * | 2005-08-29 | 2015-11-03 | Invention Science Fund I, Llc | Method and apparatus for segmented sequential storage |
JP4945118B2 (ja) * | 2005-11-14 | 2012-06-06 | 株式会社日立製作所 | 記憶容量を効率的に使用する計算機システム |
JP4864557B2 (ja) * | 2006-06-15 | 2012-02-01 | 富士通株式会社 | ソフトウェアの更新処理プログラム及び更新処理装置 |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
-
2009
- 2009-10-06 JP JP2009232727A patent/JP2011081561A/ja active Pending
-
2010
- 2010-09-29 US US12/893,392 patent/US20110082995A1/en not_active Abandoned
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10430176B2 (en) | 2014-11-17 | 2019-10-01 | Hitachi Automotive Systems, Ltd. | In-vehicle control device, program update system, and program update software |
WO2017057111A1 (ja) * | 2015-09-29 | 2017-04-06 | 日立オートモティブシステムズ株式会社 | 車載制御装置、プログラム更新システム、及び、プログラム更新ソフトウェア |
JPWO2017057111A1 (ja) * | 2015-09-29 | 2018-06-14 | 日立オートモティブシステムズ株式会社 | 車載制御装置、プログラム更新システム、及び、プログラム更新ソフトウェア |
WO2018173911A1 (ja) | 2017-03-24 | 2018-09-27 | 日立オートモティブシステムズ株式会社 | 車載制御装置、及び、プログラム更新ソフトウェア |
US11263001B2 (en) | 2017-03-24 | 2022-03-01 | Hitachi Astemo, Ltd. | Car onboard control device and program updating software |
Also Published As
Publication number | Publication date |
---|---|
US20110082995A1 (en) | 2011-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750615B (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN102763090B (zh) | 用于利用nand存储器件同时读写的系统和方法 | |
TWI492051B (zh) | 資料儲存裝置與快閃記憶體控制方法 | |
CN111554340B (zh) | 存取管理的方法、记忆装置、控制器、主装置和电子装置 | |
TWI519953B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
US20120290769A1 (en) | Flash memory device, memory control device, memory control method, and storage system | |
TWI515559B (zh) | 資訊處理裝置 | |
JP2011081561A (ja) | 情報処理装置 | |
WO2018103010A1 (zh) | 一种存储设备管理方法及用户终端 | |
WO2012008068A1 (ja) | マイクロコントローラ及びその制御方法 | |
JP5521477B2 (ja) | メモリ制御装置 | |
JP2012128900A (ja) | 半導体記憶装置、及び記憶媒体 | |
JP3450071B2 (ja) | Pcカード | |
CN111045961B (zh) | 数据处理方法及使用所述方法的存储控制器 | |
JP4410271B2 (ja) | メモリ制御装置 | |
JP5424574B2 (ja) | ナビゲーション装置 | |
JP2004296014A (ja) | 不揮発性メモリの消去回数平準化方法 | |
JP4696500B2 (ja) | メモリ管理方法および装置 | |
CN105706067A (zh) | 内置闪存的微型计算机、向内置于微型计算机的闪存的数据写入方法、以及向闪存写入数据的程序 | |
JP2007265230A (ja) | 情報処理装置及びそのファイル読み込み方法 | |
JP2011039825A (ja) | ファームウェア更新方法及びファームウェア更新装置 | |
JP5821788B2 (ja) | 電子制御装置 | |
JP2017173977A (ja) | 電子制御装置 | |
JP2008234723A (ja) | メモリシステム | |
JP5762139B2 (ja) | 情報処理端末及び管理サーバ |