JP2010191548A - ヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラム、及び携帯端末装置 - Google Patents

ヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラム、及び携帯端末装置 Download PDF

Info

Publication number
JP2010191548A
JP2010191548A JP2009033274A JP2009033274A JP2010191548A JP 2010191548 A JP2010191548 A JP 2010191548A JP 2009033274 A JP2009033274 A JP 2009033274A JP 2009033274 A JP2009033274 A JP 2009033274A JP 2010191548 A JP2010191548 A JP 2010191548A
Authority
JP
Japan
Prior art keywords
core
program
read
programs
arbitration circuit
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.)
Withdrawn
Application number
JP2009033274A
Other languages
English (en)
Inventor
Toshinao Sanbonmatsu
利尚 三本松
Hidekazu Onishi
英一 大西
Shingo Nishikata
真吾 西方
Masaya Takahashi
雅也 高橋
Kenji Asa
健治 麻
Hiroshi Uchiyama
弘 内山
Yusuke Inoue
悠介 井上
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.)
Sony Corp
Original Assignee
Sony Ericsson Mobile Communications Japan Inc
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 Sony Ericsson Mobile Communications Japan Inc filed Critical Sony Ericsson Mobile Communications Japan Inc
Priority to JP2009033274A priority Critical patent/JP2010191548A/ja
Publication of JP2010191548A publication Critical patent/JP2010191548A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 ヘテロジニアス・マルチコアCPUが備える各コアを効率良く動作させて、メモリに記憶されている各コア用の全てのプログラムの読み込み完了までの時間を短縮化する。
【解決手段】 第1,第2のコア31,32と、該各コア31,32がNANDメモリ10に記憶されている各コア31,32用のプログラムの読み込みをそれぞれ行う際に、該各コア31,32のメモリアクセスが干渉しないように、該各コア31,32のメモリアクセスの調停を図る第1,第2のコア用調停回路33,34とを1チップ化したヘテロジニアス・マルチコア構成を有し、例えば第2のコア32が当該第2のコア用の全プログラムの読み込みを完了した際に、第1のコア31が当該第1のコア用のプログラムの読み込みを継続していた場合、第2のコア用調停回路34は、上記第1のコア31と共に該第1のコア用のプログラムの読み込みを行うように上記第2のコア32を制御する。
【選択図】 図4

Description

本発明は、1つのチップに異なる種類のアーキテクチャのコア(core)が複数設けられたヘテロジニアス・マルチコアCPU(CPU :Central Processing Unit)に適用して好適なヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラムに関する。また、例えば携帯電話機、PHS電話機(PHS:Personal Handyphone System)、PDA装置(PDA:Personal Digital Assistant)、携帯ゲーム機、ノート型のパーソナルコンピュータ装置等に適用して好適な、上記ヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、或いはヘテロジニアス・マルチコア演算処理装置の演算処理プログラムを備えた携帯端末装置に関する。
特には、各コアが干渉しないようにメモリアクセスを行うことで、該各コアがメモリに記憶されている該各コア用データの読み込みをそれぞれ行い、一方のコアが当該一方のコア用データの読み込みを完了し、他方のコアが該他方のコア用データの読み込みを継続している場合、該一方のコアが他方のコアと共に該他方のコア用データの読み込みを行うことで(=一方のコアが他方のコアのデータの読み込みを手助けすることで)、メモリに記憶されている各コア用データの読み込みを高速で完了可能としたヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラム、及び携帯端末装置に関する。
今日において、CPUコア(CPUの半導体部分におけるキャッシュメモリやインターフェイス等の周辺回路を除く演算回路の部分。以下、単にコアという。)を複数の備えたマルチコアCPUとして、1チップ内に同じ種類のアーキテクチャのCPUコアを複数備えた「ホモジニアス・マルチコアCPU」、及び1チップ内に異なる種類のアーキテクチャのCPUコアをそれぞれ備えた「ヘテロジニアス・マルチコアCPU」が知られている。
ヘテロジニアス・マルチコアCPUは、シングルスレッド性能を維持しつつ、マルチスレッド性能を大幅に高めることができ、また、各CPUコアを最適化することで、ホモジニアス・マルチコアCPUでは実現困難な高効率処理が実現可能となっている。このため、このヘテロジニアス・マルチコアCPUは、今後、マルチコアCPUの主流となることが予測される。
このヘテロジニアス・マルチコアCPUは、例えば第1のコア、第2のコア、第1のコア用の調停回路(Arbitrator)、及び第2のコア用の調停回路を備えており、各コアがメモリに対してアクセスする際に、各調停回路が通信を行うことで、該各コアからメモリに対するアクセスが干渉しないように調停するようになっている。
具体的には、第1のコアは当該第1のコアの周波数で第1のコア用の調停回路にアクセス要求(Request)を行い、第2のコアは当該第2のコアの周波数で第2のコア用の調停回路にアクセス要求を行う。第1のコア用の調停回路は、第1のコアからアクセス要求がなされると、第2のコア用の調停回路に対して、第2のコアからのアクセス要求をブロックするブロック要求を行う。第2のコア用の調停回路は、第1のコア用の調停回路から上記ブロック要求がなされると、該第1のコア用の調停回路から以下に説明するリクエスト許可がなされるまでの間、第2のコアからのアクセス要求をブロックする。
第1のコアは、このように第2のコア用の調停回路で第2のコアからのアクセス要求がブロックされている間に、メモリに対してアクセスを行い、該メモリに記憶されている当該第1のコア用のプログラムのうち、1回のアクセスで読み込むデータ量分のプログラムの読み込み(Read)を行う。第1のコア用の調停回路は、第1のコアが上記1回のアクセスで読み込むデータ量分のプログラムの読み込みが完了したタイミングで、第2のコア用の調停回路に対して、リクエスト許可(allow)を行う。
第2のコア用の調停回路は、第1のコア用の調停回路からリクエスト許可がなされると、このリクエスト許可がなされてから、第1のコア用の調停回路から、再度、上記ブロック要求がなされるまでの間に、第2のコアからアクセス要求がなされた場合、第1のコア用の調停回路に対して、第1のコアからのアクセス要求をブロックするブロック要求を行う。第1のコア用の調停回路は、第2のコア用の調停回路から上記ブロック要求がなされると、該第2のコア用の調停回路からリクエスト許可がなされるまでの間、第1のコアからのアクセス要求をブロックする。
第2のコアは、このように第1のコア用の調停回路で第1のコアからのアクセス要求がブロックされている間に、メモリに対してアクセスを行い、該メモリに記憶されている当該第2のコア用のプログラムのうち、1回のアクセスで読み込むデータ量分のプログラムの読み込み(Read)を行う。第2のコア用の調停回路は、第2のコアが上記1回のアクセスで読み込むデータ量分のプログラムの読み込みが完了したタイミングで、第1のコア用の調停回路に対して、リクエスト許可を行う。
第1のコア用の調停回路は、第2のコア用の調停回路からリクエスト許可がなされることで、上述のように第1のコアからのアクセス要求を処理することが可能となる。各調停回路は、このように、自分が担当するコアがメモリに対してアクセスを行う場合は、他方のコアのアクセスをブロックし、上記1回のアクセスで読み込むデータ量分のプログラムの読み込みが完了したタイミングで、他方のコア用の調停回路に対して、該他方のコアのアクセス要求を許可するリクエスト許可を行う動作を、各コアの周波数に基づいて繰り返し実行する。このような各コア用の調停回路の調停により、各コアは干渉することなく、メモリに対してアクセスして、該各コア用のプログラムの読み込みをそれぞれ行うようになっている。
なお、このようなヘテロジニアス・マルチコアCPUに関する先行技術文献としては、特開2007−328415号の公開特許公報(特許文献1)に、「ヘテロジニアス・マルチプロセッサシステムの制御方法」や、特開2007−328416号の公開特許公報(特許文献2)に、「ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ」が開示されている。
特開2007−328415号公報 特開2007−328416号公報
しかし、従来のヘテロジニアス・マルチコアCPUは、メモリに記憶されている第1のコア用のプログラム及び第2のコア用のプログラムのうち、第1のコア用のプログラムは第1のコアが読み込みを行い、第2のコア用のプログラムは第2のコアが読み込みを行う等のように、各コアは自分用のプログラムのみ、読み込みを行うようになっていた。このため、第1のコアが当該第1のコア用の全プログラムの読み込みを完了すると共に、第2のコアが当該第2のコア用の全プログラムの読み込みを完了するまでに長時間を要する問題があった(=メモリに記憶されている各コア用のプログラムが、それぞれ各コアにより全て読み込まれるまでに長時間を要する問題があった。)。
この問題を具体的に説明すると、従来のヘテロジニアス・マルチコアCPUは、上述のように各コアは自分用のプログラムのみ、読み込みを行うようになっている。このため、例えば第2のコアが当該第2のコア用の全てのプログラムの読み込みを完了すると、第2のコアは、図6に示すように第1のコアが当該第1のコア用の全てのプログラムの読み込みを完了するまでの間、待機状態となる。このように、いずれか一方のコアのみが動作し、他方のコアが動作しない時間が発生すると、メモリに記憶されている各コア用のプログラムが、それぞれ各コアにより全て読み込まれるまでに長時間を要してしまう。
また、このように第2のコアが待機状態となり、第1のコアのみがメモリに対してアクセスを行っている場合においても、該第1のコアのアクセス要求は、当該第1のコアの周波数に対応する周期で第1のコア用の調停回路に供給されることとなる。このため、図6に示すように第1のコアがアクセス要求を行うことでプログラムの読み込みを行い、該第1のコアが次にアクセス要求を行うまでの間に、当該第1のコアまでもが待機状態となる。すなわち、この間は、第1のコア及び第2のコアが共に動作しない時間となる。そして、各コアが共に動作しない時間が発生すると、メモリに記憶されている各コア用のプログラムが、それぞれ各コアにより全て読み込まれるまでに要する時間が、さらに長時間化する問題を生ずる。
従来のヘテロジニアス・マルチコアCPUは、このようにメモリに記憶されている各コア用のプログラムが、それぞれ各コアにより全て読み込まれるまでに長時間を要していたため、例えばメモリに記憶されているプログラムが起動プログラムであった場合、システムを起動させるまでに長時間を要する問題があった。
本発明は、上述の課題に鑑みてなされたものであり、ヘテロジニアス・マルチコアCPUが備える各コアを効率良く動作させて、メモリに記憶されている各コア用の全てのプログラムの読み込みを完了するまでの時間の短縮化を図り、例えばシステムの起動時間の短縮化等を図ることができるヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラム、及び携帯端末装置の提供を目的とする。
本発明に係るヘテロジニアス・マルチコア演算処理装置は、少なくとも複数の演算処理部(コア)と、上記各コアがメモリに記憶されている各コア用のプログラムの読み込みをそれぞれ行う際に、該各コアのメモリアクセスが干渉しないように、該各コアのメモリアクセスの調停を図る一つ或いは複数の調停回路とを1チップ化したヘテロジニアス・マルチコア構成を有し、上述の課題を解決するために、
上記調停回路が、全プログラムの読み込みを完了したコアを検出し、かつ、他のコアが当該他のコア用のプログラムの読み込みを継続している場合、上記全プログラムの読み込みを完了したコアを、上記他のコアと共に、該他のコア用のプログラムの読み込みを行うように制御する。
このような本発明に係るヘテロジニアス・マルチコア演算処理装置は、プログラムの読み込みの完了を検出した調停回路が、プログラムの読み込みを完了していないコアと共に当該読み込みを完了していないプログラムの読み込みを行うように、プログラムの読み込みを完了したコアを制御する。これにより、メモリに格納されている各コア用のプログラムを全て読み込み完了するまでの時間を大幅に短縮化することができ、、例えばシステムの起動時間の短縮化等を図ることができる。
本発明は、ヘテロジニアス・マルチコア演算処理装置が備える各コアを効率良く動作させて、メモリに記憶されている各コア用の全てのプログラムの読み込みを完了するまでの時間を短縮化することができる。このため、例えばメモリに記憶されているシステムの起動用のプログラムの読み込みを行う場合、該システムの起動用のプログラムの読み込みを短時間で完了することができ、システムを短時間で起動可能とすることができる。
本発明を適用した実施例となる携帯電話機のブロック図である。 実施例となる携帯電話機に設けられている制御部のブロック図である。 実施例となる携帯電話機にNANDメモリに格納されており、起動時にロードされる各種プログラム及びデータを示す該NANDメモリの模式図である。 実施例となる携帯電話機の起動時における制御部の起動処理動作の流れを示すタイムチャートである。 実施例となる携帯電話機の起動時における制御部の他の例の起動処理動作の流れを示すタイムチャートである。 従来のヘテロジニアス・デュアルコアCPUの起動処理動作の流れを示すタイムチャートである。
本発明は、例えばCDMA通信方式(CDMA:Code Division Multiple Access)に対応して無線通信を行う携帯電話機に適用することができる。
[携帯電話機の構成]
この本発明を適用した実施例となる携帯電話機は、図1に示すように無線基地局との間で上記CDMA通信方式に基づく音声通話、テレビ電話通話、電子メール、Webデータ(Web:World Wide Web)等の無線通信を行うアンテナ1及び通信回路2と、操作メニュー、電子メール、画像(静止画像及び動画像)等を表示するための表示部3と、所望のメニューの選択操作や所望の文字の入力操作等を行うための操作部4と、受話音声等を出力するためのスピーカ部5と、送話音声等を集音するためのマイクロホン部6と、所望の被写体の静止画像や動画像を撮像するためのカメラ部7と、発着信等を光でユーザに通知するための発光部8(LED:Light Emitting Diode)とを有している。
また、この携帯電話機は、当該携帯電話機の筐体を振動させて発着信等をユーザに通知するためのバイブレーションユニット9と、CDMA通信プログラムや各種アプリケーションプログラム等が記憶されたNANDメモリ10(NAND:NOT-AND)と、起動時等にNANDメモリ10から読み出された所定のプログラム等が展開されるSDRAM11(Synchronous Dynamic Random Access Memory)と、このSDRAM11に展開したプログラムに基づいて当該携帯電話機全体の動作を制御する制御部12とを有している。
すなわち、この携帯電話機は、起動時に、NANDメモリ10に記憶されている各種プログラムをSDRAM11上に展開して実行するNANDブート方式で動作するようになっている。
〔NANDメモリの構成〕
NANDメモリ10は、図2に示すようにブートプログラムが格納されたブートプログラム格納領域20と、プログラム格納領域21と、ユーザデータ領域22とを有している。
プログラム格納領域は、CDMA通信プログラムの他、例えば電子メールの作成や送受信を制御するための電子メール管理プログラム、カメラ部7の撮像制御を行うカメラ制御プログラム、ユーザのスケジュールが登録されたスケジュール帳の管理を行うためのスケジュール帳管理プログラム、電話帳の管理を行うための電話帳管理プログラム、音楽コンテンツの再生を行うための音楽プレーヤプログラム、所望のWebページの閲覧を行うためのWebブラウジングプログラム等の各種アプリケーションプログラム等が格納される領域となっている。
また、ユーザデータ領域は、当該携帯電話機のユーザのスケジュールが登録されるスケジュール帳、ユーザの知人や友人等のユーザ名、静止画像(顔写真等)、住所、電話番号、電子メールアドレス、生年月日等が登録された電話帳、音楽プレーヤプログラムに基づいて再生される音楽コンテンツ、カメラ制御プログラムのビューワ機能に基づいて再生される静止画像コンテンツ及び動画像コンテンツ、送受信された電子メールコンテンツ、電話及び電子メールの発着信履歴等が記憶される領域となっている。
この実施例の携帯電話機の場合、制御部12は、以下に説明するようにヘテロジニアス・デュアルコアCPUとなっており、一例として第1のコア及び第2のコアを有している。このNANDメモリ10に記憶されている各プログラムやデータは、例えばCDMA通信プログラムは起動時に第1のコアが読み込みを行うプログラムであり、電子メール管理プログラムは起動時に第2のコアが読み込みを行うプログラムである等のように、第1のコア用のプログラム(或いはデータ)と、第2のコア用のプログラム(或いはデータ)とに、区分けされて該NANDメモリ10に記憶されている。
なお、このプログラム等の区分けの仕方としては、例えば第1のコアが読み込みを行うプログラムには第1のコア用のフラグ等を付し、第2のコアが読み込みを行うプログラムには第2のコア用のフラグ等を付してNANDメモリ10に記憶することで、該各プログラム等の区分けを行ってもよい。或いは、NANDメモリ10のアドレス0〜アドレス1000に第1のコアが読み込みを行うプログラムを格納しておき、アドレス1001〜アドレス2000に第2のコアが読み込みを行うプログラムを格納しておく等のように、NANDメモリ10に格納したプログラム等のアドレスで、第1のコアが読み込みを行うプログラム及び第2のコアが読み込みを行うプログラムの区分けを行ってもよい。
〔制御部の構成〕
制御部12は、ヘテロジニアス・デュアルコアCPUとなっており、図3に示すように第1のコア31及び第2のコア32を有している。また、この制御部12は、相互に通信を行うことで、NANDメモリ10に対する第1のコア31のアクセスと第2のコア32のアクセスとが干渉しないように、該各コア31,32のメモリアクセスの調停を図る第1のコア用の調停回路33(Arbitrator)及び第2のコア用の調停回路34を有している。
そして、この実施例の携帯電話機における制御部12は、一方のコアが当該一方のコア用のプログラムの読み込みを全て完了した時点で、他方のコアが当該他方のコア用のプログラムの読み込みを継続していた場合、一方のコアが他方のコアと共に、該他方のコア用のプログラムの読み込みを行うように各調停回路33,34が機能することで(=一方のコアが他方のコア用のプログラムの読み込みを手助けするように各調停回路33,34が機能することで)、当該携帯電話機のシステムの起動時に、NANDメモリ10に格納されているプログラム等をSDRAM11上に展開するロード時間の大幅な短縮化を図るようになっている。
なお、各調停回路33,34は、ハードウェアとして制御部12に設けてもよいし、各コア31,32が実行するソフトウェアとして制御部12に設けてもよい。また、各調停回路33,34は、図3には、物理的に分けられた2つのハードウェア或いは2つの機能ブロックとして図示しているが、1つのハードウェア或いは1つの機能ブロックとして制御部12に設けてもよい。
[起動時におけるメモリアクセス制御]
この実施例における携帯電話機は、NANDメモリ10に記憶されている各種プログラムをSDRAM11上に展開して実行するNANDブート方式で動作するようになっており、制御部12の各調停回路33,34は、当該携帯電話機のメイン電源が投入された起動時において、図2に示す演算処理プログラムに基づいて、各コア31,32の動作を最適化することで、NANDメモリ10に記憶されている各種プログラムをSDRAM11上に高速に展開可能として、起動時間の短縮化を図っている。
図4に、図2に示す演算処理プログラムに基づく、当該携帯電話機の起動時における各コア31,32及び各調停回路33,34の動作を示すタイムチャートを示す。この図4からわかるように各コア31,32は、当該各コア31,32の周波数で動作することで、該各周波数に対応するタイミングで周期的にアクセス要求(Request)を各調停回路33,34に供給する。
例えば、図4に示すステップS1で第1のコア31がアクセス要求を形成すると、このアクセス要求は、第1のコア用調停回路33に供給される。第1のコア用調停回路33は、第1のコア31からアクセス要求が供給されると、アクセス停止要求(Block)を形成し、これをステップS2において第2のコア用調停回路34に供給する。第2のコア用調停回路34は、第1のコア用調停回路33からアクセス許可がなされるまでの間、第2のコア32のアクセス要求に基づくNANDメモリ10に対するアクセスを停止制御する(=第2のコア32のメモリアクセスをブロックする。)。
上記ステップS1でアクセス要求を行った第1のコア31は、第2のコア32のメモリアクセスがブロックされている間である、ステップS3においてNANDメモリ10にアクセスし、このNANDメモリ10から当該第1のコア31用の全プログラムのうち、1回のアクセス処理で読み込みを行うデータ量分のプログラムを読み込み、これを図2に示すSDRAM11に書き込み処理する(=SDRAM11上に展開する)。そして、第1のコア31の第1のコア用調停回路33は、この第1のコア31によるメモリアクセスが終了すると、ステップS4に示すように第2のコア32の第2のコア用調停回路34に対して、第2のコア32のメモリアクセスを許可するアクセス許可を供給する。
次に、第2のコア用調停回路34は、第1のコア用調停回路33からアクセス許可が供給されると、このアクセス許可が供給される前に、ステップS5で第2のコア32で形成されたアクセス要求に対応して、ステップS6において、第1のコア用調停回路33に対してアクセス停止要求を行う。
第1のコア用調停回路33は、第2のコア用調停回路34からアクセス許可がなされるまでの間、第1のコア31のアクセス要求に基づくNANDメモリ10に対するアクセスを停止制御する(=第1のコア31のメモリアクセスをブロックする。)。
上記ステップS5でアクセス要求を行った第2のコア32は、第1のコア31のメモリアクセスがブロックされている間である、ステップS7においてNANDメモリ10にアクセスし、このNANDメモリ10から当該第2のコア32用の全プログラムのうち、1回のアクセス処理で読み込みを行うデータ量分のプログラムを読み込み、これを図2に示すSDRAM11に書き込み処理する(=SDRAM11上に展開する)。そして、第2のコア32の第2のコア用調停回路34は、この第2のコア32によるメモリアクセスが終了すると、ステップS8に示すように第1のコア31の第1のコア用調停回路33に対して、第1のコア31のメモリアクセスを許可するアクセス許可を供給する。
第1のコア用調停回路33に対して、第2のコア用調停回路34からのアクセス許可が供給されると、上記ステップS2〜ステップS4と同様に、第1のコア用調停回路33は、ステップS10〜ステップS12に示すように第2のコア32のメモリアクセスをブロックし(ステップS10)、この間に、第1のコア31がメモリアクセスを行って当該第1のコア31用のプログラムの読み込みを行い(ステップS11)、この読み込みが終了したタイミングで第2のコア32の調停回路34に対してアクセス許可を供給する(ステップS12)。
このように、各調停回路33,34は、各コア31,32のメモリアクセスが干渉しないように、該各コア31,32のメモリアクセスの調停を行う。これにより、NANDメモリ10に格納されている各プログラムのうち、第1のコア31用のプログラムは第1のコア31により読み込まれてSDRAM11上に展開され、第2のコア32用のプログラムは第2のコア32により読み込まれてSDRAM11上に展開されることとなる。
なお、SDRAM11上に展開される各プログラムは、例えば第1のコア31用のプログラムは第1のコア31用のプログラムであることを示すフラグを付してSDRAM11上に展開され、また、第2のコア32用のプログラムは第2のコア32用のプログラムであることを示すフラグを付してSDRAM11上に展開される。
或いは、SDRAM11上の記憶領域を、第1のコア31用のプログラムの展開領域、及び第2のコア32用のプログラムの展開領域に、論理的或いは物理的に分割しておき、第1のコア31用のプログラムは上記第1のコア31用のプログラムの展開領域に展開し、第2のコア32用のプログラムは上記第2のコア32用のプログラムの展開領域に展開してもよい。
〔一方のコアが全プログラムの読み込みを完了した後における他方のコアの動作〕
次に、上述のように各コア31,32は、当該各コアの周波数に対応してそれぞれアクセス要求を行い、該各コア31,32用のプログラムの読み込みを行うのであるが、いずれか一方のコアが他方のコアよりも高周波で動作していたり、或いはいずれか一方のコア用のプログラムが他方のコア用のプログラムよりもデータ量が少ない場合等に、いずれか一方のコア用のプログラムの読み込みが、他方のコア用のプログラムの読み込みよりも早く完了してしまう場合がある。
すなわち、例えば第2のコア32が第1のコア31よりも高周波数で駆動されており、第1のコア用のプログラムの全データ量が第2のコア用のプログラムの全データ量よりも多いデータ量である場合、第1のコア31による第1のコア31用の全プログラムの読み込みが完了するよりも早く、第2のコア32による第2のコア32用の全プログラムの読み込みが完了する。
当該実施例の携帯電話機の場合、制御部12の各調停回路33,34は、この起動時において、他方のコアよりも早く、自分が担うコアによるプログラムの読み込みが完了した場合、プログラムの読み込みが完了していない側のコアのプログラムの読み込みを手助けするように、自分が担うコアを制御するようになっている。
すなわち、起動時において、第1のコア31用のプログラムよりも早く、第2のコア32用のプログラムの読み込みが完了した場合、第2の調停回路33は、第1のコア31と共に第1のコア31用のプログラムの読み込みを行うように第2のコア32を制御するようになっている。
具体的には、図4に示すステップS7において第2のコア32がNANDメモリ10からプログラムの読み込みを行うことで、該NANDメモリ10に格納されている全ての第2のコア32用のプログラムがSDRAM11上に展開され(=第2のコア32用の全てのプログラムの読み込みが完了し)、なおかつ、この時点で第1のコア31がNANDメモリ10からのプログラムの読み込みを継続している場合、第2のコア32は、引き続き当該第2のコア32の周波数の周期で、第2のコア用調停回路34に対してアクセス要求を供給する。このアクセス要求が、図4のタイムチャートのステップS13でなされたとすると、第2のコア用調停回路34は、上記ステップS12で第1のコア用調停回路33からアクセス許可が供給されたタイミングで、上記ステップS13で第2のコア32から供給されたアクセス要求に対応して、ステップS14に示すように第1のコア用調停回路33にアクセス停止要求を供給する。これにより、上述のように第1のコア31のメモリアクセスがブロックされることとなる。
第2のコア32は、この第1のコア31のメモリアクセスがブロックされている間に、ステップS15に示すようにNANDメモリ10にアクセスし、第1のコア31用のプログラムの読み込みを行い、この読み込んだ第1のコア31用のプログラムをSDRAM11上に展開する。そして、第2のコア32用の第2のコア用調停回路34は、上記第1のコア31用のプログラムの展開後に、ステップS16に示すように第1のコア用調停回路33に対してアクセス許可を供給する。
第1のコア用調停回路33は、第2のコア用調停回路34からアクセス許可が供給されると、ステップS18に示すように第2のコア用調停回路34に対してアクセス停止要求を供給し、第2のコア32のメモリアクセスがブロックされている間に、ステップS17で形成された第1のコア31のアクセス要求に対応して、ステップS19でNANDメモリ10から第1のコア31用のプログラムの読み込みを行いSDRAM11上に展開し、ステップS20において第2のコア用調停回路34にアクセス許可を供給する。
第2のコア用調停回路34は、第1のコア用調停回路33からアクセス許可が供給されると、ステップS21で第2のコア32で形成されたアクセス要求に対応して、上記ステップS14〜ステップS16で説明したように、第1のコア31のメモリアクセスをブロックし、この間に第1のコア31用のプログラムをNANDメモリ10から読み込んでSDRAM11上に展開し、第1のコア用調停回路33に対してアクセス許可を供給する。
第2のコア用調停回路34は、NANDメモリ10に格納されている第1のコア31用の全プログラムの読み込みが完了するまでの間、第1のコア31と共に該第1のコア31用のプログラムの読み込みを行うように第2のコア32を制御する。
このように、当該実施の形態の携帯電話機の制御部12は、第2のコア32用の全プログラムの読み込みが完了した後は、第1のコア31及び第2のコア32が共同して、第1のコア31用のプログラムの読み込みを行う。これにより、第2のコア32が当該第2のコア32用のプログラムの読み込みを完了した後でも、該第2のコア32を引き続き動作させて第1のコア31用のプログラムの読み込みを手助けすることができる。このため、NANDメモリ10に格納されている第1のコア31用のプログラム、及び第2のコア32用のプログラムを全てSDRAM11上に展開するまでの時間を大幅に短縮化することができ、当該携帯電話機の起動時間の高速化を図ることができる。
なお、当該携帯電話機の制御部12は、起動時にSDRAM11上に展開された各コア31,32用のプログラムに基づいて、CDMA通信方式に基づく通信制御等を行うこととなる。
〔一方のコアが全プログラムの読み込みを完了した後における他方のコアの他の動作〕
次に、図4は、各コア31,32の周波数が同程度であるため、該各コア31,32のNANDメモリ10に対するメモリアクセスが交互になる例であったが、例えば第2のコア32が第1のコア31よりも高周波で動作する場合、第1のコア31がメモリアクセスをしてから次にメモリアクセスを行う間に、第2のコア32が、例えば2回、メモリアクセスを行うことが可能となる場合がある。図5のタイムチャートは、このように一方のコアのメモリアクセスの間に他方のコアが複数回メモリアクセスを行う場合の例を示している。
具体的には、NANDメモリ10に記憶されている第2のコア32用の全プログラムの読み込みが完了し、図5のタイムチャートのステップS31〜ステップS34に示すように第1のコア31による当該第1のコア31用のプログラムの読み込みが継続している場合、第2のコア32は、引き続き、アクセス要求を形成し、これをステップS35において第2のコア用調停回路34に供給する。
第2のコア用調停回路34は、第2のコア32から、このアクセス要求がなされると、ステップS34で上記第1のコア用調停回路33からアクセス許可が供給された後のステップS36において、第1のコア用調停回路33に対してアクセス停止要求を行う。これにより、第1のコア31のメモリアクセスはブロックされることとなる。
第2のコア32は、第1のコア31のメモリアクセスがブロックされている間に、ステップS37においてNANDメモリ10から第1のコア31用のプログラムを読み込み、これをSDRAM11に展開する。第2のコア用調停回路34は、この第2のコア32による第1のコア31用のプログラムの読み込みが完了すると、ステップS38において、第1のコア用調停回路33に対してアクセス許可を供給する。
次に、第2のコア用調停回路34から第1のコア用調停回路33に対してアクセス許可が供給された際に、第1のコア31からアクセス要求がなされていた場合、第1のコア用調停回路33は、この第1のコア31からアクセス要求に対応して、第2のコア用調停回路34に対してアクセス停止要求を行うのであるが、この図5に示す例の場合、第2のコア用調停回路34から第1のコア用調停回路33に対してアクセス許可を供給しても、第1のコア用調停回路33から第2のコア用調停回路34に対してアクセス停止要求がなされていない。
また、ステップS39に示すように、第1のコア用調停回路33から第2のコア用調停回路34に対してアクセス停止要求がなされることなく、第2のコア32からのアクセス要求がなされている。このため、第2のコア用調停回路34は、連続して第2のコア32からのアクセス要求を処理すべく、ステップS40において、第1のコア用調停回路33に対してアクセス停止要求を行う。これにより、第1のコア31のメモリアクセスはブロックされることとなる。
第2のコア32は、第1のコア31のメモリアクセスがブロックされている間に、ステップS41においてNANDメモリ10から第1のコア31用のプログラムを読み込み、これをSDRAM11に展開する。第2のコア用調停回路34は、この第2のコア32による第1のコア31用のプログラムの読み込みが完了すると、ステップS42において、第1のコア用調停回路33に対してアクセス許可を供給する。
この図5に示す例の場合、第2のコア32が2回目の上記プログラムの読み込みを終了するまでの間に、ステップS43に示すように第1のコア31からのアクセス要求がなされている。このため、第1のコア用調停回路33は、第2のコア用調停回路34からアクセス許可がなされたタイミングで、ステップS44に示すように第2のコア用調停回路34に対してアクセス停止要求を行う。そして、第1のコア31は、このアクセス停止要求により第2のコア32のメモリアクセスがブロックされている間に、ステップS45において、NANDメモリ10から第1のコア31用のプログラムの読み込みを行い、第1のコア用調停回路33は、このプログラムの読み込みが終了したタイミングで、ステップS46に示すように第2のコア用調停回路34に対してアクセス許可を行う。
以後、ステップS35〜ステップS42で説明したように、第1のコア31が1回、プログラムの読み込みを行う間に、第2のコア32が2回、プログラムの読み込みを行う動作が、NANDメモリ10に格納されている第1のコア31用の全プログラムの読み込みが完了するまでの間、繰り返し実行されることとなる。
この図5に示す例の場合、第1のコア31が1回、プログラムの読み込みを行う間に、第2のコア32が2回、プログラムの読み込みを行うこととなるため、図4に示した例の場合よりも、高速でNANDメモリ10に格納されている各コア用のプログラムの読み込みを完了させることができる。このため、当該携帯電話機の起動時間のさらなる高速化を図ることができる。
[実施例の効果]
以上の説明から明らかなように、この実施例の携帯電話機は、制御部12が第1のコア31及び第2のコア32を備えたヘテロジニアス・デュアルコアCPUとなっており、当該携帯電話機のメイン電源が投入された起動時において、第1のコア用調停回路33及び第2のコア用調停回路34が相互に通信を行うことで、各コア31,32のメモリアクセスが干渉しないように各コア31,32を制御しながら、NANDメモリ10に格納されている第1のコア用のプログラム、及び第2のコア用のプログラムを該各コア31,32がそれぞれ読み込み、SDRAM11上に展開する。そして、いずれか一方のコア用の全プログラムの読み込みが完了し、なおかつ、他方のコア用のプログラムの読み込みが継続して行われている場合、プログラムの読み込みを完了したコアが、プログラムの読み込みを完了していないコアと共に、該読み込みが完了していないプログラムの読み込みを行う。
これにより、一方のコアが当該一方のコア用のプログラムの読み込みを完了した後でも、該一方のコアを引き続き動作させて他方のコア用のプログラムの読み込みを手助けすることができる。このため、NANDメモリ10に格納されている各コア用のプログラムを全てSDRAM11上に展開するまでの時間を大幅に短縮化することができ(=起動時におけるロード時間を大幅に短縮することができ)、当該携帯電話機の起動時間の高速化を図ることができる。
[変形例]
上述の実施例の説明では、制御部12はヘテロジニアス・デュアルコアCPUであることとしたが、制御部12は、3つ以上のコアと、該各コア用の調停回路を備える構成としてもよい。この場合、プログラムの読み込みの完了を検出した調停回路は、プログラムの読み込みを完了したコアが、プログラムの読み込みを完了していないコアと共に当該読み込みを完了していないプログラムの読み込みを行うように、上記プログラムの読み込みを完了したコアを制御する。これにより、上述と同様にNANDメモリ10に格納されている各コア用のプログラムを全てSDRAM11上に展開するまでの時間を大幅に短縮化することができ、当該携帯電話機の起動時間の高速化を図ることができる。
また、上述の実施例の説明では、本発明を携帯電話機に適用することとしたが、本発明を、PHS電話機(PHS:Personal Handyphone System)、PDA装置(PDA:Personal Digital Assistant)、携帯ゲーム機、デジタルカメラ装置、ノート型のパーソナルコンピュータ装置等の他の機器に適用してもよい。いずれの場合も上述と同様に、起動時間の短縮化を図ることができる等の効果を得ることができる。
最後に、上述の実施例は、本発明の一例である。このため、本発明は上述の実施例に限定されることはなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論であることを付け加えておく。
1 携帯電話機のアンテナ、2 通信回路、3 表示部、4 操作部、5 スピーカ部、6 マイクロホン部、7 カメラ部、8 発光部(LED)、9 バイブレーションユニット、10 NANDメモリ、11 SDRAM、12 制御部(ヘテロジニアス・デュアルコアCPU)、31 携帯電話機の制御部の第1のコア、32 携帯電話機の制御部の第2のコア、33 携帯電話機の制御部の第1のコア用調停回路、34 携帯電話機の制御部の第2のコア用調停回路

Claims (5)

  1. 少なくとも複数の演算処理部(コア)と、上記各コアがメモリに記憶されている各コア用のプログラムの読み込みをそれぞれ行う際に、該各コアのメモリアクセスが干渉しないように、該各コアのメモリアクセスの調停を図る一つ或いは複数の調停回路とを1チップ化したヘテロジニアス・マルチコア構成を有し、
    上記調停回路は、全プログラムの読み込みを完了したコアを検出し、かつ、他のコアが当該他のコア用のプログラムの読み込みを継続している場合、上記全プログラムの読み込みを完了したコアを、上記他のコアと共に、該他のコア用のプログラムの読み込みを行うように制御する
    ヘテロジニアス・マルチコア演算処理装置。
  2. 上記メモリには各コアによりそれぞれ読み込みがなされる起動用のプログラムがそれぞれ記憶されており、
    上記調停回路は、上記起動用の全プログラムの読み込みを完了したコアを検出し、かつ、他のコアが当該他のコア用の上記起動用のプログラムの読み込みを継続している場合、上記全プログラムの読み込みを完了したコアを、上記他のコアと共に、該他のコア用の上記起動用のプログラムの読み込みを行うように制御する
    請求項1に記載のヘテロジニアス・マルチコア演算処理装置。
  3. 少なくとも複数の演算処理部(コア)と、上記各コアがメモリに記憶されている各コア用のプログラムの読み込みをそれぞれ行う際に、該各コアのメモリアクセスが干渉しないように、該各コアのメモリアクセスの調停を図る一つ或いは複数の調停回路とを1チップ化したヘテロジニアス・マルチコア構成を有するヘテロジニアス・マルチコア演算処理装置における演算処理方法であって、
    上記調停回路が、全プログラムの読み込みを完了したコアを検出するステップと、
    上記調停回路が、上記ステップで全プログラムの読み込みを完了したコアを検出した際に、プログラムの読み込みを継続している他のコアを検出するステップと、
    上記調停回路が、上記全プログラムの読み込みを完了したコアを、上記他のコアと共に、該他のコア用のプログラムの読み込みを行うように制御するステップと
    を有するヘテロジニアス・マルチコア演算処理装置における演算処理方法。
  4. 少なくとも複数の演算処理部(コア)と、上記各コアがメモリに記憶されている各コア用のプログラムの読み込みをそれぞれ行う際に、該各コアのメモリアクセスが干渉しないように、該各コアのメモリアクセスの調停を図る一つ或いは複数の調停回路とを1チップ化したヘテロジニアス・マルチコア構成を有するヘテロジニアス・マルチコア演算処理装置における演算処理プログラムであって、
    上記調停回路を、全プログラムの読み込みを完了したコアを検出する読み込み完了コア検出部として機能させ、
    上記調停回路を上記読み込み完了検出部として機能させることで、全プログラムの読み込みを完了したコアが検出された際に、上記調停回路を、プログラムの読み込みを継続している他のコアを検出する読み込み継続コア検出部として機能させ、
    上記調停回路を上記読み込み完了コア検出部及び上記読み込み継続コア検出部として機能させることで、全プログラムの読み込みを完了したコア、及びプログラムの読み込みを継続している他のコアが検出された際に、上記全プログラムの読み込みを完了したコアが、上記他のコアと共に、該他のコア用のプログラムの読み込みを行うように制御する読み込み制御部として上記調停回路を機能させる
    ヘテロジニアス・マルチコア演算処理装置における演算処理プログラム。
  5. 少なくとも複数の演算処理部(コア)と、上記各コアがメモリに記憶されている各コア用のプログラムの読み込みをそれぞれ行う際に、該各コアのメモリアクセスが干渉しないように、該各コアのメモリアクセスの調停を図る一つ或いは複数の調停回路とを1チップ化したヘテロジニアス・マルチコア構成を備えた制御部を有する携帯端末装置であって、
    上記制御部の調停回路は、全プログラムの読み込みを完了したコアを検出し、かつ、他のコアが当該他のコア用のプログラムの読み込みを継続している場合、上記全プログラムの読み込みを完了したコアを、上記他のコアと共に、該他のコア用のプログラムの読み込みを行うように制御する
    携帯端末装置。
JP2009033274A 2009-02-16 2009-02-16 ヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラム、及び携帯端末装置 Withdrawn JP2010191548A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009033274A JP2010191548A (ja) 2009-02-16 2009-02-16 ヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラム、及び携帯端末装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009033274A JP2010191548A (ja) 2009-02-16 2009-02-16 ヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラム、及び携帯端末装置

Publications (1)

Publication Number Publication Date
JP2010191548A true JP2010191548A (ja) 2010-09-02

Family

ID=42817557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009033274A Withdrawn JP2010191548A (ja) 2009-02-16 2009-02-16 ヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラム、及び携帯端末装置

Country Status (1)

Country Link
JP (1) JP2010191548A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014215834A (ja) * 2013-04-25 2014-11-17 京セラドキュメントソリューションズ株式会社 メモリーアクセス制御システム及び画像形成装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014215834A (ja) * 2013-04-25 2014-11-17 京セラドキュメントソリューションズ株式会社 メモリーアクセス制御システム及び画像形成装置

Similar Documents

Publication Publication Date Title
JP4960237B2 (ja) 競合解決装置
TWI297852B (en) Processor with specific processor unit
US20060200826A1 (en) Processor and information processing method
WO2021057643A1 (zh) 一种多线程同步方法及电子设备
CN1592894A (zh) 无线应用的应用处理器和存储器体系结构
US8117474B2 (en) CPU clock control during cache memory stall
US20150355700A1 (en) Systems and methods of managing processor device power consumption
CN106383570A (zh) 在处理器的异质核之间动态切换工作载荷
JP2015097106A (ja) マルチスレッドシステムの中でイベントを設定するための技術
JP5445669B2 (ja) マルチコアシステムおよび起動方法
CN107807934A (zh) 页面显示方法和装置以及计算设备
JP2006243864A (ja) プロセッサおよび情報処理方法
JP2010191548A (ja) ヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラム、及び携帯端末装置
CN104714624B (zh) 移动终端节省功耗的方法及装置
KR102174337B1 (ko) 메모리 시스템 및 이를 포함하는 전자 장치
JP2009009388A (ja) 携帯端末装置およびそのブート処理方法
CN115964331A (zh) 一种数据访问方法、装置及设备
JP2013516714A (ja) ワークロードの要求に基づいて動的なクロックおよび電圧切替えアルゴリズムを調整するシステムおよび方法
JP2018505489A (ja) システムオンチップにおける動的メモリ利用
JP5017784B2 (ja) プロセッサ及びこのプロセッサ適用される割込み処理制御方法
WO2019128545A1 (zh) 进程处理方法、电子设备、计算机可读存储介质
JP2014078266A (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JP2004227484A (ja) 情報処理装置およびメモリアクセス調停方法
JP2006331248A (ja) データ転送装置
JP4389797B2 (ja) プロセッサおよび情報処理方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120501