JP6070360B2 - 情報処理装置およびその処理方法 - Google Patents

情報処理装置およびその処理方法 Download PDF

Info

Publication number
JP6070360B2
JP6070360B2 JP2013070859A JP2013070859A JP6070360B2 JP 6070360 B2 JP6070360 B2 JP 6070360B2 JP 2013070859 A JP2013070859 A JP 2013070859A JP 2013070859 A JP2013070859 A JP 2013070859A JP 6070360 B2 JP6070360 B2 JP 6070360B2
Authority
JP
Japan
Prior art keywords
information
standby
flag
update
area
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.)
Active
Application number
JP2013070859A
Other languages
English (en)
Other versions
JP2014194682A (ja
Inventor
智也 佐々木
智也 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2013070859A priority Critical patent/JP6070360B2/ja
Publication of JP2014194682A publication Critical patent/JP2014194682A/ja
Application granted granted Critical
Publication of JP6070360B2 publication Critical patent/JP6070360B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本発明は、情報処理装置およびその処理方法に関するものである。とくに、情報処理装置は、不揮発性半導体メモリが搭載され、通信によりもたらされるデータを処理するファームウェア装置であり、データ処理方法は、ファームウェアを運用する運用面と待機面の2面を確保し、ファームウェアの更新に応じて運用面と待機面を切り換えて起動する方法に関するものである。
特許文献1は半導体集積回路について提案している。特許文献1には、フラッシュメモリにおける各セクタの消去状態を保持し、連続して同一アドレスのメモリデータに対する消去コマンドが発行されたか否かをハードウェア的に条件を判定してフラッシュメモリの過消去による文字化けや劣化の発生を防止することが記載されている。
また、特許文献2は情報処理装置、データ処理方法、プログラムに関するものである。特許文献2には、条件判断として、通信機器に接続されている不揮発性記憶媒体の種別を判別し、この媒体に適した消去コマンドを自動選択するとともに、ファイルシステムから使用領域のサイズ情報を取得し、使用領域だけを消去することが記載されている。ただし、ウェアレベリングを実施している場合、対象領域すべてを消去させる条件判断が適用される。これは、使用領域の判定が困難であるからである。特許文献2では、これらのように条件判断することにより、不揮発性記憶媒体およびファイルシステムの種類によって消去時間がより短い消去方法を適切に自動選択して消去することができる。
特開2006−107326号公報 特開2011−205295号公報
しかしながら、これらの先行技術には、実際に、一般ユーザが使用する製品への適用を考えた場合、いくつか課題がある。
特許文献1の半導体集積回路は、不揮発性記憶媒体を制御するフラッシュ・インタフェース回路を備えた構成であることから、コスト面がネックになって必ずしも、この構成をとれるとは限らない。
また、特許文献1は、消去済みのアドレスが保持する仕組みを有している。仕組みが保持するアドレス情報は、不揮発性記憶媒体に保持される情報ではない。このため、消去後の通信機器において、ユーザが機器の電源を断にした場合や停電が発生した場合に、消去済みのアドレスとの判断に用いる情報が失われてしまう。結果として、期待される有効な効果が得られなくなる。
特許文献2では、ファイルシステムの使用と、このファイルシステムから使用領域または使用セクタ数を取得可能な点が必要条件である。この反面、必要条件を満たさない場合、提案の技術は利用できない。具体的には、ファイルシステムを用いず、直接、不揮発性記憶媒体にデータを書き込む方式のソフトウェアや使用セクタ数が取得できないファイルシステムの場合である。
特許文献2は、管理する使用セクタ数を基に消去対象の領域を判断しているが、これ以外の未使用セクタでデータ化けが発生した場合のように、意図していない状況を考慮できず、この結果、消去漏れが生じてしまう虞がある。これは、“不揮発性メモリ内の情報は常に完全である”という暗黙の条件に依っている。このため、実際の製品に適用すると、極めて高いリスクに曝されることになり、結局、利用が困難になる。
本発明はこのような課題に鑑み、更新によるハードウェアの構成変更によらず、使用領域を示す情報を取得して情報の消去前に消去の要否を判断することができる情報処理装置およびその処理方法を提供することを目的とする。
本発明に係る情報処理装置は上述の課題を解決するために、書き込まれたアプリケーションの実行や更新を制御し、更新に応じて外部機器からの新たな情報を書き込む情報処理装置において、この装置は、情報を記憶する領域として運用面および待機面の2面が区分配設され、この2面の区分領域に加えて、この2面のそれぞれが運用面および待機面のいずれの状態にあるかを示す第1のフラグ、ならびに待機面の情報消去の状態を示す第2のフラグを記憶するフラグの区分領域が配設された不揮発性記憶手段と、この装置を起動し、起動後、更新要求に応じて外部機器から不揮発性記憶手段への新たな情報の書込みを制御する制御機能ブロックとを含み、この制御機能ブロックは、起動にともない第2のフラグが書込み済み状態であることに応じて待機面における1つのセクタ分ずつ情報を消去させて、この待機面の区分領域を消去するように制御する更新制御機能ブロックを含むことを特徴とする。
また、本発明に係るデータ処理方法は上述の課題を解決するために、書き込まれたアプリケーションの実行や更新を制御し、更新に応じて外部機器からの新たな情報を書き込む情報処理装置の処理方法において、情報を記憶する領域として運用面および待機面の2面が区分配設され、この2面の区分領域に加えて、この2面のそれぞれが運用面および待機面のいずれの状態にあるかを示す第1のフラグ、ならびに待機面の情報消去の状態を示す第2のフラグを記憶するフラグの区分領域が配設された不揮発性記憶手段と、この装置を起動し、起動後、更新要求に応じて外部機器から不揮発性記憶手段への新たな情報の書込みを制御する制御機能ブロックとを含み、この制御機能ブロックは、起動にともない第2のフラグが書込み済み状態であることに応じて待機面における1つのセクタ分ずつ情報を消去させて、この待機面の区分領域を消去するように制御する更新制御機能ブロックを含む情報処理装置を用い、この方法は、起動にともない第1および第2のフラグを読み、運用面に記憶する情報を起動する第1の工程と、更新制御機能ブロックで待機面の区分領域に情報が書込み状態にあるか否かを判断し、書込み状態と判断した場合、待機面の区分領域に対する情報の保持/更新要求のいずれの状態にあるかの判断に進み、待機面の区分領域が消去済みの状態にある場合、更新待ちする第2の工程と、待機面の区分領域に対する情報の保持/更新要求のいずれの状態にあるかを判断し、情報を保持する状態にある場合、待機面の区分領域の消去処理に進み、待機面の区分領域に対する情報の更新要求の状態にある場合、情報の更新処理に進む第3の工程と、消去処理として待機面の区分領域の情報を消去する第4の工程と、待機面の区分領域すべての情報の消去が完了か否かを判定し、完了と判定した場合、第2のフラグの変更処理に進み、未了と判定した場合、第2の工程に戻す第5の工程と、第2のフラグの変更処理として第2のフラグを消去済みに設定し、第2の工程に戻す第6の工程とを含むことを特徴とする。
本発明によれば、不揮発性記憶手段で情報を記憶する領域として運用面および待機面の2面が区分配設され、この2面の区分領域に加えて、この2面のそれぞれが運用面および待機面のいずれの状態にあるかを示す第1のフラグ、ならびに待機面の情報消去の状態を示す第2のフラグを記憶するフラグの区分領域が配設され、制御機能ブロックの更新制御機能ブロックでこの装置を起動し、起動後、更新要求に応じて外部機器から不揮発性記憶手段への新たな情報の書込みを制御するとともに、起動にともない第2のフラグが書込み済み状態であることに応じて待機面における1つのセクタ分ずつ情報を消去させて、更新によるハードウェアの構成変更によらず、この待機面の区分領域を消去するように制御して、あらかじめ、待機面の情報を消去しておくことにより、更新要求を受けてから更新完了までの更新時間を短縮することができる。
また、情報の消去に際しても、待機面の区分領域が消去済みか否かを判断し、消去済みと判断した場合、該当する領域の消去処理の実行をスキップすることにより、情報の消去に要する時間を短縮化することができる。
本発明に係る情報処理装置を適用した通信機器における概略的な機能構成を示す機能ブロック図である。 本発明に係る情報処理装置を適用した通信機器の概略的なハードウェア構成を示すブロック図である。 図1のフラッシュメモリを区分したパーティション領域を示すメモリマップである。 図3のデータ領域に格納されるフラグの種類とデータの関係を示す図である。 図1の通信機器における起動処理の手順を示すフローチャートである。 図5の起動処理に続く更新制御の起動手順を示すフローチャートである。 図6の更新制御におけるセクタ消去の手順を示すフローチャートである。 図6の更新制御における更新処理の手順を示すフローチャートである。 図8の更新処理におけるセクタへの書込み処理の手順を示すフローチャートである。 図1のフラッシュメモリを区分したパーティション領域を示す他のメモリマップである。 図1の通信機器における更新制御機能部の概略的な構成を示す図である。 図11の更新制御におけるアクセス監視に基づく消去処理の手順を示すフローチャートである。 図11の更新制御におけるアクセス監視に基づく消去処理の他の手順を示すフローチャートである。
次に添付図面を参照して本発明による情報処理装置の一実施例を詳細に説明する。図1を参照すると、本発明による情報処理装置の実施例は、ファームウェアとして機能する通信機器10であり、通信機器10のファームウェア処理機能部40は、フラッシュメモリ部60で情報を記憶する領域として運用面および待機面の2面が区分配設され、この2面のファームウェア領域に加えて、この2面のそれぞれが運用面および待機面のいずれの状態にあるかを示す起動面フラグ、ならびに待機面の情報消去の状態を示す消去フラグを記憶するデータ領域が配設され、制御機能部42の更新制御機能部50でこの通信機器10を起動し、起動後、更新要求に応じて外部機器からフラッシュメモリ部60への新たな情報の書込みを制御するとともに、起動にともない消去フラグが未消去であることに応じて、たとえば待機面における1つのセクタ分ずつ消去させて、更新によるハードウェアの構成変更によらず、この待機面の区分領域を消去するように制御して、あらかじめ、待機面の情報を消去しておくことにより、更新要求を受けてから更新完了までの更新時間を短縮することができる。
本発明と直接関係のない部分について図示および説明を省略する。以下の説明で、信号はその現れる接続線の参照番号で指示する。
通信機器10は、図2に示すように、CPU(Central Processing Unit)12、RAM(Random Access Memory)14、フラッシュメモリ16、LAN(Local Area Network)インタフェース回路(I/F)18およびUSB(Universal Serial Bus)インタフェース回路20を含む。本発明を実現する上で、ハードウェアには、CPU 12、RAM 14、フラッシュメモリ16が搭載されていることが必要条件である。
CPU 12は、プログラムをストレージから読み込んで通信機器10における情報処理を実行し、情報をやり取りして機器の通信を制御する機能を有する。このため、CPU 12には、バス22を介してRAM 14、フラッシュメモリ16、LAN I/F回路18およびUSB I/F回路20が接続されている。
RAM 14は、フラッシュメモリ16に記憶されたハードウェアを制御する運用ソフトウェア、すなわちファームウェアの実行に際して用いる情報を格納するストレージである。
フラッシュメモリ16は、書換え可能な不揮発性記憶媒体であり、本実施例ではNOR型を適用している。フラッシュメモリ16は、通信機器10に電源が投入されると、内蔵するこの機器10を初期化するプログラムデータをブートローダからCPU 12に送って実行し、機器10を起動する。メモリ内の構成は後段で記述する。フラッシュメモリ16には、通信機器10が実行する各種のアプリケーションのプログラムも記憶されている。
LAN I/F回路18は、LANに接続されている外部機器と通信機器10が情報をやり取りするインタフェース機能を有する。外部機器には、たとえばPC(Personal Computer)11やサーバ等がある。LAN I/F回路18は、PCのインタフェース機能と同じ仕様同士、たとえば有線/無線に応じて通信する。
USB I/F回路20は、USBに接続されている周辺機器と通信機器10が情報をやり取りするインタフェース機能を有する。周辺機器には、個人用のUSBメモリ13等がある。
本実施例では、LAN I/F回路18およびUSB I/F回路20を挙げたが、通信機器10には、外部機器や周辺機器から通信機器10のRAM 14にファームウェアを転送できる、少なくとも1つのインタフェース回路があればよい。また、ファームウェアの転送方式はどんな方式でも構わない。
次にフラッシュメモリ16のパーティション構成を図3に示す。フラッシュメモリ16は、便宜上、メモリ内部をいくつかのパーティションに分割されている。パーティションは、メモリ内部を、たとえばブートローダ領域24、ファームウェア領域26および28、ならびにデータ領域30、・・・に割り当てるように設定されている。フラッシュメモリ16には、ファームウェア領域26および28が運用面と待機面の2面分を保持可能にする十分な空き容量が要求される。本実施例では、ファームウェア領域26および28をA面/B面に設定している。
また、データ領域30には、2つのフラグが格納されている。データ領域30は、図4に示すように、フラグ名32および設定データ34を有する。フラグ名32には、第1のフラグに起動面フラグ36、および第2のフラグに消去フラグ38がある。起動面フラグ36は、A面とB面のファームウェアのどちらを起動するかの判断に用いるフラグであり、設定データ34は起動を“1”、待機を“0”と設定する。したがって、A面起動とB面待機の場合、起動面フラグ36の設定データ340は“10”にデータセットしている。逆の場合、起動面フラグ36の設定データ340は“01”に設定されている。
また、消去フラグ38は、待機面のセクタそれぞれが消去済みか否かの判断に用いるフラグであり、設定データ342は消去済み状態を“1”、未消去または書込み状態を“0”に設定して表わす。消去フラグ38のあるセクタが“1”の場合、上述の条件から、B面のあるセクタが消去済みであることを知ることができる。
なお、消去フラグ38は、A面/B面それぞれを表わす設定データ342に対して値“01”、“00”および“10”を採ることができる。とくに、設定データ342の値“00”は、ファームウェアの更新時に起動面が切り換えられるまでの間、一時的に採られる値である。
次にファームウェアにおけるソフトウェアとしてフラッシュメモリ16に書き込んでいるファームウェア処理機能部40の概略的な機能ブロックの構成について図1に示す。ファームウェア処理機能部40は、制御機能部42、デバイスドライバ部44、ブートローダ機能部46、および周辺I/F機能部48を含む。
制御機能部42は、更新制御機能部50およびアプリケーション群52を有する。更新制御機能部50は、新しいファームウェアへの更新を制御する機能を有する。更新制御機能部50は、デバイスドライバ部44のデバイスドライバそれぞれを介して該当する対象のデバイスと通信して新たなファームウェアをフラッシュメモリ14に書込み制御する。
アプリケーション群52は、外部機器から通信機器10のRAM 14への転送処理およびファームウェアの更新実行を更新制御機能部50に指示するソフトウェア群である。このソフトウェア群は、ファームウェアの転送/更新を可能にするものであれば、アプリケーションやプロトコルの制限なしに適用することができる。たとえば各種のサーバやクライアントのアプリケーションとしてユーザの要求を満足するプログラムを内蔵し、更新条件に応じていくつかアプリケーションの組合せがある。
具体的には、LANに接続されたPCからWebのGUI(Graphic User Interface)を操作してファームウェアを更新する場合、http(Hyper-Text Transfer Protocol)クライアントアプリケーションが用いられる。また、FTP(File Transfer Protocol)でファームウェアを置き換え、telnet(Telecommunication network)コマンドで更新を実施する場合には、FTPサーバアプリケーションとtelnetサーバアプリケーションが用いられる。さらに、ファームウェアを、公開しているhttpサーバからLANを経由で取得する場合には、httpクライアントアプリケーションが用いられる。
デバイスドライバ部44は、入出力デバイスである周辺機器に依存してこれらを制御し、アプリケーションに抽象化したインタフェースを提供するソフトウェアによる機能部である。本実施例では、フラッシュデバイスドライバ54、LANデバイスドライバ56およびUSBデバイスドライバ58を備える。フラッシュデバイスドライバ54、LANデバイスドライバ56およびUSBデバイスドライバ58は、それぞれ周辺I/F機能部48の対応したデバイス、すなわちフラッシュメモリや、デバイス・インタフェースであるLAN I/F部62およびUSB I/F部64を介して、データをやり取りしている。
ブートローダ機能部46は、通信機器10の電源投入時に最初に起動されるソフトウェア機能部である。ブートローダ機能部46は、本実施例では主に、データ領域30のフラグを参照し、A面とB面のいずれのファームウェア領域を起動するか判断し、該当するファームウェアを起動する機能を有する。ブートローダ機能部46は、この判断のためCPU 12で実行されデータ領域30の起動面フラグ36にアクセスして設定データ34を参照する。ブートローダ機能部46は、図1においてフラッシュメモリ14の外に図示しているが、フラッシュメモリ部60内の各領域にアクセスして起動させるというアクセス機能の持つ意味を、重視して明確に示しため、便宜上、このような表示にしている。したがって、メモリマップとして格納位置を示すことを重視する場合、ブートローダ機能部46は、図3に示すようにブートローダ領域24で表示している。
周辺I/F機能部48は、前述したようにデバイスドライバに依存して制御するソフトウェアである。フラッシュメモリ部60には、フラッシュデバイスドライバ54によってデータの読出し/書込みが行なわれる。LAN I/F部62は、LANに接続されたPC 11と通信可能にされ、USB I/F部64は、USBメモリ13と通信が行なわれる。
次に本発明を適用した通信機器10における主な動作を記述する。この動作には、主に、起動、更新の起動およびファームウェアの更新の3つの工程がある。まず、通信機器10の起動手順を図5に示す。通信機器10の電源を投入すると、CPU 12が起動し、フラッシュメモリ14のブートローダ領域24にアクセスする。CPU 12は、図1のように、このアクセスによりブートローダ機能部46が起動する(ステップS10)。
ブートローダ機能部46は、フラッシュメモリ14のデータ領域30に保存されている起動面フラグ36の設定データ34を読む(ステップS12)。
次にブートローダ機能部46は、起動面フラグ36の設定データ34がA面の起動か否かを判断する(ステップS14)。読み込んだ起動面フラグ36の設定データ34が“10”または単に“1”のとき(YES)、A面のファームウェアで起動すると判断する。また、読み込んだ起動面フラグ36の設定が“01”または“0”のとき(NO)、B面のファームウェアで起動すると判断する。本実施例では、A面のファームウェアを起動する場合で起動動作を記述する。
次にブートローダ機能部46は、A面のファームウェアをRAM 20に展開する(ステップS16)。展開処理完了後、RAM 20上に展開されたファームウェアのプログラムを先頭から順次、適宜に処理して起動する(ステップS18)。
なお、B面のファームウェアを起動する場合、B面のファームウェアをRAM 20に展開する(ステップS17)。
この起動後、アプリケーション群52のアプリケーションを指示に応じて起動する(ステップS20)。このように運用面の内容で起動しアプリケーションを動作させながら、待機面の内容を消去している。
待機面の内容の消去手順としては、運用指示に応じたアプリケーションの起動完了後、図6に示すように、もう1つの起動工程である更新制御の起動に進む。更新制御の起動では、更新制御機能部50を起動する(ステップS22)。更新制御機能部50は、消去フラグ38の設定データ34を読む。更新制御機能部50は、消去判断処理に進む(ステップS24へ)。
消去判断処理では、消去フラグ38が消去済か否かを判断する(ステップS24)。消去フラグ38が消去済“1”の場合(YES)、更新待機状態に遷移する(ステップS26へ)。また、消去フラグ38が未消去“0”の場合、すなわち書込みが有る場合(NO)、更新要求検出処理に進む(ステップS28へ)。
更新要求検出処理では、更新制御機能部50が格納するアプリケーションからファームウェアの更新要求を受け付けているか否かを判断する(ステップS28)。ファームウェアの更新要求を受け付けている場合(YES)、ファームウェアの更新処理に進み(ステップS30へ)、更新を実行する。また、ファームウェアの更新要求を受け付けていない場合(NO)、待機面の消去処理に進む(ステップS32へ)。
待機面の消去処理は、1セクタ単位で実行する(ステップS32)。この消去後、B面のファームウェア領域28の消去したセクタ番号に対して+1だけ歩進して(ステップS34)、セクタ判断処理に進む(ステップS36へ)。
セクタ判断処理は、消去したセクタ、すなわち歩進前のセクタ数が最終か否かを判断する(ステップS36)。消去したセクタが最終の場合(YES)、消去が完了したと判断して消去フラグの値を“0”から消去済みの設定データ“1”に変更する(ステップS38)。この変更後、消去判断処理に戻る(ステップS24へ)。また、消去したセクタが最終でない場合(NO)も、直ちに消去判断処理に戻る(ステップS24へ)。このように、消去判断処理からセクタ判断処理までの繰返し処理は、本実施例の待機面であるB面のファームウェア領域28の全セクタが消去を完了するまでのループ処理に対応している。
さらに、起動処理における具体的なセクタ消去の手順について図7を参照しながら、簡単に記述する。セクタ単位の消去は、更新制御機能部50、フラッシュデバイスドライバ54およびフラッシュメモリ部60の間の手順に基づいて処理される。
更新制御機能部50は、時刻T10にてセクタ消去指示コマンド66をフラッシュデバイスドライバ54に送る。フラッシュデバイスドライバ54は、時刻T12にて消去対象のセクタのデータを読むリードコマンド68をフラッシュメモリ部60に送る。図示しないが、フラッシュメモリ部60は、消去対象のセクタのデータを読んだ結果をフラッシュデバイスドライバ54に返す。
フラッシュデバイスドライバ54は、時刻T14にて消去対象のセクタのデータが消去済みか否かを判断する。フラッシュメモリ部60のように半導体メモリにおける消去状態とは、ビットデータすべてが論理レベル“1”になっている状態である。全ビットが“1”を示す場合(YES)、該当セクタは消去済み状態と判断する。この判断により、セクタのイレースコマンドを発行することなく、スキップすることができる。ところで、セクタの消去処理は、一般的に、時間を要する処理として知られている。このように消去済み状態による消去処理のスキップが可能になることで、従来の消去手順に比べて消去時間を短縮することができる。
また、対象セクタのビットデータに論理レベル“0”が含まれている場合(NO)、該当セクタは未消去(書込み)状態と判断する。このとき、フラッシュデバイスドライバ54は、時刻T16にて対象のセクタに対してイレースコマンド70を発行してフラッシュメモリ部60に出力し、データを消去する。フラッシュデバイスドライバ54は、図示しないが、フラッシュメモリ部60から消去完了の通知を受ける。フラッシュデバイスドライバ54は、時刻T18にて対象セクタの消去指示コマンド66に対する応答としてのセクタの消去完了通知72が更新制御機能部50に返す。
なお、本実施例では、ハードウェアにおいて一般的な論理レベル“1”を消去状態としたが、これに限定されることなく、論理レベル“0”を消去状態に設定してもよい。
次にファームウェアの更新処理工程について図8を参照しながら、記述する。更新制御機能部50は、待機判定処理に進む(ステップS40へ)。待機判定処理は、各アプリケーションからたとえば割込み処理のようにファームウェアの更新要求を受信するまで待機状態にするループ処理である(ステップS40およびS42)。すなわち、待機処理で所定の時間経過を待ち(ステップS40)、更新判定処理は、ファームウェアの更新要求の有無を判定する(ステップS42)。ファームウェアの更新要求がない場合(NO)、待機処理に戻る(ステップS40へ)。また、ファームウェアの更新要求がある場合(YES)、外部の接続機器から新しいファームウェアを通信機器10のRAM 20に転送し、ファームウェアの更新処理を開始する。
具体的な更新処理には、図1の構成から考えられるように、第1に、PCをLAN接続し、通信機器10にhttpでファームウェアの転送、更新実行する方法、第2に、PCをLAN接続し、通信機器10にFTP接続し、RAM 20にファームウェアを転送し、telnet接続から更新実行する方法、第3に、USBメモリ13を接続し、通信機器10にtelnet接続し、USBメモリ13をマウントし、USBメモリ13からRAM 20にファームウェアをコピーし、更新実行する方法等がある。
更新制御機能部50は、各アプリケーションからファームウェアの更新要求を受信すると、現在、待機中のファームウェア領域28の消去フラグ38の値を未消去“0”に変更する(ステップS44)。この変更は、待機面にこれからの新たなファームウェアが何等かのプログラムデータとして書き込まれることから、結果的に消去済み“1”から書込み状態の未消去“0”に変更することを意味している。したがって、A面/B面の消去フラグ38の値は、この時点で2つ併せてみると値“00”になる。
この変更後、新しいファームウェアをフラッシュメモリ14のファームウェア領域28に書込みを開始する。ここでの書込み先は、この時点における待機面、B面である。書込み処理は、B面に対して1セクタ単位で実行する(ステップS46)。この制御機能部50における更新処理もセクタ単位での書込み処理は、図9に示すように、時刻T20にて更新制御機能部50から書込みコマンド74で指示され、フラッシュデバイスドライバ54の内部で処理される。
さらに、この書込み処理について簡単に記述すると、フラッシュデバイスドライバ54は、時刻T22にて書込み対象のセクタのデータをリードする。リードにおいてフラッシュデバイスドライバ54は、時刻T22にてセクタのリードコマンド76をフラッシュメモリ部60に出力する。フラッシュメモリ部60は、図示しないがリードコマンド76の応答としてセクタのデータをフラッシュデバイスドライバ54に返す。
フラッシュデバイスドライバ54は、時刻T24にて全ビットが“1”、すなわち対象セクタが消去済み状態か否かを判別する。未消去とは、セクタ内のビットが1つでも存在する状態と判別した場合(NO)、フラッシュデバイスドライバ54は、時刻T26にてセクタイレースコマンド78をフラッシュメモリ部60に出力する。このコマンドを受けてフラッシュメモリ部60は、セクタ内のデータすべてを消去する。フラッシュメモリ部60は、図示しない消去完了をフラッシュデバイスドライバ54に返す。
また、全ビットが“1”で既にセクタが消去済みと判別した場合(YES)、上述したセクタイレース処理しなくて済むから、この処理をスキップして、直ちに書込み処理に進む。前述したように、セクタイレース処理は、時間を要する処理であるため、セクタイレース処理のスキップにより、消去時間の短縮となる。とくに、起動処理で全セクタが消去済みの場合、大幅な時間短縮となる。
このセクタ消去の判別後、フラッシュデバイスドライバ54は、時刻T28にてセクタライトコマンド80をフラッシュメモリ部60に出力し、新たなファームウェアを対象のセクタに書き込む。フラッシュメモリ部60は、図示しないが、書込み完了をフラッシュデバイスドライバ54に応答として返す。
フラッシュデバイスドライバ54は、セクタライト完了後の時刻T30にて、セクタ書き込み完了通知82を更新制御機能部50に通知する。
この1セクタの書込み完了後、ふたたび図8に戻って、B面の最終セクタまで達したか否かを判断する(ステップ48)。最終セクタに達していないと判断した場合(NO)、B面の1セクタの書込み処理に戻る(ステップ46へ)。また、最終セクタに達したと判断した場合(YES)、起動面フラグ反転処理に進む(ステップ50へ)。
起動面フラグ反転処理は、更新制御機能部50は、全セクタの書き込み完了後、起動面フラグのデータ“10”から“01”に切り換える(ステップ50)。すなわち本実施例における起動面はA面からB面に反転させている。このように、A面で起動していた場合、B面に更新するファームウェアに書き込み、起動面フラグをA面からB面に変更する。
この動作完了後、通信機器10を再起動する(ステップ52)。起動により、データ領域30を参照して、運用面がB面に切り替わり、新しいファームウェアで起動する。消去フラグ38の待機面の値を読むと、“00”であるから、未消去“0”と判断して待機のA面を消去する。
本実施例は、A面で起動した場合を記述したが、通信機器10は、B面で起動してもよい。この場合、通信機器10の更新制御機能部50は、起動面フラグ36が“01”で、かつ消去フラグ38が“1”を示すか否か判断すればよい。すなわち、ファームウェア領域26(A面)が待機面で消去済みか否かを判断する。この設定の場合、起動面フラグ36の値が“01”であるから、A面が待機面で、消去フラグ38の値が“10”であるから、A面が消去済みでB面が未消去であることを示す。A面の待機面に新たなファームウェアを書き込むため、このとき消去フラグ38のA面の値を未消去にする。したがって、消去フラグ38の値は“00”になる。
本実施例の通信機器10は、ソフトウェアでフラッシュメモリチップの各セクタの消去状態を判別し、更新することでハードウェア構成に依存しないようにできる。また、通信機器10は、セクタ消去処理の直前で、消去済みか否かを判断することにより、消去対象のセクタのアドレス情報をフラッシュメモリ内部に保持する必要なく、かつ、電源断等によるデータ化けが発生しても正しく、消去処理を実行できる。さらに、通信機器10は、フラッシュメモリ部60をセクタ単位でダイレクトにアクセスすることから、ファイルシステムに一切依存せずに済ませることができる。このように従来技術で挙げた課題を解決しながら、安全、かつ確実にファームウェアを更新し、さらにはファームウェア更新時間を短縮できるという効果が得られる。
本実施例では、2面化されたファームウェアにおいて、ファームウェア更新時間を短縮する方法を記述したが、2面化してさえいれば、ファームウェアだけではなく、データでも更新時間を短縮することができる。データ更新の場合、フラッシュメモリ14におけるメモリマップは、図10に示すように、データ領域30を運用中に用いるA面に設定し、データ領域84を待機に用いるB面に設定するとよい。図4に示したフラグ名32および設定データ34は、2面以外のデータ領域に格納しておくとよい。この場合、データ更新は、時間の短縮だけでなく、データ更新中の電源断による耐性も向上させることができる。
ところで、フラッシュメモリ14には、OS(Operating System)の制御を介して、適宜にアクセスできることが知られている。したがって、待機面のメモリ領域をアクセスする場合もあることから、更新機能部50には、図11に示すように、アクセス監視機能部86を設けてもよい。アクセス監視機能部86は、待機面のメモリ領域にアクセスの有無を判断し、アクセスがないときだけ消去を許可する機能を有する。具体的に、アクセス監視機能部86は、起動面フラグ36のデータにより待機面を特定し、CPU 12またはフラッシュデバイスドライバ54に対するアクセスの有無を確認するとよい。
アクセス監視は、時刻T10またはT20のように、セクタイレースが実行される直前に、接続子AとBの間に図12の手順を追加して、アクセスの有無を監視する(ステップS54)。具体的には、接続子Aを介して、アクセス監視機能部86にて待機面へのアクセスが有ると判断した場合(YES)、消去の禁止に進む(ステップS56へ)。また、待機面へのアクセスがないと判断した場合(NO)、消去の許可に進む(ステップS58へ)。
消去の禁止では、CPU 12またはフラッシュデバイスドライバ54に対してアクセス優先権を発行し、イレースを所定の時間にわたって禁止する。この禁止後、アクセス監視に戻る。また、消去の許可では、接続子Bを介して、セクタの消去に進む。
さらに、アクセス監視機能部86は、アクセス有りの場合でも、アクセスの種類で待機面のデータを消去してもよい。アクセスの種類には、カーネルモードのアクセス動作とユーザモードに基づくカーネルモードのアクセス動作とがある。アクセス監視機能部86は、識別した種類が後者のアクセス動作の場合、CPU 12またはフラッシュデバイスドライバ54に対してアクセスを停止させ、この停止確認後、待機面のデータを消去してもよい。
これを実現させるため、図13に示すように、アクセス有りの場合、アクセス監視機能部86にてユーザモードに基づくカーネルモードのアクセス動作か否かを判断する(ステップS60)手順を追加する。このように判断することにより、カーネルモードのアクセス動作を保ちながら、セクタのイレース処理を有効に実現させることが可能になる。
10 通信機器
12 CPU
14 フラッシュメモリ
16 LAN I/F
18 USB I/F
20 RAM
40 ファームウェア処理機能部
42 制御機能部
44 デバイスドライバ部
46 ブートローダ機能部
48 周辺I/F機能部
50 更新制御機能部

Claims (9)

  1. 書き込まれたアプリケーションの実行や更新を制御し、更新に応じて外部機器からの新たな情報を書き込む情報処理装置において、該装置は、
    情報を記憶する領域として運用面および待機面の2面が区分配設され、該2面の区分領域に加えて、該2面のそれぞれが前記運用面および前記待機面のいずれの状態にあるかを示す第1のフラグ、ならびに前記待機面の情報消去の状態を示す第2のフラグを記憶するフラグの区分領域が配設された不揮発性記憶手段と、
    該装置を起動し、起動後、更新要求に応じて外部機器から前記不揮発性記憶手段への新たな情報の書込みを制御する制御機能ブロックとを含み、
    該制御機能ブロックは、起動にともない第2のフラグが書込み済み状態であることに応じて前記待機面における1つのセクタ分ずつ情報を消去させて、該待機面の区分領域を消去するように制御する更新制御機能ブロックを含み、
    前記更新制御機能ブロックは、前記不揮発性記憶手段へのアクセスの有無を監視し、前記不揮発性記憶手段へのアクセスの有無およびアクセスの種類に応じて消去の実行を制御するアクセス監視機能ブロックを含むことを特徴とする情報処理装置。
  2. 請求項1に記載の装置において、前記更新制御機能ブロックは、前記更新要求に応じて第2のフラグを書込み済み状態に設定し、前記待機面における1つのセクタ分ずつ前記新たな情報を書き込んで、前記状態情報の区分領域にて前記2面の区分領域における前記運用面および前記待機面を切り換えて、再起動させることを特徴とする情報処理装置。
  3. 請求項1または2に記載の装置において、前記アクセス監視機能ブロックは、ユーザモードの動作に応じて前記不揮発性記憶手段へのアクセスを停止させた上で、前記待機面の消去の実行を制御することを特徴とする情報処理装置。
  4. 書き込まれたアプリケーションの実行や更新を制御し、更新に応じて外部機器からの新たな情報を書き込む情報処理装置の処理方法において、
    情報を記憶する領域として運用面および待機面の2面が区分配設され、該2面の区分領域に加えて、該2面のそれぞれが前記運用面および前記待機面のいずれの状態にあるかを示す第1のフラグ、ならびに前記待機面の情報消去の状態を示す第2のフラグを記憶するフラグの区分領域が配設された不揮発性記憶手段と、
    該装置を起動し、起動後、更新要求に応じて外部機器から前記不揮発性記憶手段への新たな情報の書込みを制御する制御機能ブロックとを含み、
    該制御機能ブロックは、起動にともない第2のフラグが書込み済み状態であることに応じて前記待機面における1つのセクタ分ずつ情報を消去させて、該待機面の区分領域を消去するように制御する更新制御機能ブロックを含む情報処理装置を用い、
    該方法は、前記起動にともない第1および第2のフラグを読み、前記運用面に記憶する情報を起動する第1の工程と、
    前記更新制御機能ブロックで前記待機面の区分領域に前記情報が書込み状態にあるか否かを判断し、前記書込み状態と判断した場合、前記待機面の区分領域に対する前記情報の保持/更新要求のいずれの状態にあるかの判断に進み、前記待機面の区分領域が消去済みの状態にある場合、更新待ちする第2の工程と、
    前記待機面の区分領域に対する前記情報の保持/更新要求のいずれの状態にあるかを判断し、前記情報を保持する状態にある場合、前記待機面の区分領域の消去処理に進み、前記待機面の区分領域に対する前記情報の更新要求の状態にある場合、前記情報の更新処理に進む第3の工程と、
    前記消去処理として前記待機面の区分領域の前記情報を消去する第4の工程と、
    前記待機面の区分領域すべての情報の消去が完了か否かを判定し、完了と判定した場合、第2のフラグの変更処理に進み、未了と判定した場合、第2の工程に戻す第5の工程と、
    第2のフラグの変更処理として第2のフラグを消去済みに設定し、第2の工程に戻す第6の工程とを含むことを特徴とする情報処理装置の処理方法。
  5. 請求項に記載の方法において、第4の工程は、1セクタを単位に消去することを特徴とする情報処理装置の処理方法。
  6. 請求項またはに記載の方法において、第4の工程は、該当するセクタが消去済みのとき、消去コマンドの実行をスキップすることを特徴とする情報処理装置の処理方法。
  7. 請求項に記載の方法において、前記情報の更新処理は、前記更新要求の確認にともない第2のフラグを書込みに設定する第7の工程と、
    前記待機面の区分領域に新たな情報を書き込む第8の工程と、
    前記待機面の区分領域すべての情報の書込みが完了か否かを判定し、完了と判定した場合、第1のフラグの変更処理に進み、未了と判定した場合、第8の工程に戻す第9の工程と、
    第1のフラグの変更処理として第1のフラグが示す前記運用面/前記待機面の設定データを逆転する第10の工程と、
    第10の工程後、再起動する第11の工程とを含むことを特徴とする情報処理装置の処理方法。
  8. 請求項に記載の方法において、第8の工程は、1セクタを単位に前記新たな情報を書き込むことを特徴とする情報処理装置の処理方法。
  9. 請求項またはに記載の方法において、第8の工程は、該当するセクタが消去済みのとき、消去コマンドの実行をスキップして前記新たな情報を書き込むことを特徴とする情報処理装置の処理方法。
JP2013070859A 2013-03-29 2013-03-29 情報処理装置およびその処理方法 Active JP6070360B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013070859A JP6070360B2 (ja) 2013-03-29 2013-03-29 情報処理装置およびその処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013070859A JP6070360B2 (ja) 2013-03-29 2013-03-29 情報処理装置およびその処理方法

Publications (2)

Publication Number Publication Date
JP2014194682A JP2014194682A (ja) 2014-10-09
JP6070360B2 true JP6070360B2 (ja) 2017-02-01

Family

ID=51839884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013070859A Active JP6070360B2 (ja) 2013-03-29 2013-03-29 情報処理装置およびその処理方法

Country Status (1)

Country Link
JP (1) JP6070360B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886264B2 (en) 2014-12-09 2018-02-06 Xiaomi Inc. Method and device for upgrading firmware
CN104484200B (zh) * 2014-12-09 2018-05-25 小米科技有限责任公司 对固件进行升级的方法及装置
CN104503786B (zh) 2014-12-15 2020-10-16 小米科技有限责任公司 固件刷新方法及装置
JP6912163B2 (ja) * 2016-03-17 2021-07-28 日本電気株式会社 ファームウェア起動装置、ファームウェア起動方法、およびファームウェア起動プログラム
JP6903968B2 (ja) * 2017-03-17 2021-07-14 カシオ計算機株式会社 電子機器、電子時計、プログラム書込方法、およびプログラム
JP7043737B2 (ja) * 2017-04-07 2022-03-30 株式会社リコー 情報処理システム及び情報処理方法
JP7065578B2 (ja) * 2017-09-21 2022-05-12 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
JP7102704B2 (ja) * 2017-10-03 2022-07-20 株式会社デンソー 電子制御装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110218A (ja) * 1997-10-03 1999-04-23 Hitachi Ltd ファームウェア書き換え装置
US6622246B1 (en) * 1999-11-12 2003-09-16 Xerox Corporation Method and apparatus for booting and upgrading firmware
JP2002099441A (ja) * 2000-09-26 2002-04-05 Mitsubishi Electric Corp 通信端末装置及び通信端末装置の動作方法
JP2004102893A (ja) * 2002-09-12 2004-04-02 Matsushita Electric Ind Co Ltd リモートダウンローダ及びリモートダウンロード方法
JP2005050097A (ja) * 2003-07-28 2005-02-24 Sony Corp 情報処理装置、情報処理方法、プログラム、記録媒体

Also Published As

Publication number Publication date
JP2014194682A (ja) 2014-10-09

Similar Documents

Publication Publication Date Title
JP6070360B2 (ja) 情報処理装置およびその処理方法
JP6568947B2 (ja) 車載制御装置、プログラム更新システム、及び、プログラム更新ソフトウェア
TWI816650B (zh) 數據儲存裝置及其控制器與操作方法
JP2011164968A (ja) 主記憶装置へのアクセスを高速化する方法および記憶装置システム
JP2010500682A (ja) フラッシュメモリアクセス回路
JP4829370B1 (ja) メモリ制御装置、メモリ装置および停止制御方法
JP2020030812A (ja) 更新されたファームウェアコードの検索
JP2005071303A (ja) プログラム起動装置
US8527733B2 (en) Memory system
CN111026417A (zh) 一种嵌入式设备的升级方法及嵌入式设备
WO2017173924A1 (zh) 切换文件系统的方法及装置
WO2012077604A1 (ja) 処理装置、プログラム更新方法、およびプログラム
JP2009176147A (ja) 電子機器および電子機器のメモリアクセス許可判別方法
JP2009053993A (ja) ファイルシステム管理装置
JP5158883B2 (ja) ファームウェア更新方法及びファームウェア更新装置
JP2009223435A (ja) データ記憶方法及び装置、並びにプログラム
JP5218024B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム
WO2023203768A1 (ja) 電子制御装置及び書込制御方法
CN113448639B (zh) 用户配置变量区的访问方法、装置、设备和存储介质
WO2013153714A1 (ja) 情報処理装置
JP2023053826A (ja) ソフトウェア更新制御システム
JP5685070B2 (ja) 情報処理装置、およびプログラム
JP6080490B2 (ja) 情報処理装置、起動方法およびプログラム
JP2005038180A (ja) プログラム起動方法,プログラム起動用プログラム,コンピュータ読み取り可能な記憶媒体
JP2022024904A (ja) ファームウェア更新システムおよびファームウェア更新方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161028

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161219

R150 Certificate of patent or registration of utility model

Ref document number: 6070360

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150