特許第5683911号(P5683911)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ザクティの特許一覧

<>
  • 特許5683911-プログラム処理装置 図000002
  • 特許5683911-プログラム処理装置 図000003
  • 特許5683911-プログラム処理装置 図000004
  • 特許5683911-プログラム処理装置 図000005
  • 特許5683911-プログラム処理装置 図000006
  • 特許5683911-プログラム処理装置 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5683911
(24)【登録日】2015年1月23日
(45)【発行日】2015年3月11日
(54)【発明の名称】プログラム処理装置
(51)【国際特許分類】
   G06F 9/445 20060101AFI20150219BHJP
   G06F 11/00 20060101ALI20150219BHJP
【FI】
   G06F9/06 650H
   G06F9/06 610K
   G06F9/06 630A
【請求項の数】2
【全頁数】10
(21)【出願番号】特願2010-252642(P2010-252642)
(22)【出願日】2010年11月11日
(65)【公開番号】特開2012-103945(P2012-103945A)
(43)【公開日】2012年5月31日
【審査請求日】2013年10月11日
(73)【特許権者】
【識別番号】313003417
【氏名又は名称】株式会社ザクティ
(74)【代理人】
【識別番号】100103056
【弁理士】
【氏名又は名称】境 正寿
(72)【発明者】
【氏名】三尾母 貴弘
(72)【発明者】
【氏名】永安 伸也
【審査官】 大塚 俊範
(56)【参考文献】
【文献】 特開平11−053174(JP,A)
【文献】 特開2009−037467(JP,A)
【文献】 特開2008−192126(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
G06F 11/00
(57)【特許請求の範囲】
【請求項1】
電源オン操作を検出する第1CPU、
ファームウェアを起動するための第1ブートプログラムを保存する内部メモリ、
前記内部メモリを更新するための第2ブートプログラムを保存する外部メモリ、
前記第1ブートプログラムの第1ロード情報、前記第2ブートプログラムの第2ロード情報を記憶するブートメモリ、
前記ブートメモリに書き込み制御を行うメモリインタフェース、
少なくとも前記第1ブートプログラム及び前記第2ブートプログラムを含むプログラムを実行する第2CPUを備え、
前記第1CPUは、
前記電源オン操作を検出すると、前記外部メモリが装着されたか否かを判別する判別手段、
前記判別手段による判別の結果、前記外部メモリが装着されていないと判別すると第1ブートレベルに設定し、前記外部メモリが装着されていると判別すると第2ブートレベルに設定する設定手段、
前記設定手段による設定が完了すると前記メモリインタフェース及び前記第2CPUを含む装置の一部に電力を供給するための電力供給部を制御する制御手段を備え、
前記メモリインタフェースは、
前記設定手段によって設定されたブートレベルを検出する検出手段、
前記第1ブートレベルを検出すると前記内部メモリから前記第1ロード情報を前記ブートメモリに書き込み、前記第2ブートレベルを検出すると前記外部メモリから前記第2ロード情報を前記ブートメモリに書き込む書き込み手段を備え、
前記第2CPUは、
前記ブートメモリに格納された前記第1ロード情報又は前記第2ロード情報を該ブートメモリから読み出し、前記第1ブートプログラム又は前記第2ブートプログラムを実行することを特徴とする、プログラム処理装置。
【請求項2】
前記外部メモリは前記第1ブートプログラムをさらに保存し、
前記第2ブートプログラムは前記第1ブートプログラムを前記外部メモリから前記内部メモリに転送するためのプログラムに相当する、請求項1記載のプログラム処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、プログラム処理装置に関し、特に、内部メモリに記憶されたプログラムを外部メモリに記憶されたプログラムによって更新する、プログラム処理装置に関する。
【背景技術】
【0002】
この種の装置の一例が、特許文献1に開示されている。この背景技術によれば、プログラムとそのバージョン情報とが記憶されたメモリカードが外部コネクタに接続されると、メモリカードに記憶されたプログラムのバージョン情報と異なるバージョン情報を記憶したフラッシュROMが、複数のフラッシュROMの中から特定される。メモリカードに記憶されたプログラムは、こうして特定されたフラッシュROMに書き込まれる。これによって、プログラムのダウンロードに要する時間を短縮することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11−242596号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、背景技術では、フラッシュROMに記憶されたプログラムを更新するための処理が他の処理において利用されることはなく、処理性能に限界がある。
【0005】
それゆえに、この発明の主たる目的は、処理性能を高めることができる、プログラム処理装置を提供することである。
【課題を解決するための手段】
【0006】
この発明に従うプログラム処理装置(10:実施例で相当する参照符号。以下同じ)は、対象プログラムを起動するための第1プログラムを保存する内部メモリ(28)、内部メモリを更新するための第2プログラムを保存する外部メモリ(42)が装着されたか否かを判別する判別手段(S5)、判別手段の否定的な判別結果に基づいて第1プログラムを指定する第1指定手段(S9)、判別手段の肯定的な判別結果に基づいて第2プログラムを指定する第2指定手段(S7)、および第1指定手段および第2指定手段のいずれか一方によって指定されたプログラムを実行する実行手段(S21~S23)を備える。
【0007】
好ましくは、対象ブログラムはファームウェアに相当し、第1プログラムおよび第2プログラムの各々はブートプログラムに相当する。
【0008】
さらに好ましくは、内部メモリは第1プログラムをロードするための第1ロード情報をさらに保存し、外部メモリは第2プログラムをロードするための第2ロード情報をさらに保存し、第1指定手段の処理は第1ロード情報の読み出しを要求する処理を含み、第2指定手段の処理は第2ロード情報の読み出しを要求する処理を含む。
【0009】
より好ましくは、実行手段は、第1指定手段および第2指定手段のいずれか一方によって読み出されたロード情報に対応するプログラムをロードするロード手段(S21)、およびロード手段によってロードされたプログラムに従う処理を実行する処理手段(S23)を含む。
【0010】
好ましくは、外部メモリは第1プログラムをさらに保存し、第2プログラムは第1プログラムを外部メモリから内部メモリに転送するためのプログラムに相当する。
【0011】
好ましくは、判別手段,第1指定手段および第2指定手段は第1CPU(32)の下で処理を実行し、実行手段は第2CPU(24)の下で処理を実行する。
【0012】
この発明に従うプログラム処理プログラムは、対象プログラムを起動するための第1プログラムを保存する内部メモリ(28)を備えるプログラム処理装置(10)のプロセッサ(24, 32)に、内部メモリを更新するための第2プログラムを保存する外部メモリ(42)が装着されたか否かを判別する判別ステップ(S5)、判別ステップの否定的な判別結果に基づいて第1プログラムを指定する第1指定ステップ(S9)、判別ステップの肯定的な判別結果に基づいて第2プログラムを指定する第2指定ステップ(S7)、および第1指定ステップおよび第2指定ステップのいずれか一方によって指定されたプログラムを実行する実行ステップ(S21~S23)を実行させるための、プログラム処理プログラムである。
【0013】
この発明に従うプログラム処理方法は、対象プログラムを起動するための第1プログラムを保存する内部メモリ(28)を備えるプログラム処理装置(10)によって実行されるプログラム処理方法であって、内部メモリを更新するための第2プログラムを保存する外部メモリ(42)が装着されたか否かを判別する判別ステップ(S5)、判別ステップの否定的な判別結果に基づいて第1プログラムを指定する第1指定ステップ(S9)、判別ステップの肯定的な判別結果に基づいて第2プログラムを指定する第2指定ステップ(S7)、および第1指定ステップおよび第2指定ステップのいずれか一方によって指定されたプログラムを実行する実行ステップ(S21~S23)を備える。
【発明の効果】
【0014】
この発明によれば、外部メモリが非装着状態であれば、内部メモリに保存された第1プログラムが指定される。これに対して、外部メモリが装着状態であれば、外部メモリに保存された第2プログラムが指定される。指定されたプログラムが第1プログラムであれば対象プログラムが起動され、指定されたプログラムが第2プログラムであれば内部メモリが更新される。つまり、外部メモリの装着/非装着に応じて指定プログラムを変更することで、実行手段の実行態様に相違が現れる。これによって、内部メモリを更新するための処理と対象プログラムの起動のための処理とを部分的に共通化でき、処理性能の向上が図られる。
【0015】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0016】
図1】この発明の一実施例の基本的構成を示すブロック図である。
図2】この発明の一実施例の構成を示すブロック図である。
図3】NAND型フラッシュメモリのマッピング状態の一例を示す図解図である。
図4】eMMCデバイスのマッピング状態の一例を示す図解図である。
図5図2実施例に適用されるCPUの動作の一部を示すフロー図である。
図6図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【発明を実施するための形態】
【0017】
以下、この発明の実施の形態を図面を参照しながら説明する。
[基本的構成]
【0018】
図1を参照して、この発明の実施例のプログラム処理装置は、基本的に次のように構成される。内部メモリ1は、対象プログラムを起動するための第1プログラムを保存する。判別手段2は、内部メモリ1を更新するための第2プログラムを保存する外部メモリ6が装着されたか否かを判別する。第1指定手段3は、判別手段の否定的な判別結果に基づいて第1プログラムを指定する。第2指定手段4は、判別手段の肯定的な判別結果に基づいて第2プログラムを指定する。実行手段5は、第1指定手段および第2指定手段のいずれか一方によって指定されたプログラムを実行する。
【0019】
外部メモリ6が非装着状態であれば、内部メモリ1に保存された第1プログラムが指定される。これに対して、外部メモリ6が装着状態であれば、外部メモリ6に保存された第2プログラムが指定される。指定されたプログラムが第1プログラムであれば対象プログラムが起動され、指定されたプログラムが第2プログラムであれば内部メモリ1が更新される。つまり、外部メモリ6の装着/非装着に応じて指定プログラムを変更することで、実行手段の実行態様に相違が現れる。これによって、内部メモリ1を更新するための処理と対象プログラムの起動のための処理とを部分的に共通化でき、処理性能の向上が図られる。
[実施例]
【0020】
図2を参照して、この実施例のデータ処理装置10は、電源回路38を含む。電源回路38は、互いに異なる電圧値を各々が示す複数の直流電源をバッテリ40に基づいて生成する。生成された複数の直流電源の一部はサブCPU32に直接的に与えられ、生成された複数の直流電源の他の一部は主電源スイッチ36を介してシステム全体に与えられる。したがって、サブCPU32は常時起動されるのに対して、システム全体を構成する要素は主電源スイッチ36のオン/オフに従って起動/停止される。
【0021】
なお、この実施例において“システム全体”とは、前処理回路12,メモリ制御回路14,SDRAM16,後処理回路18,メモリI/F20,ブートRAM22,メインCPU24,メモリI/F26およびスロット30を指す。
【0022】
キー入力装置34によって電源オン操作が行われると、サブCPU32は、キー入力装置34に設けられたキーの操作状態が特定状態にあるか否か、ならびにeMMC(embedded MultiMedia Card)デバイス42がスロット30に装着されているか否かを判別する。
【0023】
キー操作状態が特定状態にあり、かつeMMCデバイス42がスロット30に装着されていれば、サブCPU32は、eMMCブートトリガをHレベルに設定する。これに対して、キー操作状態が特定状態と異なる状態にあるか、或いはeMMCデバイス42がスロット30から抜去されていれば、サブCPU32は、eMMCブートトリガをLレベルに設定する。ここで、Hレベルを示すeMMCブートトリガはNAND型フラッシュメモリ28に保存されたIPL_nand(IPL:Initial Program Loader)の読み出しの要求に相当し、Lレベルを示すeMMCブートトリガはeMMCデバイス42に保存されたIPL_emmcの読み出しの要求に相当する。
【0024】
eMMCブートトリガのレベル設定が完了すると、サブCPU32は、主電源スイッチ36をオン状態に設定する。これによって、システム全体が起動される。その後にキー入力装置32によって電源オフ操作が行われると、サブCPU32は、主電源スイッチ36をオフ状態に設定する。これによって、システム全体が停止される。
【0025】
図3を参照して、フラッシュメモリ28は、IPL_nand,ファームウェア用ブートプログラム,調整値,ファームウェアおよびコンテンツデータを記憶する。IPL_nandは、ファームウェア用ブートプログラムをロードするための情報に相当する。ファームウェア用ブートプログラムは、ファームウェアを起動するためのプログラムに相当する。調整値は、ファームウェアによって参照されるパラメータ値に相当する。コンテンツデータは、ファームウェアの実行によって作成されたデータに相当する。
【0026】
図4を参照して、eMMCデバイス42は、FATファイルシステムを採用し、IPL_emmc,メモリ更新用ブートプログラム,MBR(Master Boot Record),FAT(FAT:File Allocation Table)およびディレクトリエントリを管理データとして記憶するとともに、IPL_nand,ファームウェア用ブートプログラムおよびファームウェアを実データとして記憶する。
【0027】
IPL_emmcは、メモリ更新用ブートプログラムをロードするための情報に相当する。メモリ更新用ブートプログラムは、IPL_nand,ファームウェア用ブートプログラムおよびファームウェアをフラッシュメモリ28に複製するためのプログラムに相当する。なお、メモリ更新用ブートプログラムは、エンハンスドユーザデータエリアに記憶される。
【0028】
図2に戻って、電源オン操作によって起動したメモリI/F20は、サブCPU32によって設定されたeMMCブートトリガのレベルを検出し、検出されたレベルに応じて異なる処理を以下の要領で実行する。
【0029】
eMMCブートトリガがLレベルであれば、メモリI/F20は、IPL_nandをメモリI/F26を通してフラッシュメモリ28から読み出し、読み出されたIPL_nandをブートRAM22に書き込む。
【0030】
これに対して、eMMCブートトリガがHレベルであれば、メモリI/F20は、IPL_emmcをメモリI/F20およびスロット30を通してeMMCデバイス42から読み出し、読み出されたIPL_emmcをブートRAM22に書き込む。
【0031】
また、電源オン操作によって起動したメインCPU24は、ブートRAM22に格納されたIPLに対応するブートプログラムをロードするべく、以下の処理を実行する。
【0032】
ブートRAM22に格納されたIPLがIPL_nandであれば、メインCPU24は、フラッシュメモリ28に保存されたファームウェア用ブートブログラムをメモリI/F26を通して読み出し、読み出されたファームウェア用ブートプログラムをメモリ制御回路14を通してSDRAM16に書き込む。
【0033】
これに対して、ブートRAM22に格納されたIPLがIPL_emmcであれば、メインCPU24は、eMMCデバイス42に保存されたメモリ更新用ブートブログラムをスロット30を通して読み出し、読み出されたメモリ更新用ブートプログラムをメモリ制御回路14を通してSDRAM16に書き込む。
【0034】
メインCPU24はその後、SDRAM16にロードされたブートプログラムを実行する。
【0035】
ロードされたブートプログラムがファームウェア用ブートプログラムであれば、フラッシュメモリ28に保存されたファームウェアが起動される。この結果、前処理回路12および後処理回路18がファームウェアの制御に従って動作し、さらにこの動作によって作成されたコンテンツデータがフラッシュメモリ28の指定パーティションに保存される。
【0036】
これに対して、ロードされたブートプログラムがメモリ更新用ブートプログラムであれば、フラッシュメモリ28が更新される。eMMCデバイス42に保存されたIPL_nand,ファームウェア用ブートプログラムおよびファームウェアは、メモリ更新用ブートプログラムによってフラッシュメモリ28の指定パーティションに複製される。
【0037】
サブCPU32は、図5に示すフロー図に従う処理を実行する。また、メインCPU24は、図6に示すフロー図に従う処理を実行する。
【0038】
図5を参照して、ステップS1では電源オン操作が行われたか否かを判別する。判別結果がNOからYESに更新されると、キー入力装置34のキー操作状態が特定状態であるか否かをステップS3で判別し、eMMCデバイス42がスロット30に装着されているか否かをステップS5で判別する。
【0039】
ステップS3の判別結果およびステップS5の判別結果のいずれもがYESであれば、ステップS7に進み、eMMCブートトリガをHレベルに設定する。これに対して、ステップS3の判別結果およびステップS5の判別結果の少なくとも一方がNOであれば、ステップS9に進み、eMMCブートトリガをLレベルに設定する。ステップS7の処理によってIPL_nandの読み出しが要求され、ステップS9の処理によってIPL_emmcの読み出しが要求される。
【0040】
ステップS7またはS9の処理が完了すると、ステップS11で主電源スイッチ36をオン状態に設定する。この結果、システム全体が起動する。メモリI/F20は、HレベルのeMMCブートトリガに応答してIPL_nandをフラッシュメモリ28からブートRAM22に転送し、LレベルのeMMCブートトリガに応答してIPL_emmcをeMMCデバイス42からブートRAM22に転送する。
【0041】
ステップS13では電源オフ操作が行われたか否かを判別する。判別結果がNOからYESに更新されると、ステップS15で主電源スイッチ36をオフ状態に設定する。この結果、システム全体が停止する。ステップS15の処理が完了すると、ステップS1に戻る。
【0042】
図6を参照して、ステップS21ではブートRAM22に設定されたIPLに従うブートプログラムをSDRAM16にロードする。したがって、ブートRAM22上のIPLがIPL_nandであれば、フラッシュメモリ28に保存されたファームウェア用ブートプログラムがSDRAM16にロードされる。これに対して、ブートRAM22上のIPLがIPL_emmcであれば、eMMCデバイス42に保存されたメモリ更新用ブートプログラムがSDRAM16にロードされる。
【0043】
ステップS23では、ロードされたブートプログラムを実行する。したがって、ロードされたブートプログラムがファームウェア用ブートプログラムであれば、フラッシュメモリ28に格納されたファームウェアが起動され、前処理回路12および後処理回路18がファームウェアに従って動作する。これに対して、ロードされたブートプログラムがメモリ更新用ブートプログラムであれば、フラッシュメモリ28が更新される。具体的には、eMMCデバイス42に格納されたIPL_nand,ファームウェア用ブートプログラムおよびファームウェアが、フラッシュメモリ28上の指定パーティションに複製される。
【0044】
以上の説明から分かるように、フラッシュメモリ28はファームウェア用ブートプログラムを保存し、eMMCデバイス42はメモリ更新用ブートプログラムを保存する。サブCPU32は、eMMCデバイス42がスロット30に装着されたか否かを判別し(S5)、否定的な判別結果に基づいてファームウェア用ブートプログラムを指定する一方(S9)、肯定的な判別結果に基づいてメモリ更新用ブートプログラムを指定する(S7)。メインCPU24は、こうして指定されたブートプログラムを実行する(S21~S23)。この結果、ファームウェア用ブートプログラムの指定に対応してファームウェアが起動され、メモリ更新用ブートプログラムの指定に対応してフラッシュメモリ28が更新される。
【0045】
このように、eMMCデバイス42が非装着状態であれば、フラッシュメモリ28に保存されたファームウェア用ブートプログラムが指定される。これに対して、eMMCデバイス42が装着状態であれば、eMMCデバイス42に保存されたメモリ更新用ブートプログラムが指定される。指定されたプログラムがファームウェア用ブートプログラムであればファームウェアが起動され、指定されたプログラムがメモリ更新用ブートプログラムであればフラッシュメモリ28が更新される。つまり、eMMCデバイス42の装着/非装着に応じて指定ブートプログラムを変更することで、その後の処理態様に相違が現れる。これによって、フラッシュメモリ28の更新処理とファームウェアの起動処理とを部分的に共通化でき、処理性能の向上が図られる。
【0046】
なお、この実施例では、ブートトリガのレベルに応じて異なるブートプログラムをロードするようにしている。しかし、注目するトリガはブートトリガに限られるものではなく、ロードすべきプログラムもまたブートプログラムに限られるものではない。
【符号の説明】
【0047】
10 …データ処理装置
16 …SDRAM
22 …ブートRAM
24 …メインCPU
28 …フラッシュメモリ
30 …スロット
32 …サブCPU
42 …eMMCデバイス
図1
図2
図3
図4
図5
図6