以下、本発明の実施例を図面を参照しつつ詳細に説明する。
図1は、本発明に係る情報処理装置100の構成を示すブロック図である。図1に示すように、情報処理装置100は、通信部110及び情報処理部120を有する。尚、通信部110は半導体チップに形成されており、情報処理部120は、この通信部110が形成されている半導体チップとは異なる半導体チップに形成されている。
通信部110は、ホスト装置(図示せぬ)等から無線又は有線送信された、更新用のソフトウェアプログラムを表すプログラムデータ信号を受信すると、当該プログラムデータ信号を内蔵レジスタ(図示せぬ)に格納する。通信部110の内蔵レジスタは、情報処理部120から供給された読出要求信号に応じて、格納されているプログラムデータ信号を読み出し、これをシリアル信号形態のプログラムデータ信号PDとして情報処理部120に供給する。また、通信部110は、かかるプログラムデータ信号の受信に応じて、通信割込信号IT1を情報処理部120に供給する。
情報処理部120には、CPU10、フラッシュROM11及び12、周辺装置13、RAM14、SPI(Serial Peripheral Interface)部15、DMA(Direct Memory Access)部16、割込検出部17、マスタ周辺装置18、アドレス変換部19及びバスコントローラ20が形成されている。これらCPU10、フラッシュROM11、12、周辺装置13、RAM14、SPI部15、DMA部16、マスタ周辺装置18及びアドレス変換部19は、バスコントローラ20に接続されている。
不揮発性メモリとしてのフラッシュROM11及び12(以下、FROM11及びFROM12と称する)には、CPU10が実行するプログラムデータが格納されている。尚、例えば初期設定時には、FROM11にプログラムデータが格納され、FROM12には更新用のプログラムデータが格納される。
周辺装置13は、タイマ、或いは外部接続インターフェース回路等からなり、バスコントローラ20を介して、タイマ時間の設定、読み出し、或いは外部接続された機器(図示せぬ)に対する制御又は当該機器からのデータ取得を行う。
RAM14は、プログラム実行時に生成される各種中間データをバスコントローラ20を介して取り込み、それを記憶する。また、RAM14は、書き込まれたデータを読み出しこれをバスコントローラ20に送出する。
SPI部15は、通信部110から供給されたシリアル形態のプログラムデータ信号PDを取り込み、これをパラレル形態に変換したプログラムデータを内蔵レジスタ(図示せぬ)に格納する。SPI部15の内蔵レジスタは、バスコントローラ20を介して供給された読出要求信号に応じて、格納されているプログラムデータを読み出し、これをバスコントローラ20に送出する。また、SPI部15は、通信部110から送出された上記したプログラムデータ信号PDを受けた場合には、SPI割込信号IT2を割込検出部17に供給する。更に、SPI部15は、DMAによるデータ転送を促すDMA転送タイミング信号DTをDMA部16に供給する。
DMA部16は、バスコントローラ20を介してDMAの動作設定が為され、その設定内容に従って、RAM14及びFROM12間でのデータ転送をバスコントローラ20を介して行う。尚、DMA部16は、DMA転送タイミング信号DTに応じて上記したデータ転送を開始するようにしても良い。DMA部16は、上記した設定内容に基づくデータの転送動作が完了したら、DMA転送終了信号EDを割込検出部17に供給する。DMA部16は、RAM14、FROM11及び12に対してアクセスを行うことが可能なマスタ装置である。
割込検出部17は、上記した通信割込信号IT1、SPI割込信号IT2、又はDMA転送終了信号EDに応じて、その信号の内容を表す割込信号INTを生成し、これをCPU10に供給する。
マスタ周辺装置18は、CPU10と同様にバスコントローラ20を介して、FROM11、12、周辺装置13、RAM14、及びSPI部15に対してアクセスを行うことが可能なマスタ装置である。
アドレス変換部19は、CPU10がFROM11に格納されているプログラムデータを実行する場合には、CPU10から送出されたプログラムデータ読出用のアドレスをそのままバスコントローラ20を介してFROM11に供給する。一方、FROM12に格納されている更新プログラムデータを実行する場合には、アドレス変換部19は、CPU10から送出されたプログラムデータ読出用のアドレスを、FROM12に対応したアドレスに変換し、これをバスコントローラ20を介してFROM12に供給する。尚、アドレス変換部19内では、各種データ及び制御信号を伝送するバス(図示せぬ)を介して、CPU10とバスコントローラ20とが直接接続されている。
バスコントローラ20は、上記したCPU10、FROM11、12、周辺装置13、RAM14、SPI部15、DMA部16、マスタ周辺装置18及びアドレス変換部19に対して、データ或いは各種制御信号の中継を行う。
図2は、バスコントローラ20の内部構成を示すブロック図である。図2に示すように、バスコントローラ20は、マスタ装置であるCPU10、DMA部16及びマスタ周辺装置18に夫々対応して設けられたマスタ制御部181〜183を有する。更に、バスコントローラ20は、当該マスタ装置のアクセス対象となるスレーブ装置としてのFROM11、12、周辺装置13、RAM14及びSPI部15に夫々対応して設けられたスレーブ制御部191〜195と、2つの独立したメインバスBS1及びBS2と、を有する。
図2において、マスタ制御部181は、DMA16と、メインバスBS1及びBS2のうちの一方とを選択的に接続する。マスタ制御部182は、マスタ周辺装置18と、メインバスBS1及びBS2のうちの一方とを選択的に接続する。マスタ制御部183は、CPU10と、メインバスBS1及びBS2のうちの一方とをアドレス変換部19を介して選択的に接続する。尚、図2では、アドレス変換部19を省略している。
スレーブ制御部191は、FROM11と、メインバスBS1及びBS2のうちの一方とを選択的に接続する。スレーブ制御部192は、FROM12と、メインバスBS1及びBS2のうちの一方とを選択的に接続する。スレーブ制御部193は、周辺装置13と、メインバスBS1及びBS2のうちの一方とを選択的に接続する。スレーブ制御部194は、RAM14と、メインバスBS1及びBS2のうちの一方とを選択的に接続する。スレーブ制御部195は、SPI15と、メインバスBS1及びBS2のうちの一方とを選択的に接続する。
マスタ制御部181〜183はそれぞれ固有のアドレスが付与され、互いに同一の内部構成を有する。また、スレーブ制御部191〜195も同様にそれぞれ固有のアドレスが付与され、互いに同一の内部構成を有する。
以下に、DMA16がFROM11にアクセスし、同時にCPU10がFROM12にアクセスする場合を例にとって、バスコントローラ20の動作について説明する。
マスタ制御部181は、DMA16からのアクセスに応じて、先ず、メインバスBS1及びBS2が夫々個別に使用中であるか否かの判定を行う。ここで、メインバスBS1及びBS2が共に使用中では無いと判定された場合、マスタ制御部181は、メインバスBS1とDMA16とを接続する。次に、マスタ制御部181は、メインバスBS1を介してスレーブ制御部191にアクセスする。これに応じて、スレーブ制御部191は、メインバスBS2からのアクセスが有るか否かを判定し、メインバスBS2からのアクセスが無いと判定された場合に、メインバスBS1をFROM11と接続する。上記動作と同時に、CPU10がFROM12にアクセスする為にマスタ制御部183をアクセスすると、マスタ制御部183は、メインバスBS1及びBS2が夫々個別に使用中であるか否かの判定を行う。この際、メインバスBS1は使用中であり、メインバスBS2が非使用中であるので、マスタ制御部183は、メインバスBS2とCPU10とを接続する。次に、マスタ制御部183は、メインバスBS2を介してスレーブ制御部192にアクセスする。これに応じて、スレーブ制御部192は、メインバスBS1からのアクセスが有るか否かを判定し、メインバスBS1からのアクセスが無いと判定された場合に、メインバスBS2をFROM12と接続する。
よって、バスコントローラ20によれば、DMA16がメインバスBS1を介してFROM11にアクセスすると同時に、CPU10がメインバスBS2を介してFROM12にアクセスすることが可能となる。
尚、DMA16及びCPU10が同時にFROM11にアクセス要求を行った場合には、バスコントローラ20は以下のように動作する。
先ず、DMA16がFROM11にアクセスする動作は上記した動作と同一である。しかしながら、この際、CPU10の接続制御を行うマスタ制御部183は、メインバスBS1が使用中であり、メインバスBS2が非使用中であるので、メインバスBS2とCPU10とを接続する。次に、マスタ制御部183は、メインバスBS2を介してスレーブ制御部191にアクセスする。この際、スレーブ制御部191は、メインバスBS1と共にメインバスBS2からもアクセスが為されていると判定し、アクセス不可と共に待機を促す応答信号を、メインバスBS2及びマスタ制御部183を介してCPU10に供給する。その後、DMA16によるFROM11へのアクセスが終了すると、スレーブ制御部191は、上記した待機状態を解除する待機解除信号をメインバスBS2及びマスタ制御部183を介してCPU10に供給する。
すなわち、DMA16及びFROM11が同時に同一のスレーブ装置にアクセス要求を行う場合には、バスコントローラ20は、CPU10よりもDMA16の方を優先してスレーブ装置に対するアクセスを許可する。
CPU10は、FROM11又は12に格納されているプログラムデータをバスコントローラ20を介して取得し、当該プログラムデータによって表されるプログラムを実行することにより、周辺装置13、RAM14及びSPI部15を制御する(以下、主制御と称する)。
また、CPU10は、通信部110から供給された通信割込信号IT1に基づく割込信号INTに応じて、上記した主制御を一時中断してプログラム更新制御の実行に移る。すなわち、かかるプログラム更新制御により、現在の情報処理部120のプログラムを、ホスト装置から送信されてきた更新用のソフトウェアプログラムにバージョンアップするのである。
図3は、プログラム更新制御による情報処理部120内での信号シーケンスを示すフロー図である。
上記した割込信号INTに応じて、先ず、CPU10は、通信部110の内蔵レジスタからプログラムデータ信号の読み出しを要求するレジスタ読出要求信号RQ1をバスコントローラ20のメインバスBS1を介してSPI部15に供給する。
SPI部15は、レジスタ読出要求信号RQ1に応じてレジスタ読出信号RRDを通信部110に供給する。
通信部110は、レジスタ読出信号RRDに応じて内蔵レジスタに格納されているプログラムデータ信号を1ワード分だけ読み出し、1ワード分のプログラムデータ信号PDをSPI部15に供給する。
SPI部15は、1ワード分のプログラムデータ信号PDを内蔵レジスタに記憶すると共に、SPI割込信号IT2を割込検出部17に供給する。
割込検出部17は、SPI割込信号IT2に応じて、通信部110から1ワード分のプログラムデータ信号PDの取り込みが完了したことを表す割込信号INTをCPU10に供給する。
CPU10は、この割込信号INTに応じて、SPI部15の内蔵レジスタからプログラムデータ信号の読み出しを要求するレジスタ読出要求信号RQ2をバスコントローラ20のメインバスBS1を介してSPI部15に供給する。
SPI部15は、レジスタ読出要求信号RQ2に応じて内蔵レジスタに格納されている1ワード分のプログラムデータ信号を読み出し、これをプログラムデータ信号PD1としてバスコントローラ20のメインバスBS1を介してCPU10に供給する。
CPU10は、供給された1ワード分のプログラムデータ信号PD1を取り込み、これをRAM書込信号RWRと共に、バスコントローラ20のメインバスBS1を介して、RAM14に供給する。これにより、RAM14は、1ワード分のプログラムデータ信号PD1を書き込む。
CPU10は、図3において、破線にて囲まれるシーケンスを繰り返し実行することにより、通信部110の内蔵レジスタに格納されているプログラムデータ信号を1ワード分ずつ読み出して、RAM14に記憶して行く。
ここで、通信部110の内蔵レジスタに格納されている全てのプログラムデータがRAM14に書き込まれると、CPU10は、DMAの動作を指定するDMA設定信号DSを、図3に示すように、バスコントローラ20のメインバスBS1を介してDMA部16に供給する。
すなわち、CPU10は、DMA部16により、RAM14からFROM12へのプログラムデータの転送を実行させる為に、
・転送元のRAM14の読み出し開始アドレス
・転送先のFROM12の書込開始アドレス
・転送データ量
・DMA動作開始指令
を表すDMA設定信号DSをDMA部16に供給する。
DMA部16は、DMA設定信号DSに応じて、当該DMA設定信号DSにて指定されたDMA動作を実行する。すなわち、DMA部16は、先ず、RAM読出信号DRDを図3に示すように、バスコントローラ20のメインバスBS1を介してRAM14に供給する。これにより、RAM14は、上記した読み出し開始アドレスからアドレス昇順に1ワード分のプログラムデータ信号を読み出し、これをプログラムデータ信号PPDとして、図3に示すようにバスコントローラ20のメインバスBS1を介してDMA部16に供給する。
DMA部16は、1ワード分のプログラムデータ信号PPDを取り込み、これをFROM書込信号FWRと共に、バスコントローラ20のメインバスBS1を介してFROM12に供給する。これにより、FROM12は、1ワード分のプログラムデータを格納する。
DMA部16は、図3において、一点鎖線にて囲まれるシーケンスを繰り返し実行することにより、RAM14に格納されているプログラムデータを1ワード分ずつFROM12に書き込ませる。ここで、DMA部16は、上記のように設定された転送データ量の分だけ、RAM14からFROM12へのプログラムデータの転送が終了すると、図3に示すように、DMA転送終了信号EDを割込検出部17に供給する。つまり、DMA部16は、ホスト装置から送信されてきた更新用のプログラムデータの全てをFROM12に書き込んだら、DMA転送終了信号EDを割込検出部17に供給するのである。
割込検出部17は、DMA転送終了信号EDを受けると、図3に示すようにDMA転送の終了を表す割込信号INTをCPU10に供給する。
CPU10は、かかる割込信号INTに応じて、プログラムデータ読出用のアドレスをFROM12に対応したアドレスに変換させるようにアドレス変換部19を制御する。これにより、CPU10は、FROM11に格納されているプログラムデータに代えて、FROM12に格納されている更新用のプログラムデータに従った制御を実行するようになる。
図3に示す一連の処理により、ホスト装置から送信されてきた更新用のソフトウェアプログラムがFROM12に書き込まれ、以降、CPU10は当該FROM12に書き込まれた更新用のプログラムに基づく制御を行う。すなわち、情報処理装置100においてプログラムの更新が自動的に為されるのである。
ここで、上記したプログラム更新制御では、図3に示すように、DMA部16によるRAM14からFROM12へのプログラムデータの転送時には、バスコントローラ20のメインバスBS1及びBS2のうちのBS1のみが使用されている。よって、DMA部16による転送動作時には、メインバスBS2が解放された状態となるので、この間、CPU10又はマスタ周辺装置18がメインバスBS2を占有した制御処理を並行して実施することが可能となる。
従って、情報処理装置100によれば、CPU10の使用効率を低下させることなく、プログラムの自動更新を行うことが可能となる。
尚、図3に示されるプログラムの更新制御では、ホスト装置から送信されてきたプログラムデータの全てを一旦、RAM14に格納し、RAM14に格納されているプログラムデータを1ワードずつFROM12に転送している。しかしながら、RAM14に1ワード分のプログラムデータが書き込まれる度に、1ワード分のプログラムデータをRAM14から読み出してFROM12に書き込むようにしても良い。
図4及び図5は、かかる点に鑑みて為されたプログラム更新制御に基づく情報処理部120内での信号シーケンスの他の一例を示すフロー図である。
CPU10は、割込信号INTに応じて、先ず、通信部110の内蔵レジスタからプログラムデータ信号の読み出しを要求するレジスタ読出要求信号RQ1を、図4に示すようにバスコントローラ20のメインバスBS1を介してSPI部15に供給する。
SPI部15は、レジスタ読出要求信号RQ1に応じてレジスタ読出信号RRDを、図4に示すように通信部110に供給する。
通信部110は、レジスタ読出信号RRDに応じて、内蔵レジスタに格納されているプログラムデータ信号を1ワード分だけ読み出し、1ワード分のプログラムデータ信号PDを、図4に示すようにSPI部15に供給する。
SPI部15は、1ワード分のプログラムデータ信号PDを内蔵レジスタに記憶すると共に、SPI割込信号IT2を図4に示すように割込検出部17に供給する。
割込検出部17は、SPI割込信号IT2に応じて、通信部110から1ワード分のプログラムデータ信号PDの取り込みが完了したことを表す割込信号INTを、図4に示すようにCPU10に供給する。
CPU10は、この割込信号INTに応じて、SPI部15の内蔵レジスタからプログラムデータ信号の読み出しを要求するレジスタ読出要求信号RQ2を、図4に示すようにバスコントローラ20のメインバスBS1を介してSPI部15に供給する。
SPI部15は、レジスタ読出要求信号RQ2に応じて内蔵レジスタに格納されている先頭の1ワード分のプログラムデータを読み出し、これをプログラムデータ信号PD1として、図4に示すようにバスコントローラ20のメインバスBS1を介してCPU10に供給する。
CPU10は、供給された1ワード分のプログラムデータ信号PD1を取り込み、これをRAM書込信号RWRと共に、図4に示すようにバスコントローラ20のメインバスBS1を介してRAM14に供給する。これにより、RAM14は、1ワード分のプログラムデータ信号PD1を書き込む。
1ワード分のプログラムデータ信号PD1がRAM14に書き込まれると、CPU10は、DMAによるデータ転送方法を設定するDMA設定信号DSを、図4に示すように、バスコントローラ20のメインバスBS1を介してDMA部16に供給する。尚、DMA設定信号DSは、例えば、
・転送元のRAM14の読み出し開始アドレス
・転送先のFROM12の書込開始アドレス
・転送データ量
等を表す。
DMA部16は、かかるDMA設定信号DSに基づきDMAの動作設定を行う。
次に、CPU10は、次の1ワード分のプログラムデータ信号を取り込ませる為のレジスタ読出要求信号RQ1を、図5に示すようにバスコントローラ20のメインバスBS1を介してSPI部15に供給する。
SPI部15は、レジスタ読出要求信号RQ1に応じて、レジスタ読出信号RRDを、図5に示すように通信部110に供給する。
通信部110は、レジスタ読出信号RRDに応じて内蔵レジスタに格納されているプログラムデータ信号を1ワード分だけ読み出し、1ワード分のプログラムデータ信号PDを、図5に示すようにSPI部15に供給する。
SPI部15は、1ワード分のプログラムデータ信号PDを内蔵レジスタに記憶すると共に、SPI割込信号IT2を図5に示すように割込検出部17に供給する。
割込検出部17は、SPI割込信号IT2に応じて、通信部110から1ワード分のプログラムデータ信号PDの取り込みが完了したことを表す割込信号INTを、図5に示すようにCPU10に供給する。
CPU10は、この割込信号INTに応じて、SPI部15の内蔵レジスタからプログラムデータ信号の読み出しを要求するレジスタ読出要求信号RQ2を、図5に示すようにバスコントローラ20のメインバスBS1を介してSPI部15に供給する。
SPI部15は、レジスタ読出要求信号RQ2に応じて、内蔵レジスタに格納されている1ワード分のプログラムデータを読み出し、これをプログラムデータ信号PD2として、図5に示すようにバスコントローラ20のメインバスBS1を介してCPU10に供給する。この際、CPU10は、供給された1ワード分のプログラムデータ信号PD2を内蔵レジスタ(図示せぬ)に記憶する。更に、SPI部15は、レジスタ読出要求信号RQ2に応じて、転送タイミング信号DTを図5に示すようにDMA部16に供給する。
DMA部16は、転送タイミング信号DTに応じて、RAM読出信号DRDを、図5に示すように、バスコントローラ20のメインバスBS2を介して、RAM14に供給する。これにより、RAM14は、1ワード分のプログラムデータ信号を読み出し、これをプログラムデータ信号PPDとして、図5に示すようにバスコントローラ20のメインバスBS2を介してDMA部16に供給する。尚、DMA部16は、供給された1ワード分のプログラムデータ信号PPDを格納する。
ここで、CPU10は、上記したように、内蔵レジスタに格納されている1ワード分のプログラムデータ信号PD2をRAM書込信号RWRと共に、図5に示すようにバスコントローラ20のメインバスBS1を介してRAM14に供給する。これにより、RAM14は、1ワード分のプログラムデータ信号PD2を書き込む。
この間、DMA部16は、格納してある1ワード分のプログラムデータ信号PPDをFROM書込信号FWRと共に、図5に示すようにバスコントローラ20のメインバスBS2を介して、FROM12に供給する。これにより、FROM12は、1ワード分のプログラムデータを格納する。
DMA部16及びCPU10は、図5において破線にて囲まれるシーケンスを繰り返し実行することにより、通信部110の内蔵レジスタに格納されているプログラムデータを1ワード分ずつRAM14に書き込む。そして、RAM14に1ワード分のプログラムデータが書き込まれる度に、DMA部16が1ワード分のプログラムデータをRAM14から読み出してFROM12に書き込む。すなわち、通信部110の内蔵レジスタに格納されている1ワード分のプログラムデータをRAM14のN番地(Nは2以上の整数)に格納すると共に、RAM14の(N−1)番地に格納されているプログラムデータを読み出してFROM12に書き込む、という動作を繰り返し実行するのである。
ここで、DMA部16は、上記のように設定されている転送データ量の分だけ、RAM14からFROM12へのプログラムデータの転送が終了すると、図5に示すように、DMA転送終了信号EDを割込検出部17に供給する。つまり、DMA部16は、ホスト装置から送信された更新用のプログラムデータの全てをFROM12に書き込んだら、DMA転送終了信号EDを割込検出部17に供給するのである。
割込検出部17は、DMA転送終了信号EDを受けると、図5に示すようにDMA転送の終了を表す割込信号INTをCPU10に供給する。
CPU10は、かかる割込信号INTに応じて、プログラムデータ読出用のアドレスをFROM12に対応したアドレスに変換させるようにアドレス変換部19を制御する。これにより、CPU10は、FROM11に格納されているプログラムデータに代えてFROM12に格納されている更新用のプログラムデータに従った制御を実行するようになる。
図4及び図5に示す一連の処理により、ホスト装置から送信されてきた更新用のソフトウェアプログラムがFROM12に書き込まれ、以降、CPU10は当該FROM12に書き込まれた更新用のプログラムによって制御を行う。すなわち、情報処理装置100においてプログラムの更新が自動的に為される。
ここで、上記したプログラム更新制御では、図5に示すように、DMA部16によるRAM14からFROM12へのプログラムデータの転送はバスコントローラ20のメインバスBS2を介して実行し、CPU10による通信部110からRAM14へのプログラムデータの転送はメインバスBS1を介して実行する。よって、図5において、DMA部16がFROM書込信号FWR及び1ワード分の更新用のプログラムデータ信号PPDをメインバスBS2を介してFROM12に供給している間に、CPU10がRAM書込信号RWR及び1ワード分の更新用のプログラムデータ信号PD2をメインバスBS1を介してRAM14に供給することが可能となる。
従って、図4及び図5に示されるプログラム更新制御では、CPU10及びDMA部16の同時アクセスが為されるので、CPU10の使用効率を低下させることなく、短時間でプログラムの自動更新を行うことが可能となる。
尚、上記実施例では、初期設定時にはFROM11にプログラムを格納しておき、FROM12に更新用のプログラムを格納するようにしているが、初期設定時にはFROM12にプログラムを格納しておき、FROM11に更新用のプログラムを格納するようにしても良い。
また、上記実施例では、情報処理部120と通信部110とを夫々個別の半導体チップに形成するようにしているが、1つの半導体チップに情報処理部120及び通信部110を形成するようにしても良い。
また、上記実施例では、SPIによるシリアル通信方式を例に採りデータインタフェイスとしてSPI部15を用いた情報処理装置を記載しているが、I2CやUARTなどのシリアル通信方式を用いたI2C部或いはUART部に置き換えても良い。
また、上記実施例では、通信部110から情報処理部120へのプログラムデータの転送をCPU10によって行うようにしているが、新たにDMA部を追加し、CPU10に代えて当該追加したDMA部によって、通信部110から情報処理部120へのプログラムデータの転送を行うようにしても良い。
また、上記実施例では、2つの独立したメインバスによる構成の情報処理装置の制御方法について記載しているが、さらにマスタ周辺装置18と周辺装置13との処理も同時に行うためにメインバスを3つとする構成としても良い。
また、図1に示す実施例では、通信割込信号IT1、SPI割込信号IT2及びDMA転送終了信号EDを割込検出部17を中継することにより、1つの割込信号INTとしてCPU10に供給するようにしている。しかしながら、割込検出部17を介さずに、CPU10が通信割込信号IT1、SPI割込信号IT2及びDMA転送終了信号EDを夫々直に受け付けるようにしても良い。
また、上記実施例において、プログラムデータを格納するメモリとして2つのフラッシュROM(11、12)を採用しているが、フラッシュROMに限定されない。すなわち、プログラムデータを格納するメモリとしては、PROM、EPROM等の電源遮断後もデータを保持しておくことが可能な不揮発性メモリであれば良いのである。
要するに、情報処理装置100としては、プログラムデータが記憶されている第1の不揮発性メモリ(11)、プログラムデータに従った制御を実行するCPU(10)、RAM(14)、DMA部(16)、第2の不揮発性メモリ(12)、互いに独立した第1及び第2のバス(BS1、BS2)、更新用プログラムデータを受信した場合に割込信号(IT1)をCPUに供給する通信部(110)を有するものであれば良い。この際、CPUは、割込信号に応じて、通信部が受信した更新用プログラムデータを第1又は第2のバスを介してRAMに書き込み、DMA部は、RAMに書き込まれた更新用プログラムデータを第1又は第2のバスを介して第2の不揮発性メモリに書き込む。