JP6549454B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP6549454B2
JP6549454B2 JP2015179960A JP2015179960A JP6549454B2 JP 6549454 B2 JP6549454 B2 JP 6549454B2 JP 2015179960 A JP2015179960 A JP 2015179960A JP 2015179960 A JP2015179960 A JP 2015179960A JP 6549454 B2 JP6549454 B2 JP 6549454B2
Authority
JP
Japan
Prior art keywords
program data
unit
cpu
bus
ram
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
JP2015179960A
Other languages
English (en)
Other versions
JP2017054442A (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.)
Lapis Semiconductor Co Ltd
Original Assignee
Lapis Semiconductor 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 Lapis Semiconductor Co Ltd filed Critical Lapis Semiconductor Co Ltd
Priority to JP2015179960A priority Critical patent/JP6549454B2/ja
Publication of JP2017054442A publication Critical patent/JP2017054442A/ja
Application granted granted Critical
Publication of JP6549454B2 publication Critical patent/JP6549454B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Bus Control (AREA)
  • Stored Programmes (AREA)

Description

本発明は、通信機能を利用して自身のソフトウェアプログラムの自動更新を行う情報処理装置に関する。
近年、情報機器に搭載されているCPU(Central Processing Unit)が実行する制御プログラム、いわゆるファームウェアをネットワーク経由で更新できるようにしたシステムが製品化されている。
例えば、制御プログラムの実行中に、受信された更新用の制御プログラムをRAM(Random Access Memory)に書き込み、このRAMに書き込まれた制御プログラムをフラッシュROM(Read Only Memory)に書き込むことにより制御プログラムを更新する装置が提案されている(例えば特許文献1参照)。
特開2003−330655号公報
しかしながら、特許文献1の構成では、上記した一連のプログラムの更新制御を実施している間は、かかる更新制御によってCPUがバスを占有するので、この間、CPUはメイン制御の実行を一時的に待機しなければならない。よって、CPUの使用効率が低下する虞があった。
そこで、本発明は、CPUの使用効率を低下させることなく、プログラムの自動更新を行うことが可能な情報処理装置を提供することを目的とする。
本発明に係る情報処理装置は、プログラムデータが記憶されている第1の不揮発性メモリと、前記プログラムデータに従った制御を実行するCPUと、RAMと、DMA部と、を含む情報処理装置であって、第2の不揮発性メモリと、互いに独立した第1のバス及び第2のバスと、更新用プログラムデータを受信した場合に割込信号を前記CPUに供給する通信部と、を有し、前記CPUは、前記割込信号に応じて前記通信部が受信した前記更新用プログラムデータを前記第1のバス又は前記第2のバスを介して前記RAMに書き込み、前記DMA部は、前記RAMに書き込まれた前記更新用プログラムデータを前記第1のバス又は前記第2のバスを介して前記第2の不揮発性メモリに書き込む。
本発明においては、更新用のプログラムデータを受信した場合には、第1の不揮発性メモリに格納されているプログラムデータに従った制御を実行するCPUが、この受信した更新用プログラムデータを、互いに独立した第1又は第2のバスを介してRAMに書き込む。そして、DMA部が、RAMに格納された更新用プログラムデータを第1又は第2のバスを介して第2の不揮発性メモリに書き込むことにより、プログラムデータの更新を行う。これにより、DMA部が第1及び第2のバスのうちの一方のバスを介して更新用プログラムデータを第2の不揮発性メモリに書き込んでいる間に、CPUが第1及び第2のバスのうちの他方のバスを介して各種の制御を行うことが可能となる。
よって、本発明によれば、CPUの使用効率を低下させることなく、プログラムの自動更新を行うことが可能となる。
本発明に係る情報処理装置100の構成を示すブロック図である。
バスコントローラ20の内部構成を示すブロック図である。
プログラム更新制御による情報処理部120内での信号シーケンスを示すフロー図である。
プログラム更新制御による情報処理部120内での信号シーケンスの他の一例を示すフロー図である。
プログラム更新制御による情報処理部120内での信号シーケンスの他の一例を示すフロー図である。
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
図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の不揮発性メモリに書き込む。
10 CPU
11、12 FROM
14 RAM
16 DMA部
20 バスコントローラ
100 情報処理装置
110 通信部
120 情報処理部
BS1、BS2 メインバス

Claims (6)

  1. プログラムデータが記憶されている第1の不揮発性メモリと、前記プログラムデータに従った制御を実行するCPUと、RAMと、DMA部と、を含む情報処理装置であって、
    第2の不揮発性メモリと、
    互いに独立した第1及び第2のバスと、
    更新用プログラムデータを受信した場合に割込信号を前記CPUに供給する通信部と、を有し、
    前記CPUは、前記割込信号に応じて前記通信部が受信した前記更新用プログラムデータを前記第1のバス又は前記第2のバスを介して前記RAMに書き込み、
    前記DMA部は、前記RAMに書き込まれた前記更新用プログラムデータを前記第1のバス又は前記第2のバスを介して前記第2の不揮発性メモリに書き込むことを特徴とする情報処理装置。
  2. 前記CPUは、前記DMA部が前記更新用プログラムデータを全て前記第2の不揮発性メモリに書き込んだら、前記第1の不揮発性メモリに格納されている前記プログラムデータに代えて前記第2の不揮発性メモリに格納されている前記更新用プログラムデータに従った制御に切り替えることを特徴とする請求項1に記載の情報処理装置。
  3. 前記CPUは、前記更新用プログラムデータを前記第1のバスを介して前記RAMに書き込み、
    前記DMA部は、前記RAMに書き込まれた前記更新用プログラムデータを前記第1のバスを介して前記第2の不揮発性メモリに書き込むことを特徴とする請求項1又は2記載の情報処理装置。
  4. 前記CPUは、前記更新用プログラムデータを前記第1のバスを介して前記RAMに書き込み、
    前記DMA部は、前記RAMに書き込まれた前記更新用プログラムデータを前記第2のバスを介して前記第2の不揮発性メモリに書き込むことを特徴とする請求項1又は2記載の情報処理装置。
  5. 前記CPUは、前記更新用プログラムデータを1ワード分ずつ前記第1のバスを介して前記RAMに書き込み、
    前記DMA部は、前記CPUが1ワード分の前記更新用プログラムデータを前記RAMに書き込む度に、前記第2のバスを介して前記RAMに書き込まれている他の1ワード分の前記更新用プログラムデータを読み出して前記第2の不揮発性メモリに書き込むことを特徴とする請求項4記載の情報処理装置。
  6. 前記DMA部が前記他の1ワード分の更新用プログラムデータを前記第2のバスを介して前記第2の不揮発性メモリに供給している間に、前記CPUが前記通信部が受信した1ワード分の前記更新用プログラムデータを前記第1のバスを介して前記RAMに供給することを特徴とする請求項5記載の情報処理装置。

JP2015179960A 2015-09-11 2015-09-11 情報処理装置 Active JP6549454B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015179960A JP6549454B2 (ja) 2015-09-11 2015-09-11 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015179960A JP6549454B2 (ja) 2015-09-11 2015-09-11 情報処理装置

Publications (2)

Publication Number Publication Date
JP2017054442A JP2017054442A (ja) 2017-03-16
JP6549454B2 true JP6549454B2 (ja) 2019-07-24

Family

ID=58316831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015179960A Active JP6549454B2 (ja) 2015-09-11 2015-09-11 情報処理装置

Country Status (1)

Country Link
JP (1) JP6549454B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58147050U (ja) * 1982-03-26 1983-10-03 株式会社日立製作所 情報処理装置
JPH0589033A (ja) * 1991-09-27 1993-04-09 Fujitsu Ltd 半導体集積回路
JPH11184804A (ja) * 1997-12-22 1999-07-09 Nec Corp 情報処理装置及び情報処理方法
JP3778280B2 (ja) * 2002-03-26 2006-05-24 日本電気株式会社 ファームウェアダウンロードシステム及びその方法
JP4540422B2 (ja) * 2004-08-02 2010-09-08 富士フイルム株式会社 半導体集積回路及び撮像装置
TWI259974B (en) * 2004-09-16 2006-08-11 Mediatek Inc Optical disk drive capable of updating firmware and firmware updating method thereof
JP2007286813A (ja) * 2006-04-14 2007-11-01 Sony Corp メモリ制御装置、メモリ制御方法

Also Published As

Publication number Publication date
JP2017054442A (ja) 2017-03-16

Similar Documents

Publication Publication Date Title
KR100551480B1 (ko) 프로세서와 비휘발성 메모리 사이에 위치하는 메모리장치, 이를 포함한 시스템 및 상기 시스템 내의 데이터송수신 방법
JP2012064021A (ja) 通信システム、マスター装置、及びスレーブ装置、並びに通信方法
JP2008276638A (ja) 半導体記憶装置、メモリアクセス制御システムおよびデータの読み出し方法
US9170963B2 (en) Apparatus and method for generating interrupt signal that supports multi-processor
JP2008009817A (ja) 半導体装置及びデータ転送方法
JP2010176442A (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
US9015272B2 (en) Microcomputer
TWI471731B (zh) 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器
JP6549454B2 (ja) 情報処理装置
JPWO2012081085A1 (ja) 割込み要因管理装置及び割込み処理システム
JP5058890B2 (ja) バス制御装置
KR20080033613A (ko) 메모리 카드 및 메모리 카드의 구동 프로그램 업데이트방법
US20050216614A1 (en) Microcomputer having instruction RAM
JP6430710B2 (ja) データ転送制御装置及びデータ転送の制御方法
RU2579949C2 (ru) Компьютерная система
JP2010140440A (ja) バス調停装置
JP2014067215A (ja) 省電力システム及び画像形成装置
JP2008165463A (ja) バス制御装置
JP4292218B2 (ja) 画像処理装置及び画像処理システム
JP2009223455A (ja) マルチプロセッサシステム
JP2008181182A (ja) 同期シリアルバスシステムおよびその二次局制御方法
CN115422100A (zh) 直接内存存取控制装置、数据传输方法和数据传输系统
JP2006004038A (ja) データ転送制御装置
RU155208U1 (ru) Компьютерная система
JP2012194819A (ja) プログラム切替回路、および電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180529

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190326

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190517

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: 20190528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190627

R150 Certificate of patent or registration of utility model

Ref document number: 6549454

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150