(57)【要約】【課題】  ヘテロジニアス・マルチコアＣＰＵが備える各コアを効率良く動作させて、メモリに記憶されている各コア用の全てのプログラムの読み込み完了までの時間を短縮化する。【解決手段】  第１，第２のコア３１，３２と、該各コア３１，３２がＮＡＮＤメモリ１０に記憶されている各コア３１，３２用のプログラムの読み込みをそれぞれ行う際に、該各コア３１，３２のメモリアクセスが干渉しないように、該各コア３１，３２のメモリアクセスの調停を図る第１，第２のコア用調停回路３３，３４とを１チップ化したヘテロジニアス・マルチコア構成を有し、例えば第２のコア３２が当該第２のコア用の全プログラムの読み込みを完了した際に、第１のコア３１が当該第１のコア用のプログラムの読み込みを継続していた場合、第２のコア用調停回路３４は、上記第１のコア３１と共に該第１のコア用のプログラムの読み込みを行うように上記第２のコア３２を制御する。【選択図】  図４
2010191548.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも複数の演算処理部（コア）と、上記各コアがメモリに記憶されている各コア用のプログラムの読み込みをそれぞれ行う際に、該各コアのメモリアクセスが干渉しないように、該各コアのメモリアクセスの調停を図る一つ或いは複数の調停回路とを１チップ化したヘテロジニアス・マルチコア構成を有し、
上記調停回路は、全プログラムの読み込みを完了したコアを検出し、かつ、他のコアが当該他のコア用のプログラムの読み込みを継続している場合、上記全プログラムの読み込みを完了したコアを、上記他のコアと共に、該他のコア用のプログラムの読み込みを行うように制御する
ヘテロジニアス・マルチコア演算処理装置。
【請求項２】
上記メモリには各コアによりそれぞれ読み込みがなされる起動用のプログラムがそれぞれ記憶されており、
上記調停回路は、上記起動用の全プログラムの読み込みを完了したコアを検出し、かつ、他のコアが当該他のコア用の上記起動用のプログラムの読み込みを継続している場合、上記全プログラムの読み込みを完了したコアを、上記他のコアと共に、該他のコア用の上記起動用のプログラムの読み込みを行うように制御する
請求項１に記載のヘテロジニアス・マルチコア演算処理装置。
【請求項３】
少なくとも複数の演算処理部（コア）と、上記各コアがメモリに記憶されている各コア用のプログラムの読み込みをそれぞれ行う際に、該各コアのメモリアクセスが干渉しないように、該各コアのメモリアクセスの調停を図る一つ或いは複数の調停回路とを１チップ化したヘテロジニアス・マルチコア構成を有するヘテロジニアス・マルチコア演算処理装置における演算処理方法であって、
上記調停回路が、全プログラムの読み込みを完了したコアを検出するステップと、
上記調停回路が、上記ステップで全プログラムの読み込みを完了したコアを検出した際に、プログラムの読み込みを継続している他のコアを検出するステップと、
上記調停回路が、上記全プログラムの読み込みを完了したコアを、上記他のコアと共に、該他のコア用のプログラムの読み込みを行うように制御するステップと
を有するヘテロジニアス・マルチコア演算処理装置における演算処理方法。
【請求項４】
少なくとも複数の演算処理部（コア）と、上記各コアがメモリに記憶されている各コア用のプログラムの読み込みをそれぞれ行う際に、該各コアのメモリアクセスが干渉しないように、該各コアのメモリアクセスの調停を図る一つ或いは複数の調停回路とを１チップ化したヘテロジニアス・マルチコア構成を有するヘテロジニアス・マルチコア演算処理装置における演算処理プログラムであって、
上記調停回路を、全プログラムの読み込みを完了したコアを検出する読み込み完了コア検出部として機能させ、
上記調停回路を上記読み込み完了検出部として機能させることで、全プログラムの読み込みを完了したコアが検出された際に、上記調停回路を、プログラムの読み込みを継続している他のコアを検出する読み込み継続コア検出部として機能させ、
上記調停回路を上記読み込み完了コア検出部及び上記読み込み継続コア検出部として機能させることで、全プログラムの読み込みを完了したコア、及びプログラムの読み込みを継続している他のコアが検出された際に、上記全プログラムの読み込みを完了したコアが、上記他のコアと共に、該他のコア用のプログラムの読み込みを行うように制御する読み込み制御部として上記調停回路を機能させる
ヘテロジニアス・マルチコア演算処理装置における演算処理プログラム。
【請求項５】
少なくとも複数の演算処理部（コア）と、上記各コアがメモリに記憶されている各コア用のプログラムの読み込みをそれぞれ行う際に、該各コアのメモリアクセスが干渉しないように、該各コアのメモリアクセスの調停を図る一つ或いは複数の調停回路とを１チップ化したヘテロジニアス・マルチコア構成を備えた制御部を有する携帯端末装置であって、
上記制御部の調停回路は、全プログラムの読み込みを完了したコアを検出し、かつ、他のコアが当該他のコア用のプログラムの読み込みを継続している場合、上記全プログラムの読み込みを完了したコアを、上記他のコアと共に、該他のコア用のプログラムの読み込みを行うように制御する
携帯端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つのチップに異なる種類のアーキテクチャのコア（core）が複数設けられたヘテロジニアス・マルチコアＣＰＵ（CPU :Central Processing Unit）に適用して好適なヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラムに関する。また、例えば携帯電話機、ＰＨＳ電話機（PHS：Personal Handyphone System）、ＰＤＡ装置（PDA：Personal Digital Assistant）、携帯ゲーム機、ノート型のパーソナルコンピュータ装置等に適用して好適な、上記ヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、或いはヘテロジニアス・マルチコア演算処理装置の演算処理プログラムを備えた携帯端末装置に関する。
特には、各コアが干渉しないようにメモリアクセスを行うことで、該各コアがメモリに記憶されている該各コア用データの読み込みをそれぞれ行い、一方のコアが当該一方のコア用データの読み込みを完了し、他方のコアが該他方のコア用データの読み込みを継続している場合、該一方のコアが他方のコアと共に該他方のコア用データの読み込みを行うことで（＝一方のコアが他方のコアのデータの読み込みを手助けすることで）、メモリに記憶されている各コア用データの読み込みを高速で完了可能としたヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラム、及び携帯端末装置に関する。
【背景技術】
【０００２】
今日において、ＣＰＵコア（ＣＰＵの半導体部分におけるキャッシュメモリやインターフェイス等の周辺回路を除く演算回路の部分。以下、単にコアという。）を複数の備えたマルチコアＣＰＵとして、１チップ内に同じ種類のアーキテクチャのＣＰＵコアを複数備えた「ホモジニアス・マルチコアＣＰＵ」、及び１チップ内に異なる種類のアーキテクチャのＣＰＵコアをそれぞれ備えた「ヘテロジニアス・マルチコアＣＰＵ」が知られている。
【０００３】
ヘテロジニアス・マルチコアＣＰＵは、シングルスレッド性能を維持しつつ、マルチスレッド性能を大幅に高めることができ、また、各ＣＰＵコアを最適化することで、ホモジニアス・マルチコアＣＰＵでは実現困難な高効率処理が実現可能となっている。このため、このヘテロジニアス・マルチコアＣＰＵは、今後、マルチコアＣＰＵの主流となることが予測される。
【０００４】
このヘテロジニアス・マルチコアＣＰＵは、例えば第１のコア、第２のコア、第１のコア用の調停回路（Arbitrator）、及び第２のコア用の調停回路を備えており、各コアがメモリに対してアクセスする際に、各調停回路が通信を行うことで、該各コアからメモリに対するアクセスが干渉しないように調停するようになっている。
【０００５】
具体的には、第１のコアは当該第１のコアの周波数で第１のコア用の調停回路にアクセス要求（Request）を行い、第２のコアは当該第２のコアの周波数で第２のコア用の調停回路にアクセス要求を行う。第１のコア用の調停回路は、第１のコアからアクセス要求がなされると、第２のコア用の調停回路に対して、第２のコアからのアクセス要求をブロックするブロック要求を行う。第２のコア用の調停回路は、第１のコア用の調停回路から上記ブロック要求がなされると、該第１のコア用の調停回路から以下に説明するリクエスト許可がなされるまでの間、第２のコアからのアクセス要求をブロックする。
【０００６】
第１のコアは、このように第２のコア用の調停回路で第２のコアからのアクセス要求がブロックされている間に、メモリに対してアクセスを行い、該メモリに記憶されている当該第１のコア用のプログラムのうち、１回のアクセスで読み込むデータ量分のプログラムの読み込み（Read）を行う。第１のコア用の調停回路は、第１のコアが上記１回のアクセスで読み込むデータ量分のプログラムの読み込みが完了したタイミングで、第２のコア用の調停回路に対して、リクエスト許可（allow）を行う。
【０００７】
第２のコア用の調停回路は、第１のコア用の調停回路からリクエスト許可がなされると、このリクエスト許可がなされてから、第１のコア用の調停回路から、再度、上記ブロック要求がなされるまでの間に、第２のコアからアクセス要求がなされた場合、第１のコア用の調停回路に対して、第１のコアからのアクセス要求をブロックするブロック要求を行う。第１のコア用の調停回路は、第２のコア用の調停回路から上記ブロック要求がなされると、該第２のコア用の調停回路からリクエスト許可がなされるまでの間、第１のコアからのアクセス要求をブロックする。
【０００８】
第２のコアは、このように第１のコア用の調停回路で第１のコアからのアクセス要求がブロックされている間に、メモリに対してアクセスを行い、該メモリに記憶されている当該第２のコア用のプログラムのうち、１回のアクセスで読み込むデータ量分のプログラムの読み込み（Read）を行う。第２のコア用の調停回路は、第２のコアが上記１回のアクセスで読み込むデータ量分のプログラムの読み込みが完了したタイミングで、第１のコア用の調停回路に対して、リクエスト許可を行う。
【０００９】
第１のコア用の調停回路は、第２のコア用の調停回路からリクエスト許可がなされることで、上述のように第１のコアからのアクセス要求を処理することが可能となる。各調停回路は、このように、自分が担当するコアがメモリに対してアクセスを行う場合は、他方のコアのアクセスをブロックし、上記１回のアクセスで読み込むデータ量分のプログラムの読み込みが完了したタイミングで、他方のコア用の調停回路に対して、該他方のコアのアクセス要求を許可するリクエスト許可を行う動作を、各コアの周波数に基づいて繰り返し実行する。このような各コア用の調停回路の調停により、各コアは干渉することなく、メモリに対してアクセスして、該各コア用のプログラムの読み込みをそれぞれ行うようになっている。
【００１０】
なお、このようなヘテロジニアス・マルチコアＣＰＵに関する先行技術文献としては、特開２００７−３２８４１５号の公開特許公報（特許文献１）に、「ヘテロジニアス・マルチプロセッサシステムの制御方法」や、特開２００７−３２８４１６号の公開特許公報（特許文献２）に、「ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ」が開示されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−３２８４１５号公報
【特許文献２】特開２００７−３２８４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、従来のヘテロジニアス・マルチコアＣＰＵは、メモリに記憶されている第１のコア用のプログラム及び第２のコア用のプログラムのうち、第１のコア用のプログラムは第１のコアが読み込みを行い、第２のコア用のプログラムは第２のコアが読み込みを行う等のように、各コアは自分用のプログラムのみ、読み込みを行うようになっていた。このため、第１のコアが当該第１のコア用の全プログラムの読み込みを完了すると共に、第２のコアが当該第２のコア用の全プログラムの読み込みを完了するまでに長時間を要する問題があった（＝メモリに記憶されている各コア用のプログラムが、それぞれ各コアにより全て読み込まれるまでに長時間を要する問題があった。）。
【００１３】
この問題を具体的に説明すると、従来のヘテロジニアス・マルチコアＣＰＵは、上述のように各コアは自分用のプログラムのみ、読み込みを行うようになっている。このため、例えば第２のコアが当該第２のコア用の全てのプログラムの読み込みを完了すると、第２のコアは、図６に示すように第１のコアが当該第１のコア用の全てのプログラムの読み込みを完了するまでの間、待機状態となる。このように、いずれか一方のコアのみが動作し、他方のコアが動作しない時間が発生すると、メモリに記憶されている各コア用のプログラムが、それぞれ各コアにより全て読み込まれるまでに長時間を要してしまう。
【００１４】
また、このように第２のコアが待機状態となり、第１のコアのみがメモリに対してアクセスを行っている場合においても、該第１のコアのアクセス要求は、当該第１のコアの周波数に対応する周期で第１のコア用の調停回路に供給されることとなる。このため、図６に示すように第１のコアがアクセス要求を行うことでプログラムの読み込みを行い、該第１のコアが次にアクセス要求を行うまでの間に、当該第１のコアまでもが待機状態となる。すなわち、この間は、第１のコア及び第２のコアが共に動作しない時間となる。そして、各コアが共に動作しない時間が発生すると、メモリに記憶されている各コア用のプログラムが、それぞれ各コアにより全て読み込まれるまでに要する時間が、さらに長時間化する問題を生ずる。
【００１５】
従来のヘテロジニアス・マルチコアＣＰＵは、このようにメモリに記憶されている各コア用のプログラムが、それぞれ各コアにより全て読み込まれるまでに長時間を要していたため、例えばメモリに記憶されているプログラムが起動プログラムであった場合、システムを起動させるまでに長時間を要する問題があった。
【００１６】
本発明は、上述の課題に鑑みてなされたものであり、ヘテロジニアス・マルチコアＣＰＵが備える各コアを効率良く動作させて、メモリに記憶されている各コア用の全てのプログラムの読み込みを完了するまでの時間の短縮化を図り、例えばシステムの起動時間の短縮化等を図ることができるヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラム、及び携帯端末装置の提供を目的とする。
【課題を解決するための手段】
【００１７】
本発明に係るヘテロジニアス・マルチコア演算処理装置は、少なくとも複数の演算処理部（コア）と、上記各コアがメモリに記憶されている各コア用のプログラムの読み込みをそれぞれ行う際に、該各コアのメモリアクセスが干渉しないように、該各コアのメモリアクセスの調停を図る一つ或いは複数の調停回路とを１チップ化したヘテロジニアス・マルチコア構成を有し、上述の課題を解決するために、
上記調停回路が、全プログラムの読み込みを完了したコアを検出し、かつ、他のコアが当該他のコア用のプログラムの読み込みを継続している場合、上記全プログラムの読み込みを完了したコアを、上記他のコアと共に、該他のコア用のプログラムの読み込みを行うように制御する。
【００１８】
このような本発明に係るヘテロジニアス・マルチコア演算処理装置は、プログラムの読み込みの完了を検出した調停回路が、プログラムの読み込みを完了していないコアと共に当該読み込みを完了していないプログラムの読み込みを行うように、プログラムの読み込みを完了したコアを制御する。これにより、メモリに格納されている各コア用のプログラムを全て読み込み完了するまでの時間を大幅に短縮化することができ、、例えばシステムの起動時間の短縮化等を図ることができる。
【発明の効果】
【００１９】
本発明は、ヘテロジニアス・マルチコア演算処理装置が備える各コアを効率良く動作させて、メモリに記憶されている各コア用の全てのプログラムの読み込みを完了するまでの時間を短縮化することができる。このため、例えばメモリに記憶されているシステムの起動用のプログラムの読み込みを行う場合、該システムの起動用のプログラムの読み込みを短時間で完了することができ、システムを短時間で起動可能とすることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明を適用した実施例となる携帯電話機のブロック図である。
【図２】実施例となる携帯電話機に設けられている制御部のブロック図である。
【図３】実施例となる携帯電話機にＮＡＮＤメモリに格納されており、起動時にロードされる各種プログラム及びデータを示す該ＮＡＮＤメモリの模式図である。
【図４】実施例となる携帯電話機の起動時における制御部の起動処理動作の流れを示すタイムチャートである。
【図５】実施例となる携帯電話機の起動時における制御部の他の例の起動処理動作の流れを示すタイムチャートである。
【図６】従来のヘテロジニアス・デュアルコアＣＰＵの起動処理動作の流れを示すタイムチャートである。
【発明を実施するための形態】
【００２１】
本発明は、例えばＣＤＭＡ通信方式(CDMA：Code Division Multiple Access)に対応して無線通信を行う携帯電話機に適用することができる。
【００２２】
［携帯電話機の構成］
この本発明を適用した実施例となる携帯電話機は、図１に示すように無線基地局との間で上記ＣＤＭＡ通信方式に基づく音声通話、テレビ電話通話、電子メール、Ｗｅｂデータ（Web：World Wide Web）等の無線通信を行うアンテナ１及び通信回路２と、操作メニュー、電子メール、画像（静止画像及び動画像）等を表示するための表示部３と、所望のメニューの選択操作や所望の文字の入力操作等を行うための操作部４と、受話音声等を出力するためのスピーカ部５と、送話音声等を集音するためのマイクロホン部６と、所望の被写体の静止画像や動画像を撮像するためのカメラ部７と、発着信等を光でユーザに通知するための発光部８（LED：Light Emitting Diode）とを有している。
【００２３】
また、この携帯電話機は、当該携帯電話機の筐体を振動させて発着信等をユーザに通知するためのバイブレーションユニット９と、ＣＤＭＡ通信プログラムや各種アプリケーションプログラム等が記憶されたＮＡＮＤメモリ１０（NAND：NOT-AND）と、起動時等にＮＡＮＤメモリ１０から読み出された所定のプログラム等が展開されるＳＤＲＡＭ１１（Synchronous Dynamic Random Access Memory）と、このＳＤＲＡＭ１１に展開したプログラムに基づいて当該携帯電話機全体の動作を制御する制御部１２とを有している。
【００２４】
すなわち、この携帯電話機は、起動時に、ＮＡＮＤメモリ１０に記憶されている各種プログラムをＳＤＲＡＭ１１上に展開して実行するＮＡＮＤブート方式で動作するようになっている。
【００２５】
〔ＮＡＮＤメモリの構成〕
ＮＡＮＤメモリ１０は、図２に示すようにブートプログラムが格納されたブートプログラム格納領域２０と、プログラム格納領域２１と、ユーザデータ領域２２とを有している。
【００２６】
プログラム格納領域は、ＣＤＭＡ通信プログラムの他、例えば電子メールの作成や送受信を制御するための電子メール管理プログラム、カメラ部７の撮像制御を行うカメラ制御プログラム、ユーザのスケジュールが登録されたスケジュール帳の管理を行うためのスケジュール帳管理プログラム、電話帳の管理を行うための電話帳管理プログラム、音楽コンテンツの再生を行うための音楽プレーヤプログラム、所望のＷｅｂページの閲覧を行うためのＷｅｂブラウジングプログラム等の各種アプリケーションプログラム等が格納される領域となっている。
【００２７】
また、ユーザデータ領域は、当該携帯電話機のユーザのスケジュールが登録されるスケジュール帳、ユーザの知人や友人等のユーザ名、静止画像（顔写真等）、住所、電話番号、電子メールアドレス、生年月日等が登録された電話帳、音楽プレーヤプログラムに基づいて再生される音楽コンテンツ、カメラ制御プログラムのビューワ機能に基づいて再生される静止画像コンテンツ及び動画像コンテンツ、送受信された電子メールコンテンツ、電話及び電子メールの発着信履歴等が記憶される領域となっている。
【００２８】
この実施例の携帯電話機の場合、制御部１２は、以下に説明するようにヘテロジニアス・デュアルコアＣＰＵとなっており、一例として第１のコア及び第２のコアを有している。このＮＡＮＤメモリ１０に記憶されている各プログラムやデータは、例えばＣＤＭＡ通信プログラムは起動時に第１のコアが読み込みを行うプログラムであり、電子メール管理プログラムは起動時に第２のコアが読み込みを行うプログラムである等のように、第１のコア用のプログラム（或いはデータ）と、第２のコア用のプログラム（或いはデータ）とに、区分けされて該ＮＡＮＤメモリ１０に記憶されている。
【００２９】
なお、このプログラム等の区分けの仕方としては、例えば第１のコアが読み込みを行うプログラムには第１のコア用のフラグ等を付し、第２のコアが読み込みを行うプログラムには第２のコア用のフラグ等を付してＮＡＮＤメモリ１０に記憶することで、該各プログラム等の区分けを行ってもよい。或いは、ＮＡＮＤメモリ１０のアドレス０〜アドレス１０００に第１のコアが読み込みを行うプログラムを格納しておき、アドレス１００１〜アドレス２０００に第２のコアが読み込みを行うプログラムを格納しておく等のように、ＮＡＮＤメモリ１０に格納したプログラム等のアドレスで、第１のコアが読み込みを行うプログラム及び第２のコアが読み込みを行うプログラムの区分けを行ってもよい。
【００３０】
〔制御部の構成〕
制御部１２は、ヘテロジニアス・デュアルコアＣＰＵとなっており、図３に示すように第１のコア３１及び第２のコア３２を有している。また、この制御部１２は、相互に通信を行うことで、ＮＡＮＤメモリ１０に対する第１のコア３１のアクセスと第２のコア３２のアクセスとが干渉しないように、該各コア３１，３２のメモリアクセスの調停を図る第１のコア用の調停回路３３（Arbitrator）及び第２のコア用の調停回路３４を有している。
【００３１】
そして、この実施例の携帯電話機における制御部１２は、一方のコアが当該一方のコア用のプログラムの読み込みを全て完了した時点で、他方のコアが当該他方のコア用のプログラムの読み込みを継続していた場合、一方のコアが他方のコアと共に、該他方のコア用のプログラムの読み込みを行うように各調停回路３３，３４が機能することで（＝一方のコアが他方のコア用のプログラムの読み込みを手助けするように各調停回路３３，３４が機能することで）、当該携帯電話機のシステムの起動時に、ＮＡＮＤメモリ１０に格納されているプログラム等をＳＤＲＡＭ１１上に展開するロード時間の大幅な短縮化を図るようになっている。
【００３２】
なお、各調停回路３３，３４は、ハードウェアとして制御部１２に設けてもよいし、各コア３１，３２が実行するソフトウェアとして制御部１２に設けてもよい。また、各調停回路３３，３４は、図３には、物理的に分けられた２つのハードウェア或いは２つの機能ブロックとして図示しているが、１つのハードウェア或いは１つの機能ブロックとして制御部１２に設けてもよい。
【００３３】
［起動時におけるメモリアクセス制御］
この実施例における携帯電話機は、ＮＡＮＤメモリ１０に記憶されている各種プログラムをＳＤＲＡＭ１１上に展開して実行するＮＡＮＤブート方式で動作するようになっており、制御部１２の各調停回路３３，３４は、当該携帯電話機のメイン電源が投入された起動時において、図２に示す演算処理プログラムに基づいて、各コア３１，３２の動作を最適化することで、ＮＡＮＤメモリ１０に記憶されている各種プログラムをＳＤＲＡＭ１１上に高速に展開可能として、起動時間の短縮化を図っている。
【００３４】
図４に、図２に示す演算処理プログラムに基づく、当該携帯電話機の起動時における各コア３１，３２及び各調停回路３３，３４の動作を示すタイムチャートを示す。この図４からわかるように各コア３１，３２は、当該各コア３１，３２の周波数で動作することで、該各周波数に対応するタイミングで周期的にアクセス要求（Request）を各調停回路３３，３４に供給する。
【００３５】
例えば、図４に示すステップＳ１で第１のコア３１がアクセス要求を形成すると、このアクセス要求は、第１のコア用調停回路３３に供給される。第１のコア用調停回路３３は、第１のコア３１からアクセス要求が供給されると、アクセス停止要求（Block）を形成し、これをステップＳ２において第２のコア用調停回路３４に供給する。第２のコア用調停回路３４は、第１のコア用調停回路３３からアクセス許可がなされるまでの間、第２のコア３２のアクセス要求に基づくＮＡＮＤメモリ１０に対するアクセスを停止制御する（＝第２のコア３２のメモリアクセスをブロックする。）。
【００３６】
上記ステップＳ１でアクセス要求を行った第１のコア３１は、第２のコア３２のメモリアクセスがブロックされている間である、ステップＳ３においてＮＡＮＤメモリ１０にアクセスし、このＮＡＮＤメモリ１０から当該第１のコア３１用の全プログラムのうち、１回のアクセス処理で読み込みを行うデータ量分のプログラムを読み込み、これを図２に示すＳＤＲＡＭ１１に書き込み処理する（＝ＳＤＲＡＭ１１上に展開する）。そして、第１のコア３１の第１のコア用調停回路３３は、この第１のコア３１によるメモリアクセスが終了すると、ステップＳ４に示すように第２のコア３２の第２のコア用調停回路３４に対して、第２のコア３２のメモリアクセスを許可するアクセス許可を供給する。
【００３７】
次に、第２のコア用調停回路３４は、第１のコア用調停回路３３からアクセス許可が供給されると、このアクセス許可が供給される前に、ステップＳ５で第２のコア３２で形成されたアクセス要求に対応して、ステップＳ６において、第１のコア用調停回路３３に対してアクセス停止要求を行う。
【００３８】
第１のコア用調停回路３３は、第２のコア用調停回路３４からアクセス許可がなされるまでの間、第１のコア３１のアクセス要求に基づくＮＡＮＤメモリ１０に対するアクセスを停止制御する（＝第１のコア３１のメモリアクセスをブロックする。）。
【００３９】
上記ステップＳ５でアクセス要求を行った第２のコア３２は、第１のコア３１のメモリアクセスがブロックされている間である、ステップＳ７においてＮＡＮＤメモリ１０にアクセスし、このＮＡＮＤメモリ１０から当該第２のコア３２用の全プログラムのうち、１回のアクセス処理で読み込みを行うデータ量分のプログラムを読み込み、これを図２に示すＳＤＲＡＭ１１に書き込み処理する（＝ＳＤＲＡＭ１１上に展開する）。そして、第２のコア３２の第２のコア用調停回路３４は、この第２のコア３２によるメモリアクセスが終了すると、ステップＳ８に示すように第１のコア３１の第１のコア用調停回路３３に対して、第１のコア３１のメモリアクセスを許可するアクセス許可を供給する。
【００４０】
第１のコア用調停回路３３に対して、第２のコア用調停回路３４からのアクセス許可が供給されると、上記ステップＳ２〜ステップＳ４と同様に、第１のコア用調停回路３３は、ステップＳ１０〜ステップＳ１２に示すように第２のコア３２のメモリアクセスをブロックし（ステップＳ１０）、この間に、第１のコア３１がメモリアクセスを行って当該第１のコア３１用のプログラムの読み込みを行い（ステップＳ１１）、この読み込みが終了したタイミングで第２のコア３２の調停回路３４に対してアクセス許可を供給する（ステップＳ１２）。
【００４１】
このように、各調停回路３３，３４は、各コア３１，３２のメモリアクセスが干渉しないように、該各コア３１，３２のメモリアクセスの調停を行う。これにより、ＮＡＮＤメモリ１０に格納されている各プログラムのうち、第１のコア３１用のプログラムは第１のコア３１により読み込まれてＳＤＲＡＭ１１上に展開され、第２のコア３２用のプログラムは第２のコア３２により読み込まれてＳＤＲＡＭ１１上に展開されることとなる。
【００４２】
なお、ＳＤＲＡＭ１１上に展開される各プログラムは、例えば第１のコア３１用のプログラムは第１のコア３１用のプログラムであることを示すフラグを付してＳＤＲＡＭ１１上に展開され、また、第２のコア３２用のプログラムは第２のコア３２用のプログラムであることを示すフラグを付してＳＤＲＡＭ１１上に展開される。
【００４３】
或いは、ＳＤＲＡＭ１１上の記憶領域を、第１のコア３１用のプログラムの展開領域、及び第２のコア３２用のプログラムの展開領域に、論理的或いは物理的に分割しておき、第１のコア３１用のプログラムは上記第１のコア３１用のプログラムの展開領域に展開し、第２のコア３２用のプログラムは上記第２のコア３２用のプログラムの展開領域に展開してもよい。
【００４４】
〔一方のコアが全プログラムの読み込みを完了した後における他方のコアの動作〕
次に、上述のように各コア３１，３２は、当該各コアの周波数に対応してそれぞれアクセス要求を行い、該各コア３１，３２用のプログラムの読み込みを行うのであるが、いずれか一方のコアが他方のコアよりも高周波で動作していたり、或いはいずれか一方のコア用のプログラムが他方のコア用のプログラムよりもデータ量が少ない場合等に、いずれか一方のコア用のプログラムの読み込みが、他方のコア用のプログラムの読み込みよりも早く完了してしまう場合がある。
【００４５】
すなわち、例えば第２のコア３２が第１のコア３１よりも高周波数で駆動されており、第１のコア用のプログラムの全データ量が第２のコア用のプログラムの全データ量よりも多いデータ量である場合、第１のコア３１による第１のコア３１用の全プログラムの読み込みが完了するよりも早く、第２のコア３２による第２のコア３２用の全プログラムの読み込みが完了する。
【００４６】
当該実施例の携帯電話機の場合、制御部１２の各調停回路３３，３４は、この起動時において、他方のコアよりも早く、自分が担うコアによるプログラムの読み込みが完了した場合、プログラムの読み込みが完了していない側のコアのプログラムの読み込みを手助けするように、自分が担うコアを制御するようになっている。
【００４７】
すなわち、起動時において、第１のコア３１用のプログラムよりも早く、第２のコア３２用のプログラムの読み込みが完了した場合、第２の調停回路３３は、第１のコア３１と共に第１のコア３１用のプログラムの読み込みを行うように第２のコア３２を制御するようになっている。
【００４８】
具体的には、図４に示すステップＳ７において第２のコア３２がＮＡＮＤメモリ１０からプログラムの読み込みを行うことで、該ＮＡＮＤメモリ１０に格納されている全ての第２のコア３２用のプログラムがＳＤＲＡＭ１１上に展開され（＝第２のコア３２用の全てのプログラムの読み込みが完了し）、なおかつ、この時点で第１のコア３１がＮＡＮＤメモリ１０からのプログラムの読み込みを継続している場合、第２のコア３２は、引き続き当該第２のコア３２の周波数の周期で、第２のコア用調停回路３４に対してアクセス要求を供給する。このアクセス要求が、図４のタイムチャートのステップＳ１３でなされたとすると、第２のコア用調停回路３４は、上記ステップＳ１２で第１のコア用調停回路３３からアクセス許可が供給されたタイミングで、上記ステップＳ１３で第２のコア３２から供給されたアクセス要求に対応して、ステップＳ１４に示すように第１のコア用調停回路３３にアクセス停止要求を供給する。これにより、上述のように第１のコア３１のメモリアクセスがブロックされることとなる。
【００４９】
第２のコア３２は、この第１のコア３１のメモリアクセスがブロックされている間に、ステップＳ１５に示すようにＮＡＮＤメモリ１０にアクセスし、第１のコア３１用のプログラムの読み込みを行い、この読み込んだ第１のコア３１用のプログラムをＳＤＲＡＭ１１上に展開する。そして、第２のコア３２用の第２のコア用調停回路３４は、上記第１のコア３１用のプログラムの展開後に、ステップＳ１６に示すように第１のコア用調停回路３３に対してアクセス許可を供給する。
【００５０】
第１のコア用調停回路３３は、第２のコア用調停回路３４からアクセス許可が供給されると、ステップＳ１８に示すように第２のコア用調停回路３４に対してアクセス停止要求を供給し、第２のコア３２のメモリアクセスがブロックされている間に、ステップＳ１７で形成された第１のコア３１のアクセス要求に対応して、ステップＳ１９でＮＡＮＤメモリ１０から第１のコア３１用のプログラムの読み込みを行いＳＤＲＡＭ１１上に展開し、ステップＳ２０において第２のコア用調停回路３４にアクセス許可を供給する。
【００５１】
第２のコア用調停回路３４は、第１のコア用調停回路３３からアクセス許可が供給されると、ステップＳ２１で第２のコア３２で形成されたアクセス要求に対応して、上記ステップＳ１４〜ステップＳ１６で説明したように、第１のコア３１のメモリアクセスをブロックし、この間に第１のコア３１用のプログラムをＮＡＮＤメモリ１０から読み込んでＳＤＲＡＭ１１上に展開し、第１のコア用調停回路３３に対してアクセス許可を供給する。
【００５２】
第２のコア用調停回路３４は、ＮＡＮＤメモリ１０に格納されている第１のコア３１用の全プログラムの読み込みが完了するまでの間、第１のコア３１と共に該第１のコア３１用のプログラムの読み込みを行うように第２のコア３２を制御する。
【００５３】
このように、当該実施の形態の携帯電話機の制御部１２は、第２のコア３２用の全プログラムの読み込みが完了した後は、第１のコア３１及び第２のコア３２が共同して、第１のコア３１用のプログラムの読み込みを行う。これにより、第２のコア３２が当該第２のコア３２用のプログラムの読み込みを完了した後でも、該第２のコア３２を引き続き動作させて第１のコア３１用のプログラムの読み込みを手助けすることができる。このため、ＮＡＮＤメモリ１０に格納されている第１のコア３１用のプログラム、及び第２のコア３２用のプログラムを全てＳＤＲＡＭ１１上に展開するまでの時間を大幅に短縮化することができ、当該携帯電話機の起動時間の高速化を図ることができる。
【００５４】
なお、当該携帯電話機の制御部１２は、起動時にＳＤＲＡＭ１１上に展開された各コア３１，３２用のプログラムに基づいて、ＣＤＭＡ通信方式に基づく通信制御等を行うこととなる。
【００５５】
〔一方のコアが全プログラムの読み込みを完了した後における他方のコアの他の動作〕
次に、図４は、各コア３１，３２の周波数が同程度であるため、該各コア３１，３２のＮＡＮＤメモリ１０に対するメモリアクセスが交互になる例であったが、例えば第２のコア３２が第１のコア３１よりも高周波で動作する場合、第１のコア３１がメモリアクセスをしてから次にメモリアクセスを行う間に、第２のコア３２が、例えば２回、メモリアクセスを行うことが可能となる場合がある。図５のタイムチャートは、このように一方のコアのメモリアクセスの間に他方のコアが複数回メモリアクセスを行う場合の例を示している。
【００５６】
具体的には、ＮＡＮＤメモリ１０に記憶されている第２のコア３２用の全プログラムの読み込みが完了し、図５のタイムチャートのステップＳ３１〜ステップＳ３４に示すように第１のコア３１による当該第１のコア３１用のプログラムの読み込みが継続している場合、第２のコア３２は、引き続き、アクセス要求を形成し、これをステップＳ３５において第２のコア用調停回路３４に供給する。
【００５７】
第２のコア用調停回路３４は、第２のコア３２から、このアクセス要求がなされると、ステップＳ３４で上記第１のコア用調停回路３３からアクセス許可が供給された後のステップＳ３６において、第１のコア用調停回路３３に対してアクセス停止要求を行う。これにより、第１のコア３１のメモリアクセスはブロックされることとなる。
【００５８】
第２のコア３２は、第１のコア３１のメモリアクセスがブロックされている間に、ステップＳ３７においてＮＡＮＤメモリ１０から第１のコア３１用のプログラムを読み込み、これをＳＤＲＡＭ１１に展開する。第２のコア用調停回路３４は、この第２のコア３２による第１のコア３１用のプログラムの読み込みが完了すると、ステップＳ３８において、第１のコア用調停回路３３に対してアクセス許可を供給する。
【００５９】
次に、第２のコア用調停回路３４から第１のコア用調停回路３３に対してアクセス許可が供給された際に、第１のコア３１からアクセス要求がなされていた場合、第１のコア用調停回路３３は、この第１のコア３１からアクセス要求に対応して、第２のコア用調停回路３４に対してアクセス停止要求を行うのであるが、この図５に示す例の場合、第２のコア用調停回路３４から第１のコア用調停回路３３に対してアクセス許可を供給しても、第１のコア用調停回路３３から第２のコア用調停回路３４に対してアクセス停止要求がなされていない。
【００６０】
また、ステップＳ３９に示すように、第１のコア用調停回路３３から第２のコア用調停回路３４に対してアクセス停止要求がなされることなく、第２のコア３２からのアクセス要求がなされている。このため、第２のコア用調停回路３４は、連続して第２のコア３２からのアクセス要求を処理すべく、ステップＳ４０において、第１のコア用調停回路３３に対してアクセス停止要求を行う。これにより、第１のコア３１のメモリアクセスはブロックされることとなる。
【００６１】
第２のコア３２は、第１のコア３１のメモリアクセスがブロックされている間に、ステップＳ４１においてＮＡＮＤメモリ１０から第１のコア３１用のプログラムを読み込み、これをＳＤＲＡＭ１１に展開する。第２のコア用調停回路３４は、この第２のコア３２による第１のコア３１用のプログラムの読み込みが完了すると、ステップＳ４２において、第１のコア用調停回路３３に対してアクセス許可を供給する。
【００６２】
この図５に示す例の場合、第２のコア３２が２回目の上記プログラムの読み込みを終了するまでの間に、ステップＳ４３に示すように第１のコア３１からのアクセス要求がなされている。このため、第１のコア用調停回路３３は、第２のコア用調停回路３４からアクセス許可がなされたタイミングで、ステップＳ４４に示すように第２のコア用調停回路３４に対してアクセス停止要求を行う。そして、第１のコア３１は、このアクセス停止要求により第２のコア３２のメモリアクセスがブロックされている間に、ステップＳ４５において、ＮＡＮＤメモリ１０から第１のコア３１用のプログラムの読み込みを行い、第１のコア用調停回路３３は、このプログラムの読み込みが終了したタイミングで、ステップＳ４６に示すように第２のコア用調停回路３４に対してアクセス許可を行う。
【００６３】
以後、ステップＳ３５〜ステップＳ４２で説明したように、第１のコア３１が１回、プログラムの読み込みを行う間に、第２のコア３２が２回、プログラムの読み込みを行う動作が、ＮＡＮＤメモリ１０に格納されている第１のコア３１用の全プログラムの読み込みが完了するまでの間、繰り返し実行されることとなる。
【００６４】
この図５に示す例の場合、第１のコア３１が１回、プログラムの読み込みを行う間に、第２のコア３２が２回、プログラムの読み込みを行うこととなるため、図４に示した例の場合よりも、高速でＮＡＮＤメモリ１０に格納されている各コア用のプログラムの読み込みを完了させることができる。このため、当該携帯電話機の起動時間のさらなる高速化を図ることができる。
【００６５】
［実施例の効果］
以上の説明から明らかなように、この実施例の携帯電話機は、制御部１２が第１のコア３１及び第２のコア３２を備えたヘテロジニアス・デュアルコアＣＰＵとなっており、当該携帯電話機のメイン電源が投入された起動時において、第１のコア用調停回路３３及び第２のコア用調停回路３４が相互に通信を行うことで、各コア３１，３２のメモリアクセスが干渉しないように各コア３１，３２を制御しながら、ＮＡＮＤメモリ１０に格納されている第１のコア用のプログラム、及び第２のコア用のプログラムを該各コア３１，３２がそれぞれ読み込み、ＳＤＲＡＭ１１上に展開する。そして、いずれか一方のコア用の全プログラムの読み込みが完了し、なおかつ、他方のコア用のプログラムの読み込みが継続して行われている場合、プログラムの読み込みを完了したコアが、プログラムの読み込みを完了していないコアと共に、該読み込みが完了していないプログラムの読み込みを行う。
【００６６】
これにより、一方のコアが当該一方のコア用のプログラムの読み込みを完了した後でも、該一方のコアを引き続き動作させて他方のコア用のプログラムの読み込みを手助けすることができる。このため、ＮＡＮＤメモリ１０に格納されている各コア用のプログラムを全てＳＤＲＡＭ１１上に展開するまでの時間を大幅に短縮化することができ（＝起動時におけるロード時間を大幅に短縮することができ）、当該携帯電話機の起動時間の高速化を図ることができる。
【００６７】
［変形例］
上述の実施例の説明では、制御部１２はヘテロジニアス・デュアルコアＣＰＵであることとしたが、制御部１２は、３つ以上のコアと、該各コア用の調停回路を備える構成としてもよい。この場合、プログラムの読み込みの完了を検出した調停回路は、プログラムの読み込みを完了したコアが、プログラムの読み込みを完了していないコアと共に当該読み込みを完了していないプログラムの読み込みを行うように、上記プログラムの読み込みを完了したコアを制御する。これにより、上述と同様にＮＡＮＤメモリ１０に格納されている各コア用のプログラムを全てＳＤＲＡＭ１１上に展開するまでの時間を大幅に短縮化することができ、当該携帯電話機の起動時間の高速化を図ることができる。
【００６８】
また、上述の実施例の説明では、本発明を携帯電話機に適用することとしたが、本発明を、ＰＨＳ電話機（PHS：Personal Handyphone System）、ＰＤＡ装置（PDA：Personal Digital Assistant）、携帯ゲーム機、デジタルカメラ装置、ノート型のパーソナルコンピュータ装置等の他の機器に適用してもよい。いずれの場合も上述と同様に、起動時間の短縮化を図ることができる等の効果を得ることができる。
【００６９】
最後に、上述の実施例は、本発明の一例である。このため、本発明は上述の実施例に限定されることはなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論であることを付け加えておく。
【符号の説明】
【００７０】
１  携帯電話機のアンテナ、２  通信回路、３  表示部、４  操作部、５  スピーカ部、６  マイクロホン部、７  カメラ部、８  発光部（ＬＥＤ）、９  バイブレーションユニット、１０  ＮＡＮＤメモリ、１１  ＳＤＲＡＭ、１２  制御部（ヘテロジニアス・デュアルコアＣＰＵ）、３１  携帯電話機の制御部の第１のコア、３２  携帯電話機の制御部の第２のコア、３３  携帯電話機の制御部の第１のコア用調停回路、３４  携帯電話機の制御部の第２のコア用調停回路
【図１】
2010191548.tif 000003
【図２】
2010191548.tif 000004
【図３】
2010191548.tif 000005
【図４】
2010191548.tif 000006
【図５】
2010191548.tif 000007
【図６】
2010191548.tif 000008