(57)【特許請求の範囲】
【請求項１】
複数のプログラムを割り当て時間ごとに切り替えながら実行する２以上のプロセッサと、
前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定するスケジューリング部と、
前記複数のプログラムのそれぞれに対する、前記割り当て時間を保持する割り当て時間レジスタと、
第１モード又は第２モードが設定されるモードレジスタとを備え、
前記スケジューリング部は、前記モードレジスタに前記第１モードが設定されている場合、前記２以上のプロセッサにより実行されているプログラムの前記割り当て時間に依存するタイミングで、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、前記モードレジスタに前記第２モードが設定されている場合、前記割り当て時間に依存しないタイミングで、前記２以上のプロセッサのうち少なくとも１つのプロセッサがプログラムを実行しないように、前記複数のプログラムのうち前記少なくとも１つのプロセッサで実行しない前記プログラムを除いた１以上のプログラムの実行順序、及びプログラムを実行するプロセッサを決定する
前記仮想マルチプロセッサは、さらに、
前記モードレジスタに前記第２モードが設定されている場合、前記２以上のプロセッサのうち、プログラムを実行していないプロセッサへのクロックの供給を停止するクロック停止部を備える
ことを特徴とする仮想マルチプロセッサ。
【請求項２】
前記スケジューリング部は、前記モードレジスタの設定が変更されたことを検知し、前記第１モードから前記第２モードに変更を検知した際に、前記割り当て時間に依存しないタイミングで、前記２以上のプロセッサのうち少なくとも１つのプロセッサがプログラムを実行しないように、前記複数のプログラムのうち前記少なくとも１つのプロセッサで実行しない前記プログラムを除いた１以上のプログラムの実行順序、及びプログラムを実行するプロセッサを決定する
ことを特徴とする請求項１に記載の仮想マルチプロセッサ。
【請求項３】
前記スケジューリング部は、前記モードレジスタの設定が前記第１モードから前記第２モードに変更された際、前記２以上のプロセッサに実行されているプログラムのうち一部のプログラムの実行を一時中断し、前記モードレジスタの設定が再度前記第１モードに変更された後に、一時中断した前記プログラムを優先して前記プロセッサに実行させる
ことを特徴とする請求項２に記載の仮想マルチプロセッサ。
【請求項４】
前記複数のプログラムは、１以上の第１プログラム及び１以上の第２プログラムを含み、
前記スケジューリング部は、前記モードレジスタに前記第１モードが設定されている場合、前記２以上のプロセッサのそれぞれに、前記第１プログラム又は前記第２プログラムを実行させるように、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、前記モードレジスタの設定が前記第１モードから前記第２モードに変更された際、前記２以上のプロセッサのうち前記第１プログラムを実行しているプロセッサに当該第１プログラムの実行を継続させ、前記２以上のプロセッサのうち前記第２プログラムを実行しているプロセッサに当該第２プログラムの実行を一時中断させる
ことを特徴とする請求項２又は３に記載の仮想マルチプロセッサ。
【請求項５】
前記モードレジスタの設定は、前記２以上のプロセッサにより実行される前記第１プログラムにより変更され、
前記スケジューリング部は、前記モードレジスタの設定が前記第１モードから前記第２モードに変更された際、当該変更を行った第１プログラムを実行しているプロセッサに当該第１プログラムの実行を継続させ、当該第１プログラム以外のプログラムを実行しているプロセッサに当該プログラムの実行を一時中断させる
ことを特徴とする請求項４に記載の仮想マルチプロセッサ。
【請求項６】
前記仮想マルチプロセッサは、さらに、
複数の前記第１プログラムのそれぞれに対し第１の値又は第２の値が設定されるプログラム設定レジスタを備え、
前記スケジューリング部は、前記モードレジスタに前記第２モードが設定されている場合、前記２以上のプロセッサの一部のみに、前記複数の第１プログラムのうち前記第１の値が設定されている前記プログラム設定レジスタに対応する複数の第１プログラムを切り替えながら実行させる
ことを特徴とする請求項４に記載の仮想マルチプロセッサ。
【請求項７】
前記仮想マルチプロセッサは、さらに、
複数の前記第１プログラムのそれぞれに対し第１の値又は第２の値が設定されるプログラム設定レジスタと、
前記２以上のプロセッサのうち前記第２モード時にプログラムを実行するプロセッサの数が設定されるプロセッサ数レジスタとを備え、
前記スケジューリング部は、前記モードレジスタに前記第２モードが設定されている場合、前記プロセッサ数レジスタに設定された前記数のプロセッサに、前記複数の第１プログラムのうち前記第１の値が設定されている前記プログラム設定レジスタに対応する複数の第１プログラムを実行させる
ことを特徴とする請求項４に記載の仮想マルチプロセッサ。
【請求項８】
請求項１〜７のいずれか１項に記載の仮想マルチプロセッサを備える
ことを特徴とするシステムＬＳＩ。
【請求項９】
請求項８記載のシステムＬＳＩを備える
ことを特徴とする携帯電話機器。
【請求項１０】
複数のプログラムを割り当て時間ごとに切り替えながら実行する２以上のプロセッサと、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定するスケジューリング部と、前記複数のプログラムのそれぞれに対する、前記割り当て時間を保持する割り当て時間レジスタと、第１モード又は第２モードが設定されるモードレジスタと、前記２以上のプロセッサへのクロックの供給を停止するクロック停止部を備える仮想マルチプロセッサの制御方法であって、
前記スケジューリング部は、前記モードレジスタに前記第１モードが設定されている場合、前記２以上のプロセッサにより実行されているプログラムの前記割り当て時間に依存するタイミングで、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、
前記スケジューリング部は、前記モードレジスタに前記第２モードが設定されている場合、前記割り当て時間に依存しないタイミングで、前記２以上のプロセッサのうち少なくとも１つのプロセッサがプログラムを実行しないように、前記複数のプログラムのうち前記少なくとも１つのプロセッサで実行しない前記プログラムを除いた１以上のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、
前記クロック停止部は、前記モードレジスタに前記第２モードが設定されている場合、前記２以上のプロセッサのうち、プログラムを実行していないプロセッサへのクロックの供給を停止する
ことを特徴とする仮想マルチプロセッサの制御方法。
【請求項１１】
少なくとも第１モード及び第２モードに設定可能な仮想マルチプロセッサであって、
複数のプログラムを割り当て時間ごとに切り替えながら実行する２以上のプロセッサと、
前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定するスケジューリング部と、
前記２以上のプロセッサのうち、少なくとも１つのプロセッサへのクロックの供給を停止するクロック停止部とを備え、
前記スケジューリング部は、
前記第１モードが設定されている場合、前記２以上のプロセッサにより実行されているプログラムの前記割り当て時間に依存するタイミングで、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、
前記第２モードが設定されている場合、前記割り当て時間に依存しないタイミングで、前記２以上のプロセッサのうち少なくとも１つのプロセッサがプログラムを実行しないように、前記複数のプログラムのうち前記少なくとも１つのプロセッサで実行しない前記プログラムを除いた１以上のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、
前記クロック停止部は、前記第２モードが設定されている場合、前記２以上のプロセッサのうち、プログラムを実行していないプロセッサへのクロックの供給を停止する
ことを特徴とする仮想マルチプロセッサ。
【請求項１２】
前記仮想マルチプロセッサのモード設定は、前記２以上のプロセッサのいずれかに実行されるプログラムにより変更され、
前記スケジューリング部は、前記仮想マルチプロセッサのモード設定が前記第１モードから前記第２モードに変更された後、
当該変更を行ったプログラムを実行しているプロセッサに当該プログラムの実行を継続させ、
当該プログラム以外のプログラムを実行しているプロセッサに実行中のプログラムを一時的に中断させる
ことを特徴とする請求項１１に記載の仮想マルチプロセッサ。
【請求項１３】
前記スケジューリング部は、前記仮想マルチプロセッサモード設定が、前記第１モードから前記第２モードに変更され、再度前記第１モードに変更された後に、一時中断した前記プログラムを優先して前記プロセッサに実行させる
ことを特徴とする請求項１２に記載の仮想マルチプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マルチプロセッサ、システムＬＳＩ、携帯電話機器、及び仮想マルチプロセッサの制御方法に関し、特に、複数のプログラムを切り替えながら実行する仮想マルチプロセッサに関する。
【背景技術】
【０００２】
近年、携帯電話機器などの移動体通信機器の需要が急速に高まっている。これにより、移動体通信機器用のＬＳＩの需要もますます高まっている。移動体通信機器は、主にバッテリーから電力が供給されるので、移動体通信機器用のＬＳＩでは、消費電力を削減することが重要である。
【０００３】
一方、プロセッサ開発の分野において、近年、特に仮想化技術が注目されている。プロセッサの仮想化を実現する手段は数多く開発されている。中でもＩｎｔｅｌ社により開発されたＣＰＵの仮想化支援機能であるＩｎｔｅｌ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙがよく知られている。また、本発明に関連する技術としては、特許文献１記載の技術が知られている。特許文献１には、スレッドを作成及び破棄する際のオーバーヘッドを低減する技術が記載されている。
【特許文献１】特表２００７−５０４５４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来の技術には下記の問題点がある。
【０００５】
仮想マルチプロセッサ上で複数のプログラムを並列に実行する場合、通常、個々のプログラムを複数個実装されている物理プロセッサの中のどのプロセッサで実行させるかはハードウェアで構成されるスケジューラによって決定される。また、プログラムの実行の並列度を高めるという観点から、プログラムをどの物理プロセッサで実行するかは通常は指定しない。
【０００６】
ところで、例えば仮想マルチプロセッサ上で携帯電話用アプリケーションプログラムを実行する場合、当該アプリケーションプログラムは、ホスト処理プログラムとメディア処理プログラムとに分類される。
【０００７】
ホスト処理プログラムとは、主にシステム制御を行うプログラムであり、メディア処理プログラムとは、主に音声通話処理及び画像処理を行うプログラムである。
【０００８】
仮想マルチプロセッサは、メディア処理プログラムを休止する期間が発生した場合、ホスト処理プログラムだけを実行し続け、メディア処理プログラムを実行しない制御を行う。このメディア処理プログラムを休止する期間においては、仮想マルチプロセッサの処理量が少なくなるため、複数の物理プロセッサのうち一部の物理プロセッサの動作を停止する。具体的には、動作を停止する物理プロセッサへのクロックの供給が停止される。これによって、ＬＳＩの消費電力が削減される。
【０００９】
しかしながら、ホスト処理プログラム及びメディア処理プログラムが実行される物理プロセッサがハードウェアで構成されるスケジューラにより決定されるので、クロックの供給を停止する制御を低粒度で行うことが困難である。また、スケジューラは所定の時間毎にスケジューリングを行うので、一部の物理プロセッサの動作を停止する低電力モードに移行する際に、直ちにスケジューリングを行うことができない。つまり、従来の仮想マルチプロセッサでは、低電力モードに移行する際のオーバーヘッドが大きいという問題がある。
【００１０】
そこで、本発明は、低電力モードに移行する際のオーバーヘッドを削減できる仮想マルチプロセッサを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明に係る仮想マルチプロセッサは、複数のプログラムを割り当て時間ごとに切り替えながら実行する１以上のプロセッサと、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定するスケジューリング部と、前記複数のプログラムのそれぞれに対する、前記割り当て時間を保持する割り当て時間レジスタと、第１モード又は第２モードが設定されるモードレジスタとを備え、前記スケジューリング部は、前記モードレジスタに前記第１モードが設定されている場合、前記１以上のプロセッサにより実行されているプログラムの前記割り当て時間に依存するタイミングで、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、前記モードレジスタに前記第２モードが設定されている場合、前記割り当て時間に依存しないタイミングで、前記１以上のプロセッサのうち少なくとも１つのプロセッサがプログラムを実行しないように、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定する。
【００１２】
この構成によれば、本発明に係る仮想マルチプロセッサが備えるスケジューリング部は第２モード（低電力モード）時には、プロセッサの一部にプログラムを実行させない。これにより、プログラムを実行していないプロセッサに対してクロックの供給を停止することで、消費電力を削減できる。例えば、本発明に係る仮想マルチプロセッサ上で携帯電話用アプリケーションプログラムを実行する場合、第２モードにおいては、スケジューリング部は、ホスト処理プログラムのみをプロセッサに実行させ、メディア処理を休止させることができる。
【００１３】
さらに、本発明に係る仮想マルチプロセッサは、第２モードへの移行時には、プログラムの割り当て時間に依存しないタイミングで、スケジューリングを行う。これにより、本発明に係る仮想マルチプロセッサは、第２モードへの移行時に直ちにスケジューリングを行えるので、第２モードに移行する際のオーバーヘッドを削減できる。
【００１４】
また、前記仮想マルチプロセッサは、さらに、前記モードレジスタに前記第２モードが設定されている場合、前記１以上のプロセッサのうち、プログラムを実行していないプロセッサへのクロックの供給を停止するクロック停止部を備えてもよい。
【００１５】
この構成によれば、本発明に係る仮想マルチプロセッサは、動作していないプロセッサに対してクロックの供給を停止することで、消費電力を削減できる。
【００１６】
また、前記１以上のプロセッサは、複数のプロセッサであり、前記スケジューリング部は、前記モードレジスタに前記第２モードが設定されている場合、前記複数のプロセッサの一部のみがプログラムを実行するように、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定してもよい。
【００１７】
また、前記スケジューリング部は、前記モードレジスタの設定が変更されたことを検知し、前記第１モードから前記第２モードに変更を検知した際に、前記割り当て時間に依存しないタイミングで、前記１以上のプロセッサのうち少なくとも１つのプロセッサがプログラムを実行しないように、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定してもよい。
【００１８】
また、前記スケジューリング部は、前記モードレジスタの設定が前記第１モードから前記第２モードに変更された際、前記複数のプロセッサに実行されているプログラムのうち一部のプログラムの実行を一時中断し、前記モードレジスタの設定が再度前記第１モードに変更された後に、一時中断した前記プログラムを優先して前記プロセッサに実行させてもよい。
【００１９】
この構成によれば、本発明に係る仮想マルチプロセッサは、第１モードから第２モードに遷移した後に、再び第１モードに遷移した場合に、元の第１モードで実行されていたプログラムを引き続き実行できる。
【００２０】
また、前記複数のプログラムは、１以上の第１プログラム及び１以上の第２プログラムを含み、前記スケジューリング部は、前記モードレジスタに前記第１モードが設定されている場合、前記１以上のプロセッサのそれぞれに、前記第１プログラム又は前記第２プログラムを実行させるように、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、前記モードレジスタの設定が前記第１モードから前記第２モードに変更された際、前記複数のプロセッサのうち前記第１プログラムを実行しているプロセッサに当該第１プログラムの実行を継続させ、前記複数のプロセッサのうち前記第２プログラムを実行しているプロセッサに当該第２プログラムの実行を一時中断させてもよい。
【００２１】
この構成によれば、第２モードが設定されている場合、スケジューリング部は、ホスト処理プログラム（第１プログラム）のみをプロセッサに実行させ、メディア処理プログラム（第２プログラム）を休止させることができる。
【００２２】
また、前記モードレジスタの設定は、前記複数のプロセッサにより実行される前記第１プログラムにより変更され、前記スケジューリング部は、前記モードレジスタの設定が前記第１モードから前記第２モードに変更された際、当該変更を行った第１プログラムを実行しているプロセッサに当該第１プログラムの実行を継続させ、当該第１プログラム以外のプログラムを実行しているプロセッサに当該プログラムの実行を一時中断させてもよい。
【００２３】
この構成によれば、本発明に係る仮想マルチプロセッサは、第２モードにおいて、ホスト処理プログラムのみを実行できる。
【００２４】
また、前記仮想マルチプロセッサは、さらに、複数の前記第１プログラムのそれぞれに対し第１の値又は第２の値が設定されるプログラム設定レジスタを備え、前記スケジューリング部は、前記モードレジスタに前記第２モードが設定されている場合、前記複数のプロセッサの一部のみに、前記複数の第１プログラムのうち前記第１の値が設定されている前記プログラム設定レジスタに対応する複数の第１プログラムを切り替えながら実行させてもよい。
【００２５】
この構成によれば、本発明に係る仮想マルチプロセッサは、第２モードにおいて、複数のホスト処理プログラムを実行できる。
【００２６】
また、前記仮想マルチプロセッサは、さらに、複数の前記第１プログラムのそれぞれに対し第１の値又は第２の値が設定されるプログラム設定レジスタと、前記複数のプロセッサのうち前記第２モード時にプログラムを実行するプロセッサの数が設定されるプロセッサ数レジスタとを備え、前記スケジューリング部は、前記モードレジスタに前記第２モードが設定されている場合、前記プロセッサ数レジスタに設定された前記数のプロセッサに、前記複数の第１プログラムのうち前記第１の値が設定されている前記プログラム設定レジスタに対応する前記複数の第１プログラムを実行させてもよい。
【００２７】
この構成によれば、本発明に係る仮想マルチプロセッサは、第２モードにおいて、複数のホスト処理プログラムを並列に複数のプロセッサで実行できる。
【００２８】
また、前記１以上のプロセッサは、１個のプロセッサであり、前記スケジューリング部は、前記モードレジスタに前記第２モードが設定されている場合、前記１個のプロセッサにプログラムを実行させなくてもよい。
【００２９】
また、本発明に係るシステムＬＳＩは、前記仮想マルチプロセッサを備える。
【００３０】
また、本発明に係る携帯電話機器は、前記システムＬＳＩを備える。
【００３１】
また、本発明に係る仮想マルチプロセッサの制御方法は、複数のプログラムを割り当て時間ごとに切り替えながら実行する１以上のプロセッサと、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定するスケジューリング部と、前記複数のプログラムのそれぞれに対する、前記割り当て時間を保持する割り当て時間レジスタと、第１モード又は第２モードが設定されるモードレジスタとを備える仮想マルチプロセッサの制御方法であって、前記スケジューリング部は、前記モードレジスタに前記第１モードが設定されている場合、前記１以上のプロセッサにより実行されているプログラムの前記割り当て時間に依存するタイミングで、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、前記スケジューリング部は、前記モードレジスタに前記第２モードが設定されている場合、前記割り当て時間に依存しないタイミングで、前記１以上のプロセッサのうち少なくとも１つのプロセッサがプログラムを実行しないように、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定する。
【００３２】
なお、本発明は、このような仮想マルチプロセッサとして実現できるだけでなく、仮想マルチプロセッサに含まれる特徴的な手段をステップとする仮想マルチプロセッサの制御方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【発明の効果】
【００３３】
以上より、本発明は、低電力モードに移行する際のオーバーヘッドを削減できる仮想マルチプロセッサ、システムＬＳＩ、携帯電話機器、及び仮想マルチプロセッサの制御方法を提供できる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明に係る仮想マルチプロセッサの実施の形態について、図面を参照しながら詳細に説明する。
【００３５】
（実施の形態１）
本発明の実施の形態１に係る仮想マルチプロセッサでは、通常モード時には、スケジューラが複数のプロセッサの全てに、ホスト処理プログラム又はメディア処理プログラムを実行させ、低電力モード時には、スケジューラが複数のプロセッサの一部にホスト処理プログラムのみを実行させる。
【００３６】
これにより、本発明の実施の形態１に係る仮想マルチプロセッサは、低粒度でクロック制御を行えるので、低電力モードに移行する際のオーバーヘッドを削減できる。
【００３７】
まず、本発明の実施の形態１に係る仮想マルチプロセッサの構成を説明する。
【００３８】
図１は、本発明の実施の形態１に係る仮想マルチプロセッサの構成を示す機能ブロック図である。
【００３９】
図１に示す仮想マルチプロセッサ１００は、複数のプログラムを並列に実行可能である。仮想マルチプロセッサ１００は、例えば、携帯電話用アプリケーションプログラムを実行する。また、仮想マルチプロセッサ１００は、消費電力を抑制した低電力モードであるスリープモードと、通常の消費電力で動作を行う通常モードとを有する。
【００４０】
仮想マルチプロセッサ１００は、複数の物理プロセッサ１１０と、仮想マルチプロセッサコントローラ（以下、ＶＭＰＣ）２００と、クロック停止部１２０とを備える。
【００４１】
複数の物理プロセッサ１１０（以下、ＰＰとも記す。また、仮想マルチプロセッサ１００が備える３つのＰＰをそれぞれＰＰ０〜ＰＰ２と記す。）は、複数のプログラムを並列に実行する。また、複数の物理プロセッサ１１０は、複数のプログラムを一定時間ごとに切り替えながら実行する。
【００４２】
このとき、各プログラムからはそれぞれが仮想的に１つの独立したプロセッサで実行されるように見える。この仮想的なプロセッサを論理プロセッサ（以下、ＬＰ）という。１つのプログラムは１つのＬＰ上で実行される。１つのプログラムがＰＰ上で実行されるとき、当該プログラムに対応するＬＰがＰＰにアサインされるという。
【００４３】
ＬＰは、実行状態（ｒｕｎｎｉｎｇ状態）と、実行可能状態（ｒｅａｄｙ状態）と、イベント待ち状態（ｗａｉｔｉｎｇ状態）と、実行可能な中断状態（ｓｕｓｐｅｎｄｅｄ  ｒｅａｄｙ状態）と、イベント待ちかつ中断状態（ｓｕｓｐｅｎｄｅｄ  ｒｅａｄｙ状態）との５つの動作状態をもつ。
【００４４】
ｒｕｎｎｉｎｇ状態は、プログラムがＰＰ上で実行されている状態である。ｒｅａｄｙ状態は、プログラムを実行可能であるが、当該プログラムを実行するＰＰが存在しないために待機している状態である。ｗａｉｔｉｎｇ状態は、なんらかの外部イベント（ＤＭＡ転送の完了など）を待つ状態である。ｓｕｓｐｅｎｄｅｄ  ｒｅａｄｙ状態は、プログラムの実行が外部イベントにより一時的に中断されている状態である。ｓｕｓｐｅｎｄｅｄ  ｗａｉｔｉｎｇ状態はプログラムの実行が外部イベントにより一時的に中断され、かつ外部イベントを待つ状態である。
【００４５】
ＶＭＰＣ２００は、物理プロセッサ１１０によるプログラムの実行を制御する。ＶＭＰＣ２００は、制御レジスタ２１０と、論理プロセッサ状態レジスタ２２０と、スケジューラ２３０と、コンテキスト転送制御部２４０と、コンテキストメモリ２５０とを備える。
【００４６】
論理プロセッサ状態レジスタ２２０は、ＬＰの状態を管理するためのレジスタである。図２は、論理プロセッサ状態レジスタ２２０の構成を示す図である。
【００４７】
論理プロセッサ状態レジスタ２２０は、３２個のレジスタＬＰ０ＳＲ、ＬＰ１ＳＲ、・・・、ＬＰ３１ＳＲを含む。それぞれのレジスタＬＰｎＳＲ（ｎ＝０−３１。またｎをＬＰのＩＤという）は、ＬＰがアサインされたＰＰを特定する情報と、当該ＬＰの動作状態とを保持する。
【００４８】
レジスタＬＰｎＳＲの第０から第２ビットは、ＬＰの動作状態を示す。レジスタＬＰｎＳＲの第３ビットから第４ビットは、対応するＬＰがどのＰＰにアサインされているかを示す。また、ＬＰのＩＤにより優先度が管理される。例えば、ＩＤが小さいＬＰほど優先度が高く、かつ実行が完了したプログラムに対応するＬＰの優先度は最低に設定される。
【００４９】
論理プロセッサ状態レジスタ２２０は、スケジューラ２３０により更新される。
【００５０】
制御レジスタ２１０は、スケジューラ２３０を制御するためのレジスタである。制御レジスタ２１０は、クォンタムレジスタ２１２と、スリープモードレジスタ２１３とを備える。
【００５１】
クォンタムレジスタ２１２は、３２個のレジスタＬＰｎＱＴＭＲ（ｎ＝０−３１）を含む。
【００５２】
図３は、クォンタムレジスタ２１２の構成を示す図である。各レジスタＬＰｎＱＴＭＲは、対応するＬＰのクォンタム時間を保持する。クォンタム時間は、ユーザが各プログラムに付与した固有の時間であり、各ＬＰに対応するプログラムがＰＰで実行される時間である。言い換えると、クォンタム時間は、ＰＰにＬＰが割り当てられる時間である。また、クォンタムレジスタ２１２により保持されるクォンタム時間は、ＰＰで実行されるプログラムにより設定される。
【００５３】
スケジューラ２３０は、ＬＰに対応するプログラムの実行時間が、当該ＬＰに対応するクォンタム時間に等しくなったときに、予めスケジューリングした他のＬＰをＰＰにアサインすることにより、実行するプログラムを切り替える。具体的には、スケジューラ２３０は、プログラムの実行時間をカウントし、カウント値がクォンタム時間に等しくなったときにＬＰを切り替える。
【００５４】
スリープモードレジスタ２１３は、スリープモード及び通常モードのうちいずれかが設定されるレジスタである。スリープモードレジスタ２１３は、ＰＰで実行されるプログラムにより更新される。つまり、スリープモードレジスタ２１３は、ＰＰで実行されるプログラムが、通常モードからスリープモードに遷移することを要求するためのレジスタである。
【００５５】
図４は、スリープモードレジスタ２１３の構成を示す図である。例えば、スリープモードレジスタ２１３の第０ビットに１が保持されているとスリープモードであることを示し、０が保持されていると通常モードであることを示す。スリープモードレジスタ２１３の第０ビットに１が書き込まれると、スケジューラ２３０はスリープモードに遷移するためのスケジューリングを行う。
【００５６】
スケジューラ２３０は、複数のプログラムの優先度に従い、複数のプログラムの実行順序、及びプログラムを実行するＰＰを決定するスケジューリングを行う。
【００５７】
通常モード時には、スケジューラ２３０は、複数のＰＰにより実行されているプログラムのうちいずれかのクォンタム時間に依存するタイミングで、スケジューリングを行う。具体的には、スケジューラ２３０は、プログラムの実行時間がクォンタム時間に等しくなる時刻から所定の時間前のタイミングで、スケジューリングを行い、当該プログラムの実行時間がクォンタム時間に等しくなった後に、ＰＰにより実行されるプログラムを切り替える。スケジューラ２３０は、動作状態が実行可能状態であるＬＰのうち優先度が高いＬＰを、プログラムの実行時間がクォンタム時間に等しくなったＰＰに実行させるように、スケジューリングを行う。
【００５８】
通常モード時には、スケジューラ２３０は、ＰＰのそれぞれに、プログラムを実行させる。つまり、スケジューラ２３０は、ＰＰにアサインされた全てのＬＰの動作状態を実行状態に設定する。
【００５９】
スリープモード時には、スケジューラ２３０は、複数のＰＰの一部のみにホスト処理プログラムを実行させる。また、スケジューラ２３０は、ＰＰにメディア処理プログラムを実行させない。つまり、スケジューラ２３０は、複数のＰＰのうち少なくとも１つのＰＰがプログラムを実行しないようにスケジューリングを行う。
【００６０】
スケジューラ２３０は、ＰＰにアサインされているホスト処理プログラムを実行するＬＰの動作状態を実行状態に設定し、ＰＰにアサインされているメディア処理プログラムに対応するＬＰの動作状態をｓｕｓｐｅｎｄｅｄ  ｒｅａｄｙ状態に設定する。ここで、スケジューラ２３０は、メディア処理プログラムを実行するＬＰのうちでｓｕｓｐｅｎｄｅｄ  ｒｅａｄｙ状態又はｒｅａｄｙ状態であるものが存在し、かつ、ＬＰがアサインされていないＰＰが存在する場合でも、メディア処理プログラムを実行するＬＰをＰＰにアサインしない。
【００６１】
また、スケジューラ２３０は、動作モードが通常モードからスリープモードに変更された際に、クォンタム時間に依存しないタイミングで、スケジューリングを行う。言い換えると、スケジューラ２３０は、スリープモードレジスタ２１３の設定が変更されたタイミングに依存するタイミングで、スケジューリングを行う。
【００６２】
コンテキストメモリ２５０は、ＬＰで用いられるコンテキストを記憶する。コンテキストとは、プログラムを実行するために必要な制御情報及びデータ情報等である。
【００６３】
コンテキスト転送制御部２４０は、実行が完了したプログラムのコンテキストをコンテキストメモリ２５０に書き込む。また、コンテキスト転送制御部２４０は、実行されるプログラムのコンテキストをコンテキストメモリ２５０から読み出し、読み出したコンテキストを当該プログラムに対応するＬＰがアサインされたＰＰに転送する。
【００６４】
クロック停止部１２０は、スリープモードにおいて、複数のＰＰのうちＬＰがアサインされていないＰＰへのクロックの供給を停止する。
【００６５】
図５は、ＬＰの状態遷移を示す図である。当該状態遷移はスケジューラ２３０により行われる。
【００６６】
次に、本発明の実施の形態１に係る仮想マルチプロセッサ１００の動作を説明する。
【００６７】
まず、通常モード時の仮想マルチプロセッサ１００の動作を説明する。
【００６８】
図６Ａは、通常モード時の各ＰＰにアサインされるＬＰの一例を示す図である。図６Ｂは、ＬＰの状態の一例を示す図である。
【００６９】
時刻Ｔ１より前において、ＰＰ０、ＰＰ１及びＰＰ２にはそれぞれＬＰ０、ＬＰ１及びＬＰ２がアサインされている。なお、ＬＰ０〜ＬＰ２で実行されるプログラムは、ホスト処理プログラムであっても、メディア処理プログラムであってもよい。
【００７０】
時刻Ｔ１においてＬＰ０で実行されていたプログラムの実行が終了する。スケジューラ２３０は、時刻Ｔ１より所定の時間前の時刻Ｔ０において、スケジューリングを開始する。
【００７１】
この実施例ではスケジューリングの優先度は、ラウンドロビン方式を用いて決定されるものとする。つまり、ＩＤが小さいＬＰほど優先度が高く、かつ実行が完了したプログラムに対応するＬＰの優先度は最低に設定される。
【００７２】
したがって、ＬＰ０の割り当て時間が終了したのち、ｒｅａｄｙ状態のＬＰの中で次に最も優先度が高いＬＰはＬＰ３である。よって、スケジューラ２３０は、ＬＰ０の次にＰＰ０にアサインするＬＰをＬＰ３と決定する。また、スケジューラ２３０は、次にＰＰ０にアサインするＬＰがＬＰ３であることをコンテキスト転送制御部２４０に通知する。
【００７３】
コンテキスト転送制御部２４０は、コンテキストメモリ２５０からＬＰ３のコンテキストを読み出し、読み出したコンテキストをＰＰ０に転送する。
【００７４】
ここで、ＰＰ０〜ＰＰ２は、それぞれ２つのコンテキストを保持可能である。これにより、コンテキスト切り替えの際のオーバーヘッドが低減される。
【００７５】
また、時刻Ｔ１で、ＶＭＰＣ２００は、ＰＰ０にＬＰ０の実行時間が割り当て時間に等しくなったことを通知する。ＰＰ０は、コンテキスト転送制御部２４０により転送されたＬＰ３のコンテキストを用いてＬＰ３に対応するプログラムの実行を開始する。
【００７６】
次に、通常モードからスリープモードに遷移するときの仮想マルチプロセッサ１００の動作を説明する。
【００７７】
図７Ａは、通常モード及びスリープモードの遷移時において、各ＰＰにアサインされるＬＰを示す図である。図７Ｂは、スリープモードに遷移するときの各ＬＰの状態を示す図である。ここでは、ＬＰ０上で実行されるプログラムはホスト処理プログラムであり、ＬＰ１及びＬＰ２上で実行されるプログラムはメディア処理プログラムであるとする。
【００７８】
ホスト処理プログラム上でスリープモードに遷移することが決定されたとき、ＬＰ０で実行中のプログラムの特権レベルは、ユーザレベルからシステムレベルに遷移する。
【００７９】
ＰＰ０上のシステムレベルのプログラムにより、時刻Ｔ２において、スリープモードレジスタ２１３の第０ビットに１が書き込まれる。スケジューラ２３０は、スリープモードレジスタ２１３の設定が変更されたことを検出し、スケジューリングを開始する。また、このとき、スケジューラ２３０はスリープモードレジスタ２１３にアクセスしたＰＰを検出し（この例ではＰＰ０）、ＰＰ０以外のＰＰにアサインされているＬＰすなわちＬＰ１とＬＰ２とをｓｕｓｐｅｎｄｅｄ  ｒｅａｄｙ状態にする。また、スケジューラ２３０は、ＰＰ０にＬＰ０をアサインし、実行を続けさせる。
【００８０】
スケジューリング開始時刻に到達したとき（時刻Ｔ３及び時刻Ｔ４）、スケジューラ２３０は、ＰＰ０にＬＰ０を再度アサインし、ＰＰ１及びＰＰ２にはｒｅａｄｙ状態及びｓｕｓｐｅｎｄｅｄ  ｒｅａｄｙ状態のＬＰが存在するにもかかわらず、アサインしない。
【００８１】
時刻Ｔ５で、ＰＰ０によりスリープモードレジスタ２１３の第０ビットに０が書き込まれ、スケジューラ２３０が起動する。スケジューラ２３０は、ＰＰ１及びＰＰ２に、直前にアサインされていたＬＰ１とＬＰ２とをそれぞれアサインし、ＰＰ０〜ＰＰ２にプログラムの実行を開始させる。つまり、スケジューラ２３０は、スリープモードレジスタ２１３の設定が再度通常モードに変更された後に、スリープモードの移行時に一時中断したＬＰを優先してＰＰに実行させる。
【００８２】
一方、時刻Ｔ２から時刻Ｔ５において、クロック停止部１２０は、ＰＰ１及びＰＰ２へのクロック供給を停止する。
【００８３】
図８は、通常モード時及びスリープモード時のスケジューリング動作の流れを示すフローチャートである。
【００８４】
まず、スケジューラ２３０が起動される（Ｓ１０１）。具体的には、ＰＰで実行されているプログラムの実行時間がクォンタム時間に一致する時刻より所定の時間前の時刻、及びスリープモードレジスタ２１３に保持される値が変更された際に、スケジューラ２３０が起動される。
【００８５】
次に、スケジューラ２３０は、スリープモードレジスタ２１３に保持される値が１であるか０であるかを判定する（Ｓ１０２）。スリープモードレジスタ２１３に保持される値が０の場合（Ｓ１０２でＮｏ）、つまり通常モード時には、ｒｅａｄｙ状態、及びｓｕｓｐｅｎｄｅｄ  ｒｅａｄｙ状態のＬＰのうち優先度の高いＬＰを、割り当て時間が終了するプログラムを実行していたＰＰにアサインする（Ｓ１０３）。
【００８６】
次に、スケジューラ２３０が停止される（Ｓ１０４）。
【００８７】
一方、スリープモードレジスタ２１３に保持される値が１の場合（Ｓ１０２でＹｅｓ）、つまり通常モードからスリープモードに変更された際には、スケジューラ２３０は、当該変更を行ったプログラム以外のプログラムの実行を一時中断する。つまり、スケジューラ２３０は、ＰＰに実行されているプログラムのうちメディア処理プログラムの実行を一時中断する。
【００８８】
具体的には、まず、スケジューラ２３０は、スリープモードレジスタ２１３に１を書き込んだＬＰのＩＤ及びＰＰのＩＤを取得し、保持する（Ｓ１０５）。つまり、スケジューラ２３０は、ホスト処理プログラムを実行しているＬＰのＩＤ及び当該ＬＰがアサインされているＰＰのＩＤを取得し、保持する。
【００８９】
次に、スケジューラ２３０は、ステップＳ１０５で取得したＩＤのＬＰ以外のｒｕｎｎｉｎｇ状態のＬＰの動作状態をｓｕｓｐｅｎｄｅｄ  ｒｅａｄｙ状態にする（Ｓ１０６）。このとき、ステップＳ１０５で取得したＩＤのＬＰ以外のｒｕｎｎｉｎｇ状態のＬＰが仮想マルチプロセッサ１００の外部にアクセス中の場合は、スケジューラ２３０は、アクセスが完了するまで待ち、アクセス完了後に、当該ＬＰの動作状態をｓｕｓｐｅｎｄｅｄ  ｒｅａｄｙ状態に変更する。
【００９０】
また、スケジューラ２３０は、ステップＳ１０５で取得したＰＰのＩＤのＰＰに、同じく取得したＬＰのＩＤのＬＰをアサインし、実行を続けさせる（Ｓ１０７）。
【００９１】
次に、スケジューラ２３０が停止される（Ｓ１０４）。
【００９２】
以上より、本発明の実施の形態１に係る仮想マルチプロセッサ１００では、スリープモード時には、スケジューラ２３０は、複数のＰＰのうち一部のＰＰにホスト処理プログラムを実行させ、他のＰＰにはメディア処理プログラムの実行を一時中断させる。これにより、プログラムを実行していないＰＰに対してクロックの供給を停止することで、消費電力を削減できる。
【００９３】
また、仮想マルチプロセッサ１００では、通常モードからスリープモードへの移行時には、クォンタム時間に依存しないタイミングで、スリープモード時のスケジューリングを行う。これにより、仮想マルチプロセッサ１００は、スリープモードへの移行時に直ちにスケジューリングを行えるので、スリープモードに移行する際のオーバーヘッドを削減できる。また、仮想マルチプロセッサ１００は、物理プロセッサ１１０へのクロックの供給又は停止の制御を低粒度で行えるので、極めて高い消費電力削減効果を実現できる。
【００９４】
以上、本発明の実施の形態１に係る仮想マルチプロセッサ１００について説明したが、本発明は、この実施の形態に限定されるものではない。
【００９５】
例えば、上記説明において、スリープモード時には、ホスト処理プログラムを実行する１つのＬＰのみが１つのＰＰにアサインされ、実行される例を示したが、ホスト処理プログラムを実行する２以上のＬＰが切り替えられながら１つのＰＰにアサインされてもよい。
【００９６】
この場合、ＶＭＰＣ２００は、図１に示す構成に加えて、さらに、ＬＰ制御レジスタ２６０を備えればよい。図９は、ＬＰ制御レジスタ２６０の構成を示す図である。
【００９７】
ＬＰ制御レジスタ２６０は、スリープモード時に実行される複数のホスト処理プログラムが設定されるレジスタである。ＬＰ制御レジスタ２６０は、３２個のレジスタＬＰｎＣＴＬＲ（ｎ＝０−３１）を含む。各レジスタＬＰｎＣＴＬＲの第０ビットには、グループＩＤが設定される。グループＩＤは、当該ＬＰをスリープモード時に実行するか否かを示す情報である。具体的には、ホスト処理プログラムを実行するＬＰに対応するレジスタＬＰｎＣＴＬＲにはグループＩＤ＝０が設定される。一方、メディア処理プログラムを行うＬＰに対応するレジスタＬＰｎＣＴＬＲにはグループＩＤ＝１が設定される。
【００９８】
スリープモード時には、スケジューラ２３０は、グループＩＤ＝０が設定された複数のＬＰに対応するプログラムを、１つのＰＰに切り替えながら実行させる。また、スケジューラ２３０は、グループＩＤ＝１が設定されたＬＰをｓｕｓｐｅｎｄｅｄ  ｒｅａｄｙ状態にし、当該ＬＰに対するプログラムをＰＰに実行させない。
【００９９】
また、複数のＰＰがホスト処理プログラムを並列に実行しているときにスリープモードレジスタ２１３に１が書き込こまれた場合、スケジューラ２３０は、当該ホスト処理プログラムの処理を完了させたのちに、グループＩＤ＝０が設定された複数のＬＰに対応するプログラムを、１つのＰＰに切り替えながら実行させる。
【０１００】
これにより、ホスト処理プログラムが複数のＬＰ上で実行される場合においても同様の効果を得られる。
【０１０１】
また、上記説明では、スリープモード時には、１つのＰＰのみがプログラムを実行するとしたが、２以上のＰＰがプログラムを実行してもよい。つまり、仮想マルチプロセッサ１００が備える複数のＰＰのうち一部のみがプログラムを実行すればよい。
【０１０２】
この場合、ＶＭＰＣ２００は、さらに、ＰＰ制御レジスタ２７０を備えればよい。図１０は、ＰＰ制御レジスタ２７０の構成を示す図である。
【０１０３】
ＰＰ制御レジスタ２７０は、スリープモード時に動作させるＰＰの数が設定されるレジスタである。
【０１０４】
スリープモード時には、スケジューラ２３０は、ＰＰ制御レジスタ２７０に設定されたＰＰの数分のＰＰにそれぞれＬＰをマッピングする。
【０１０５】
これにより、スリープモード時に、複数のホスト処理プログラムを並列に複数のＰＰ上で実行できる。
【０１０６】
また、上記説明において、スリープモード時に実行するプログラムは携帯電話用アプリケーションプログラムに含まれるホスト処理プログラムとしたが、本発明はこれに限定されるものでない。
【０１０７】
また、上記説明において、仮想マルチプロセッサ１００は、３つのＰＰを備えるとしたが、１以上のＰＰを備えればよい。また、仮想マルチプロセッサ１００が１つのＰＰのみを備える場合には、スリープモードにおいては、スケジューラ２３０は、当該１つのＰＰのＬＰをｓｕｓｐｅｎｄｅｄ  ｒｅａｄｙ状態にし、プログラムを実行させない。また、クロック停止部１２０は、当該１つのＰＰへのクロックの供給を停止する。
【０１０８】
（実施の形態２）
本発明の実施の形態２では、上述した実施の形態１に係る仮想マルチプロセッサ１００を備える携帯電話機器について説明する。
【０１０９】
まず、本発明の実施の形態２に係る携帯電話機器５００の構成を説明する。
【０１１０】
図１１は、本発明の実施の形態２に係る携帯電話機器５００の構成を示す機能ブロック図である。携帯電話機器５００は、音楽再生機能付き携帯電話機器である。
【０１１１】
図１１に示す携帯電話機器５００は、システムＬＳＩ５１０と、アンテナ５２１と、高周波信号送受信部５２２と、外部メモリ５２３と、入出力部５２４と、ＳＤＲＡＭ５２５とを備える。
【０１１２】
高周波信号送受信部５２２は、アンテナ５２１を介して、通話データ等を送受信する。
【０１１３】
外部メモリ５２３は、音楽データを蓄積する。
【０１１４】
入出力部５２４は、スピーカを内蔵した受話器である。
【０１１５】
ＳＤＲＡＭ５２５は、再生を行う音楽データ及び再生処理後の音楽データ等を一時格納する。
【０１１６】
システムＬＳＩ５１０は、例えば、１チップの半導体集積回路である。システムＬＳＩ５１０は、仮想マルチプロセッサ１００と、バス制御部５３０と、メモリＩ／Ｆ５１１と、Ｉ／Ｏ制御部５１２とを備える。なお、仮想マルチプロセッサ１００のみを１チップの半導体集積回路として形成してもよいし、仮想マルチプロセッサ１００と、仮想マルチプロセッサ１００、バス制御部５３０、及びメモリＩ／Ｆ５１１のうちいずれか１以上とを１チップの半導体集積回路として形成してもよい。
【０１１７】
仮想マルチプロセッサ１００は、実施の形態１で述べた仮想マルチプロセッサ１００である。
【０１１８】
メモリＩ／Ｆ５１１は、ＳＤＲＡＭ５２５へのデータ書き込み及び読み出しを行う。
【０１１９】
Ｉ／Ｏ制御部５１２は、高周波信号送受信部５２２、外部メモリ５２３及び入出力部５２４とのデータの入出力を制御する。
【０１２０】
バス制御部５３０は、仮想マルチプロセッサ１００、メモリＩ／Ｆ５１１及びＩ／Ｏ制御部５１２の間を接続するバスを制御する。
【０１２１】
次に、携帯電話機器５００において、外部メモリ５２３に蓄積される音楽データを再生する動作を説明する。
【０１２２】
まず、Ｉ／Ｏ制御部５１２は、外部メモリ５２３に蓄積される音楽データを読み出す。Ｉ／Ｏ制御部５１２は、メモリＩ／Ｆ５１１を介して、読み出した音楽データをＳＤＲＡＭ５２５に格納する。
【０１２３】
仮想マルチプロセッサ１００は、メモリＩ／Ｆ５１１及びバス制御部５３０を介して、ＳＤＲＡＭ５２５から音楽データを読み出す。仮想マルチプロセッサ１００は、読み出した音楽データに再生処理を行う。仮想マルチプロセッサ１００は、再生処理後のデータをＳＤＲＡＭ５２５に格納する。
【０１２４】
Ｉ／Ｏ制御部５１２は、ＳＤＲＡＭ５２５に格納された再生処理後のデータを、メモリＩ／Ｆ５１１を介して読み出す。Ｉ／Ｏ制御部５１２は、読み出した再生処理後のデータを入出力部５２４に送る。
【０１２５】
入出力部５２４は、Ｉ／Ｏ制御部５１２から送られた再生処理後のデータをスピーカから出音する。
【０１２６】
ここで、音楽データの再生処理を行っている間、仮想マルチプロセッサ１００は常に全てのＰＰを用いて処理を実行しているわけではなく、一部のプログラム（実施の形態１で説明したホスト処理プログラム）以外のプログラムを実行する必要がない期間がある。この期間、仮想マルチプロセッサ１００は稼動するＰＰを１個にし、当該ＰＰ上でホスト処理プログラムのみを実行させる。これにより、携帯電話機器５００の消費電力を削減できる。
【産業上の利用可能性】
【０１２７】
本発明は、仮想マルチプロセッサ、システムＬＳＩ、携帯電話機器、及び仮想マルチプロセッサの制御方法に適用でき、特に仮想マルチプロセッサを備える携帯電話機器等の移動体通信機器に適用できる。
【図面の簡単な説明】
【０１２８】
【図１】本発明の実施の形態１に係る仮想マルチプロセッサの構成を示すブロック図である。
【図２】本発明の実施の形態１に係る論理プロセッサ状態レジスタの構成を示す図である。
【図３】本発明の実施の形態１に係るクォンタムレジスタの構成を示す図である。
【図４】本発明の実施の形態１に係るスリープモードレジスタの構成を示す図である。
【図５】本発明の実施の形態１に係る論理プロセッサの状態遷移を示す図である。
【図６Ａ】通常モード時に、本発明の実施の形態１に係る物理プロセッサにアサインされる論理プロセッサの一例を示す図である。
【図６Ｂ】通常モード時に、本発明の実施の形態１に係る論理プロセッサの状態の一例を示す図である。
【図７Ａ】スリープモード時に、本発明の実施の形態１に係る物理プロセッサにアサインされる論理プロセッサの一例を示す図である。
【図７Ｂ】スリープモード時に、本発明の実施の形態１に係る論理プロセッサの状態の一例を示す図である。
【図８】本発明の実施の形態１に係る仮想マルチプロセッサの動作の流れを示すフローチャートである。
【図９】本発明の実施の形態１に係るＬＰ制御レジスタの構成を示す図である。
【図１０】本発明の実施の形態１に係るＰＰ制御レジスタの構成を示す図である。
【図１１】本発明の実施の形態２に係る携帯電話機器の構成を示すブロック図である。
【符号の説明】
【０１２９】
１００  仮想マルチプロセッサ
１１０  物理プロセッサ
１２０  クロック停止部
２００  ＶＭＰＣ
２１０  制御レジスタ
２１２  クォンタムレジスタ
２１３  スリープモードレジスタ
２２０  論理プロセッサ状態レジスタ
２３０  スケジューラ
２４０  コンテキスト転送制御部
２５０  コンテキストメモリ
２６０  ＬＰ制御レジスタ
２７０  ＰＰ制御レジスタ
５００  携帯電話機器
５１１  メモリＩ／Ｆ
５１２  Ｉ／Ｏ制御部
５２１  アンテナ
５２２  高周波信号送受信部
５２３  外部メモリ
５２４  入出力部
５２５  ＳＤＲＡＭ
５３０  バス制御部
【図１】
0004996519.tif 000002
【図２】
0004996519.tif 000003
【図３】
0004996519.tif 000004
【図４】
0004996519.tif 000005
【図５】
0004996519.tif 000006
【図６Ａ】
0004996519.tif 000007
【図６Ｂ】
0004996519.tif 000008
【図７Ａ】
0004996519.tif 000009
【図７Ｂ】
0004996519.tif 000010
【図８】
0004996519.tif 000011
【図９】
0004996519.tif 000012
【図１０】
0004996519.tif 000013
【図１１】
0004996519.tif 000014