(57)【要約】【課題】ＲＯＭを有さない第１半導体チップに、第２半導体チップのＲＯＭから第１半導体チップ用のプログラムを転送した後、長期間、プログラムのベリファイを行なう機会が無いので、プログラムの信頼性が低下する。【解決手段】電池の装着時などの携帯電話の使用を開始するときに、第２半導体チップのＲＯＭから第１半導体チップのＲＡＭにプログラムの転送を行ない、その後、通常使用時に所定のユーザ操作を検出した場合に、第１半導体チップのＲＡＭに記憶されたプログラムのベリファイを実行する。【選択図】図１
2008009853.tif 000002
【特許請求の範囲】
【請求項１】
揮発性メモリを有する第１半導体チップと、不揮発性メモリを有する第２半導体チップとを内蔵する携帯電話の制御方法であって、
前記第１および第２半導体チップへの電力供給を検出する第１ステップと、
前記第１ステップに応じて、前記第２半導体チップの前記不揮発性メモリに記憶されたプログラムを前記第１半導体チップの前記揮発性メモリに転送する第２ステップと、
前記第２ステップの後、前記第１および第２半導体チップを起動する第３ステップと、
前記第３ステップの後、所定のユーザ操作の検出に応じて前記第１半導体チップの前記揮発性メモリ内の前記プログラムをベリファイする第４ステップと、
を有することを特徴とする制御方法。
【請求項２】
前記第４ステップにおいて前記プログラムが異常であることが検出された場合に、前記プログラムを、前記不揮発性メモリから前記揮発性メモリに再転送する第５ステップをさらに有することを特徴とする請求項１に記載の制御方法。
【請求項３】
前記第４ステップの前記ベリファイは、前記揮発性メモリ内の前記プログラムのチェックサムを計算することにより行うことを特徴とする請求項１から請求項２のいずれか一に記載の制御方法。
【請求項４】
前記第１ステップは、前記携帯電話へ電池が装着されたことを検出するステップであることを特徴とする請求項１から請求項３のいずれか一に記載の制御方法。
【請求項５】
前記携帯電話が折りたたみ式の携帯電話であり、第４ステップの前記所定のユーザ操作は、ユーザが前記携帯電話を開く操作であることを特徴とする請求項１から請求項４のいずれか一に記載の制御方法。
【請求項６】
第４ステップの前記所定のユーザ操作は、ユーザが前記携帯電話のボタンを押下する操作であることを特徴とする請求項１から請求項５のいずれか一に記載の制御方法。
【請求項７】
前記第３ステップは、ユーザが前記携帯電話の電源ボタンを所定時間押下したことを検出したことに応じて行なわれることを特徴とする請求項１から請求項６のいずれか一に記載の制御方法。
【請求項８】
前記第４ステップにおいて前記所定のユーザ操作を検出した時に、前記所定のユーザ操作を前回検出した時から予め定められた時間が経過していない場合には、前記プログラムのベリファイを行わないことを特徴とする請求項１から請求項７のいずれか一に記載の制御方法。
【請求項９】
前記第１半導体チップは不揮発性メモリを有さないことを特徴とする請求項１から請求項８のいずれか一に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯電話内のメモリに記憶されたプログラムのベリファイを制御する方法に関する。
【背景技術】
【０００２】
近年の携帯電話は、通話機能だけでなく、カメラ機能や音楽再生機能などの様々な機能（以下、アプリケーション機能）を有している。
【０００３】
携帯電話に様々な機能を持たせるために、通話機能を担う半導体チップ（Ｃｏｍｍｕｎｉｃａｔｉｏｎ ＣＰＵ：以下、ＣＣＰＵ）と、アプリケーション機能を担う半導体チップ（Ａｐｐｌｉｃａｔｉｏｎ ＣＰＵ：以下、ＡＣＰＵ）とを別々に製造し、２つの半導体チップを携帯電話に搭載することが行なわれている。
【０００４】
一般に、マスクＲＯＭ、ＥＥＰＲＯＭなどの不揮発性メモリを有する半導体チップは製造コストが高いので、ＣＣＰＵとＡＣＰＵの両方のチップに不揮発性メモリを設けると、携帯電話のコストが増加してしまう。そのため、ＣＣＰＵには不揮発性メモリを設けず、ＡＣＰＵにのみ不揮発性メモリを設けることにより、コスト低減を図っている。ＣＣＰＵの動作を記述したプログラムはＡＣＰＵに設けられた不揮発性メモリに記憶しておき、携帯電話の使用を開始するとき（例えば、電池が装着されたとき）に、ＣＣＰＵに設けられた揮発性メモリに転送される。その後、電池が取り外されるまでＣＣＰＵの揮発性メモリに記憶されたプログラムは消えることがなく、ＣＣＰＵを動作させるために使用される。
【０００５】
不揮発性メモリから揮発性メモリにプログラムを転送して、このプログラムに基づいて動作する装置が、特許文献１および２に記載されている。
【０００６】
特許文献１に記載の技術では、親情報処理装置内のＲＯＭから携帯端末装置内の揮発性メモリにプログラムが転送される。そして、揮発性メモリに書き込んだデータをベリファイすることができることが記載されている（同文献の段落００３８）。
【０００７】
また、特許文献２に記載の技術では、共通監視用ＣＰＵユニット内のＲＯＭから個別制御用ＣＰＵユニット内のＲＡＭにプログラムを転送している。そして、個別制御用ＣＰＵユニットが、転送されたソフトウエアの正常性を確認し、異常である場合には、ソフトウエアの再転送を行なうことが記載されている（同文献の段落００１０）。また、個別制御用ＣＰＵユニットが動作を開始した後、
ＣＰＵ動作監視回路がＣＰＵの動作を監視し、異常を検出したときはＣＰＵをリセットしてソフトウエアの再転送を行なうことが記載されている（同文献の段落００１９）。
【０００８】
【特許文献１】特開２００２−１５７２１２号公報
【特許文献２】特開平９−７３４３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
近年の携帯電話は、一旦電池が装着されると、電池が取り外されることがほとんど無い。そのため、電池装着時にＣＣＰＵに転送されたプログラムは、最初に転送された際にベリファイされると、その後、ベリファイや再転送される機会がない。
【００１０】
また、特許文献２のように、ＣＰＵの動作の異常を検出した際にプログラムの再転送を行なう技術では、ＣＰＵの動作に異常が発生しない限りプログラムの再転送が行なわれない。プログラムに異常が発生した場合に必ずＣＰＵの動作に異常が発生するとは限らないからである。
【課題を解決するための手段】
【００１１】
本発明は、一の半導体装置の不揮発性メモリから他の半導体装置の揮発性メモリにプログラムを転送し、その後、所定のユーザ操作を検出したときに、この揮発性メモリに記憶されたプログラムのベリファイを行なうことを特徴とする。
【００１２】
この特徴により、一旦、携帯電話に電池が装着された後に、長期間電池が取り外されることが無く、かつ、ＣＰＵの動作の異常が発生しなかった場合でも、揮発性メモリに転送・記憶されたプログラムをベリファイする機会を確保することができる。
【００１３】
例えは、本発明は、揮発性メモリを有する第１半導体チップと、不揮発性メモリを有する第２半導体チップと、を内蔵する携帯電話の制御方法であって、前記第１および第２半導体チップへの電力供給を検出する第１ステップと、前記第１ステップに応じて、前記第２半導体チップの前記不揮発性メモリに記憶されたプログラムを前記第１半導体チップの前記揮発性メモリに転送する第２ステップと、前記第２ステップの後、前記第１および第２半導体チップの動作を開始する第３ステップと、前記第３ステップの後、所定のユーザ操作の検出に応じて前記第１半導体チップの前記揮発性メモリ内の前記プログラムをベリファイする第４ステップと、を有することを特徴とする制御方法である。
【発明の効果】
【００１４】
本発明によれば、一旦、揮発性メモリに転送されたプログラムが、長期間ベリファイされない事態を回避することができる。
【発明を実施するための最良の形態】
【００１５】
本発明の実施の形態に係る携帯電話の構成および制御フローを、図１および図２に示す。
【００１６】
図１を参照して、携帯電話１は、通話機能を実現するために搭載された第１の半導体チップであるＣＣＰＵ（Ｃｏｍｍｕｎｉｃａｔｉｏｎ ＣＰＵ）１０と、ユーザ操作を受け付けたりカメラ機能などを実現したりするために搭載された第２の半導体チップであるＡＣＰＵ（Ａｐｐｌｉｃａｔｉｏｎ ＣＰＵ）２０を有する。ＣＣＰＵ１０とＡＣＰＵ２０とは別個の半導体チップである。
【００１７】
ＣＣＰＵ１０は、揮発性メモリであるＲＡＭ１１と、ＲＡＭ１１に記憶されたプログラムのベリファイを行なうベリファイ回路１３と、通話機能を実現する処理回路１５を有しているが、不揮発性メモリを有さない。処理回路１５、ベリファイ回路１３およびＲＡＭ１１は、システムバス１７を介して互いに接続している。
【００１８】
ＡＣＰＵ２０は、ＲＡＭ２１と、不揮発性メモリであるＲＯＭ２２と、ユーザの操作を受け付け、カメラ機能などを実現するための処理回路２５に割り込み信号ＩＮＴを送信する割り込み処理回路２４と、タイマ２６とを有する。ＲＯＭ２２には、マスクＲＯＭやＥＥＰＲＯＭなど、各種の不揮発性メモリを用いることができる。ＲＯＭ２２には、ＡＣＰＵ２０の動作を記述したプログラムの他に、ＣＣＰＵ１０の動作を記述したプログラムが予め記憶されている。処理回路２５、ＲＡＭ２１、ＲＯＭ２２、タイマ２６および割り込み処理回路２４は、システムバス２７を介して互いに接続している。
【００１９】
携帯電話１には、その他、ＡＣＰＵ２０のＲＯＭ２２からＣＣＰＵ１０のＲＡＭ１１に外部バス３７を介してプログラムを転送するための転送回路３０と、充電可能な電池４０と、ボタン５０と、画面６０とを有する。電池４０は携帯電話１から取り外すことが可能であり、図示しない配線を介して、ＣＣＰＵ１０やＡＣＰＵ２０、その他、携帯電話１内の回路や素子に電力を供給する。携帯電話１が折りたたみ式の場合には、折りたたまれた状態（閉状態）か開かれた状態（開状態）かを検出するスイッチ７０が設けられている。ボタン５０は、電話番号の入力に使用される数字ボタンや電源ボタン等を含む。ボタン５０がユーザにより押下されたことや、スイッチ７０が折りたたみ式携帯電話の開閉を検出したことを、配線Ｗ１，Ｗ２を介してＡＣＰＵ２０内の割り込み処理回路２４が検出し、割り込み処理回路２４は処理回路２５に割り込み信号ＩＮＴを送信する。
【００２０】
図２を用いて、携帯電話１の制御フローを説明する。
【００２１】
ステップＳ１で、携帯電話１に電池４０が装着されたことを検出する。このステップＳ１は、ＡＣＰＵ２０の電源端子に電圧が印加されたことを検出することにより行なわれる。
【００２２】
次いで、ステップＳ２で、転送回路３０を介して、ＡＣＰＵ２０のＲＯＭ２２に記憶されているＣＣＰＵ１０の動作を記述したプログラムを、ＣＣＰＵ１０のＲＡＭ１１に転送する。転送完了後、プログラムのベリファイを行っても良い。
【００２３】
次いで、ステップＳ３において、ユーザが携帯電話１の電源ボタンを所定時間押し続けたこと（いわゆる電源ボタンの長押し）を検出する。
【００２４】
電源ボタンの長押しを検出すると、ステップＳ４で、ＣＣＰＵ１０とＡＣＰＵ２０が起動する。
【００２５】
次いで、ステップＳ５で、ＡＣＰＵ２０は、自身の起動を割り込み要因として、ＣＣＰＵ１０のベリファイ回路１３に、ベリファイ指示信号ＳＧ１を送信する。
【００２６】
次いで、ステップＳ６で、ベリファイ指示信号ＳＧ１を受信したベリファイ回路１３は、ＣＣＰＵ１０のＲＡＭ１１に記憶されたプログラムのチェックサムを計算することによりベリファイを行なう。
【００２７】
そして、ステップＳ７で、ステップＳ６のベリファイにおいてＲＡＭ１１に記憶されたプログラムが正常であったか否かを判定する。
【００２８】
判定Ｓ７の結果、プログラムに異常であった場合には、ベリファイ回路１３が転送回路３０に転送指示信号ＳＧ２を送信し（ステップＳ８）、転送指示信号ＳＧ２を受信した転送回路３０は、ＡＣＰＵ２０のＲＯＭ２２からＣＣＰＵ１０のＲＡＭ１１へ、プログラムの再転送を行なう。
【００２９】
判定Ｓ７の結果、プログラムが正常であった場合には、ＣＣＰＵ１０およびＡＣＰＵ２０は通常動作を開始する。すなわち、ＣＣＰＵ１０は発信および着信を行い、ＡＣＰＵ２０はボタン５０操作に伴う割り込みやスイッチ７０からの割り込みなど、ユーザ操作に起因した割り込みの受け付け、画面６０の表示、カメラ機能や音楽機能などを実行する。
【００３０】
ＣＣＰＵ１０は、ＲＯＭ２２からＲＡＭ１１に転送されたプログラムに基づいて通常動作を行ない、ＡＣＰＵ２０はＲＯＭ２２に記憶されたプログラムに基づいて通常動作を行なう。
【００３１】
ステップＳ１１において、通常動作中に、ＡＣＰＵ２０が所定のユーザ操作を検出する。例えば、ユーザが折りたたみ式携帯電話を開いたことによりスイッチ７０から信号を割り込み処理回路２４が検出し、割り込み処理回路２４が割り込み信号ＩＮＴをＡＣＰＵ２０に送信する。
【００３２】
所定のユーザ操作としてユーザがボタン５０を押したことを割り込み処理回路２４が検出し、割り込み信号ＩＮＴをＡＣＰＵ２０に送信してもよい。
【００３３】
次いで、ステップＳ１２において、タイマ２６から、前回所定のユーザ操作を検出してから今回の検出までの経過時間ｔを読み出し、この経過時間ｔと予め定められたインターバル時間Tintとを比較する。
【００３４】
比較Ｓ１２の結果、経過時間ｔがインターバル時間Tint以上の場合には、ＡＣＰＵ２０がベリファイ回路１３にベリファイ指示信号SG1を送信する（ステップＳ１４）。経過時間ｔがインターバル時間Tintより短い場合には、ベリファイを行わず、経過時間ｔをリセットして（ステップＳ１３）通常動作に戻る。このように、経過時間ｔがインターバル時間Tintより短い場合にベリファイを行なわないことにより、ユーザが折りたたみ式携帯電話の開閉を短期間に繰り返すなど、頻繁に所定のユーザ操作が行なわれたとしても、ベリファイの回数を制限することができる。ベリファイの回数を制限することにより、過剰にベリファイが行なわれて電池が消耗することを防止することができる。予め定められた時間Tintは、例えば３０秒とすることができる。
【００３５】
そして、ステップＳ１５において、ＡＣＰＵ２０からベリファイ指示信号ＳＧ１を受信したベリファイ回路１３は、チェックサムを計算することにより、ＣＣＰＵ１０のＲＡＭ１１に記憶されたプログラムのベリファイを行なう。
【００３６】
そして、ステップＳ１６で、ステップＳ１５のベリファイにおいてＲＡＭ１１に記憶されたプログラムが正常であったか否かを判定する。
【００３７】
判定Ｓ１６の結果、プログラムが異常であった場合には、ベリファイ回路１３が転送回路３０に転送指示信号ＳＧ２を送信する（ステップＳ１７）。転送指示信号ＳＧ２を受信した転送回路３０は、ステップＳ１８により、ＡＣＰＵ２０のＲＯＭ２２からＣＣＰＵ１０のＲＡＭ１１へプログラムの再転送を行なう。プログラムの再転送が完了した後、ＣＣＰＵ１０とＡＣＰＵ２０は通常動作に戻る。
【００３８】
判定の結果、プログラムが正常であった場合には、ＣＣＰＵ１０およびＡＣＰＵ２０は通常動作を再開する。
【００３９】
尚、ステップＳ９において、通常動作中にＡＣＰＵ２０がユーザによる電源オフ操作（例えば携帯電話１の電源ボタンの長押し）を検出すると、ＡＣＰＵ２０はＣＣＰＵ１０に電源遮断を通知する。その後、ＣＣＰＵ１０とＡＣＰＵ２０は共にリセットされ、再度ユーザによる電源ボタンの長押しを検出するまで電源がオフした状態となる。
【図面の簡単な説明】
【００４０】
【図１】本発明の携帯電話の構成を示す図である。
【図２】本発明の携帯電話の制御フローを示す図である。
【符号の説明】
【００４１】
１  携帯電話
１０  ＣＣＰＵ
１１  ＲＡＭ
１３  ベリファイ回路
１５  処理回路
１７  システムバス
２０  ＡＣＰＵ
２１  ＲＡＭ
２２  ＲＯＭ
２４  割り込み処理回路
２６  タイマ
２７  システムバス
３０  転送回路
３７  外部バス
４０  電池
５０  ボタン
６０  画面
７０  スイッチ
【図１】
2008009853.tif 000003
【図２】
2008009853.tif 000004