JP4996519B2 - 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法 - Google Patents

仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法 Download PDF

Info

Publication number
JP4996519B2
JP4996519B2 JP2008084819A JP2008084819A JP4996519B2 JP 4996519 B2 JP4996519 B2 JP 4996519B2 JP 2008084819 A JP2008084819 A JP 2008084819A JP 2008084819 A JP2008084819 A JP 2008084819A JP 4996519 B2 JP4996519 B2 JP 4996519B2
Authority
JP
Japan
Prior art keywords
program
mode
programs
processor
processors
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.)
Expired - Fee Related
Application number
JP2008084819A
Other languages
English (en)
Other versions
JP2009238024A (ja
Inventor
正憲 逸見
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2008084819A priority Critical patent/JP4996519B2/ja
Priority to US12/411,563 priority patent/US20090249347A1/en
Publication of JP2009238024A publication Critical patent/JP2009238024A/ja
Application granted granted Critical
Publication of JP4996519B2 publication Critical patent/JP4996519B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は、仮想マルチプロセッサ、システムLSI、携帯電話機器、及び仮想マルチプロセッサの制御方法に関し、特に、複数のプログラムを切り替えながら実行する仮想マルチプロセッサに関する。
近年、携帯電話機器などの移動体通信機器の需要が急速に高まっている。これにより、移動体通信機器用のLSIの需要もますます高まっている。移動体通信機器は、主にバッテリーから電力が供給されるので、移動体通信機器用のLSIでは、消費電力を削減することが重要である。
一方、プロセッサ開発の分野において、近年、特に仮想化技術が注目されている。プロセッサの仮想化を実現する手段は数多く開発されている。中でもIntel社により開発されたCPUの仮想化支援機能であるIntel Virtualization Technologyがよく知られている。また、本発明に関連する技術としては、特許文献1記載の技術が知られている。特許文献1には、スレッドを作成及び破棄する際のオーバーヘッドを低減する技術が記載されている。
特表2007−504541号公報
しかしながら、上記の従来の技術には下記の問題点がある。
仮想マルチプロセッサ上で複数のプログラムを並列に実行する場合、通常、個々のプログラムを複数個実装されている物理プロセッサの中のどのプロセッサで実行させるかはハードウェアで構成されるスケジューラによって決定される。また、プログラムの実行の並列度を高めるという観点から、プログラムをどの物理プロセッサで実行するかは通常は指定しない。
ところで、例えば仮想マルチプロセッサ上で携帯電話用アプリケーションプログラムを実行する場合、当該アプリケーションプログラムは、ホスト処理プログラムとメディア処理プログラムとに分類される。
ホスト処理プログラムとは、主にシステム制御を行うプログラムであり、メディア処理プログラムとは、主に音声通話処理及び画像処理を行うプログラムである。
仮想マルチプロセッサは、メディア処理プログラムを休止する期間が発生した場合、ホスト処理プログラムだけを実行し続け、メディア処理プログラムを実行しない制御を行う。このメディア処理プログラムを休止する期間においては、仮想マルチプロセッサの処理量が少なくなるため、複数の物理プロセッサのうち一部の物理プロセッサの動作を停止する。具体的には、動作を停止する物理プロセッサへのクロックの供給が停止される。これによって、LSIの消費電力が削減される。
しかしながら、ホスト処理プログラム及びメディア処理プログラムが実行される物理プロセッサがハードウェアで構成されるスケジューラにより決定されるので、クロックの供給を停止する制御を低粒度で行うことが困難である。また、スケジューラは所定の時間毎にスケジューリングを行うので、一部の物理プロセッサの動作を停止する低電力モードに移行する際に、直ちにスケジューリングを行うことができない。つまり、従来の仮想マルチプロセッサでは、低電力モードに移行する際のオーバーヘッドが大きいという問題がある。
そこで、本発明は、低電力モードに移行する際のオーバーヘッドを削減できる仮想マルチプロセッサを提供することを目的とする。
上記目的を達成するために、本発明に係る仮想マルチプロセッサは、複数のプログラムを割り当て時間ごとに切り替えながら実行する1以上のプロセッサと、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定するスケジューリング部と、前記複数のプログラムのそれぞれに対する、前記割り当て時間を保持する割り当て時間レジスタと、第1モード又は第2モードが設定されるモードレジスタとを備え、前記スケジューリング部は、前記モードレジスタに前記第1モードが設定されている場合、前記1以上のプロセッサにより実行されているプログラムの前記割り当て時間に依存するタイミングで、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、前記モードレジスタに前記第2モードが設定されている場合、前記割り当て時間に依存しないタイミングで、前記1以上のプロセッサのうち少なくとも1つのプロセッサがプログラムを実行しないように、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定する。
この構成によれば、本発明に係る仮想マルチプロセッサが備えるスケジューリング部は第2モード(低電力モード)時には、プロセッサの一部にプログラムを実行させない。これにより、プログラムを実行していないプロセッサに対してクロックの供給を停止することで、消費電力を削減できる。例えば、本発明に係る仮想マルチプロセッサ上で携帯電話用アプリケーションプログラムを実行する場合、第2モードにおいては、スケジューリング部は、ホスト処理プログラムのみをプロセッサに実行させ、メディア処理を休止させることができる。
さらに、本発明に係る仮想マルチプロセッサは、第2モードへの移行時には、プログラムの割り当て時間に依存しないタイミングで、スケジューリングを行う。これにより、本発明に係る仮想マルチプロセッサは、第2モードへの移行時に直ちにスケジューリングを行えるので、第2モードに移行する際のオーバーヘッドを削減できる。
また、前記仮想マルチプロセッサは、さらに、前記モードレジスタに前記第2モードが設定されている場合、前記1以上のプロセッサのうち、プログラムを実行していないプロセッサへのクロックの供給を停止するクロック停止部を備えてもよい。
この構成によれば、本発明に係る仮想マルチプロセッサは、動作していないプロセッサに対してクロックの供給を停止することで、消費電力を削減できる。
また、前記1以上のプロセッサは、複数のプロセッサであり、前記スケジューリング部は、前記モードレジスタに前記第2モードが設定されている場合、前記複数のプロセッサの一部のみがプログラムを実行するように、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定してもよい。
また、前記スケジューリング部は、前記モードレジスタの設定が変更されたことを検知し、前記第1モードから前記第2モードに変更を検知した際に、前記割り当て時間に依存しないタイミングで、前記1以上のプロセッサのうち少なくとも1つのプロセッサがプログラムを実行しないように、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定してもよい。
また、前記スケジューリング部は、前記モードレジスタの設定が前記第1モードから前記第2モードに変更された際、前記複数のプロセッサに実行されているプログラムのうち一部のプログラムの実行を一時中断し、前記モードレジスタの設定が再度前記第1モードに変更された後に、一時中断した前記プログラムを優先して前記プロセッサに実行させてもよい。
この構成によれば、本発明に係る仮想マルチプロセッサは、第1モードから第2モードに遷移した後に、再び第1モードに遷移した場合に、元の第1モードで実行されていたプログラムを引き続き実行できる。
また、前記複数のプログラムは、1以上の第1プログラム及び1以上の第2プログラムを含み、前記スケジューリング部は、前記モードレジスタに前記第1モードが設定されている場合、前記1以上のプロセッサのそれぞれに、前記第1プログラム又は前記第2プログラムを実行させるように、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、前記モードレジスタの設定が前記第1モードから前記第2モードに変更された際、前記複数のプロセッサのうち前記第1プログラムを実行しているプロセッサに当該第1プログラムの実行を継続させ、前記複数のプロセッサのうち前記第2プログラムを実行しているプロセッサに当該第2プログラムの実行を一時中断させてもよい。
この構成によれば、第2モードが設定されている場合、スケジューリング部は、ホスト処理プログラム(第1プログラム)のみをプロセッサに実行させ、メディア処理プログラム(第2プログラム)を休止させることができる。
また、前記モードレジスタの設定は、前記複数のプロセッサにより実行される前記第1プログラムにより変更され、前記スケジューリング部は、前記モードレジスタの設定が前記第1モードから前記第2モードに変更された際、当該変更を行った第1プログラムを実行しているプロセッサに当該第1プログラムの実行を継続させ、当該第1プログラム以外のプログラムを実行しているプロセッサに当該プログラムの実行を一時中断させてもよい。
この構成によれば、本発明に係る仮想マルチプロセッサは、第2モードにおいて、ホスト処理プログラムのみを実行できる。
また、前記仮想マルチプロセッサは、さらに、複数の前記第1プログラムのそれぞれに対し第1の値又は第2の値が設定されるプログラム設定レジスタを備え、前記スケジューリング部は、前記モードレジスタに前記第2モードが設定されている場合、前記複数のプロセッサの一部のみに、前記複数の第1プログラムのうち前記第1の値が設定されている前記プログラム設定レジスタに対応する複数の第1プログラムを切り替えながら実行させてもよい。
この構成によれば、本発明に係る仮想マルチプロセッサは、第2モードにおいて、複数のホスト処理プログラムを実行できる。
また、前記仮想マルチプロセッサは、さらに、複数の前記第1プログラムのそれぞれに対し第1の値又は第2の値が設定されるプログラム設定レジスタと、前記複数のプロセッサのうち前記第2モード時にプログラムを実行するプロセッサの数が設定されるプロセッサ数レジスタとを備え、前記スケジューリング部は、前記モードレジスタに前記第2モードが設定されている場合、前記プロセッサ数レジスタに設定された前記数のプロセッサに、前記複数の第1プログラムのうち前記第1の値が設定されている前記プログラム設定レジスタに対応する前記複数の第1プログラムを実行させてもよい。
この構成によれば、本発明に係る仮想マルチプロセッサは、第2モードにおいて、複数のホスト処理プログラムを並列に複数のプロセッサで実行できる。
また、前記1以上のプロセッサは、1個のプロセッサであり、前記スケジューリング部は、前記モードレジスタに前記第2モードが設定されている場合、前記1個のプロセッサにプログラムを実行させなくてもよい。
また、本発明に係るシステムLSIは、前記仮想マルチプロセッサを備える。
また、本発明に係る携帯電話機器は、前記システムLSIを備える。
また、本発明に係る仮想マルチプロセッサの制御方法は、複数のプログラムを割り当て時間ごとに切り替えながら実行する1以上のプロセッサと、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定するスケジューリング部と、前記複数のプログラムのそれぞれに対する、前記割り当て時間を保持する割り当て時間レジスタと、第1モード又は第2モードが設定されるモードレジスタとを備える仮想マルチプロセッサの制御方法であって、前記スケジューリング部は、前記モードレジスタに前記第1モードが設定されている場合、前記1以上のプロセッサにより実行されているプログラムの前記割り当て時間に依存するタイミングで、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、前記スケジューリング部は、前記モードレジスタに前記第2モードが設定されている場合、前記割り当て時間に依存しないタイミングで、前記1以上のプロセッサのうち少なくとも1つのプロセッサがプログラムを実行しないように、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定する。
なお、本発明は、このような仮想マルチプロセッサとして実現できるだけでなく、仮想マルチプロセッサに含まれる特徴的な手段をステップとする仮想マルチプロセッサの制御方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
以上より、本発明は、低電力モードに移行する際のオーバーヘッドを削減できる仮想マルチプロセッサ、システムLSI、携帯電話機器、及び仮想マルチプロセッサの制御方法を提供できる。
以下、本発明に係る仮想マルチプロセッサの実施の形態について、図面を参照しながら詳細に説明する。
(実施の形態1)
本発明の実施の形態1に係る仮想マルチプロセッサでは、通常モード時には、スケジューラが複数のプロセッサの全てに、ホスト処理プログラム又はメディア処理プログラムを実行させ、低電力モード時には、スケジューラが複数のプロセッサの一部にホスト処理プログラムのみを実行させる。
これにより、本発明の実施の形態1に係る仮想マルチプロセッサは、低粒度でクロック制御を行えるので、低電力モードに移行する際のオーバーヘッドを削減できる。
まず、本発明の実施の形態1に係る仮想マルチプロセッサの構成を説明する。
図1は、本発明の実施の形態1に係る仮想マルチプロセッサの構成を示す機能ブロック図である。
図1に示す仮想マルチプロセッサ100は、複数のプログラムを並列に実行可能である。仮想マルチプロセッサ100は、例えば、携帯電話用アプリケーションプログラムを実行する。また、仮想マルチプロセッサ100は、消費電力を抑制した低電力モードであるスリープモードと、通常の消費電力で動作を行う通常モードとを有する。
仮想マルチプロセッサ100は、複数の物理プロセッサ110と、仮想マルチプロセッサコントローラ(以下、VMPC)200と、クロック停止部120とを備える。
複数の物理プロセッサ110(以下、PPとも記す。また、仮想マルチプロセッサ100が備える3つのPPをそれぞれPP0〜PP2と記す。)は、複数のプログラムを並列に実行する。また、複数の物理プロセッサ110は、複数のプログラムを一定時間ごとに切り替えながら実行する。
このとき、各プログラムからはそれぞれが仮想的に1つの独立したプロセッサで実行されるように見える。この仮想的なプロセッサを論理プロセッサ(以下、LP)という。1つのプログラムは1つのLP上で実行される。1つのプログラムがPP上で実行されるとき、当該プログラムに対応するLPがPPにアサインされるという。
LPは、実行状態(running状態)と、実行可能状態(ready状態)と、イベント待ち状態(waiting状態)と、実行可能な中断状態(suspended ready状態)と、イベント待ちかつ中断状態(suspended ready状態)との5つの動作状態をもつ。
running状態は、プログラムがPP上で実行されている状態である。ready状態は、プログラムを実行可能であるが、当該プログラムを実行するPPが存在しないために待機している状態である。waiting状態は、なんらかの外部イベント(DMA転送の完了など)を待つ状態である。suspended ready状態は、プログラムの実行が外部イベントにより一時的に中断されている状態である。suspended waiting状態はプログラムの実行が外部イベントにより一時的に中断され、かつ外部イベントを待つ状態である。
VMPC200は、物理プロセッサ110によるプログラムの実行を制御する。VMPC200は、制御レジスタ210と、論理プロセッサ状態レジスタ220と、スケジューラ230と、コンテキスト転送制御部240と、コンテキストメモリ250とを備える。
論理プロセッサ状態レジスタ220は、LPの状態を管理するためのレジスタである。図2は、論理プロセッサ状態レジスタ220の構成を示す図である。
論理プロセッサ状態レジスタ220は、32個のレジスタLP0SR、LP1SR、・・・、LP31SRを含む。それぞれのレジスタLPnSR(n=0−31。またnをLPのIDという)は、LPがアサインされたPPを特定する情報と、当該LPの動作状態とを保持する。
レジスタLPnSRの第0から第2ビットは、LPの動作状態を示す。レジスタLPnSRの第3ビットから第4ビットは、対応するLPがどのPPにアサインされているかを示す。また、LPのIDにより優先度が管理される。例えば、IDが小さいLPほど優先度が高く、かつ実行が完了したプログラムに対応するLPの優先度は最低に設定される。
論理プロセッサ状態レジスタ220は、スケジューラ230により更新される。
制御レジスタ210は、スケジューラ230を制御するためのレジスタである。制御レジスタ210は、クォンタムレジスタ212と、スリープモードレジスタ213とを備える。
クォンタムレジスタ212は、32個のレジスタLPnQTMR(n=0−31)を含む。
図3は、クォンタムレジスタ212の構成を示す図である。各レジスタLPnQTMRは、対応するLPのクォンタム時間を保持する。クォンタム時間は、ユーザが各プログラムに付与した固有の時間であり、各LPに対応するプログラムがPPで実行される時間である。言い換えると、クォンタム時間は、PPにLPが割り当てられる時間である。また、クォンタムレジスタ212により保持されるクォンタム時間は、PPで実行されるプログラムにより設定される。
スケジューラ230は、LPに対応するプログラムの実行時間が、当該LPに対応するクォンタム時間に等しくなったときに、予めスケジューリングした他のLPをPPにアサインすることにより、実行するプログラムを切り替える。具体的には、スケジューラ230は、プログラムの実行時間をカウントし、カウント値がクォンタム時間に等しくなったときにLPを切り替える。
スリープモードレジスタ213は、スリープモード及び通常モードのうちいずれかが設定されるレジスタである。スリープモードレジスタ213は、PPで実行されるプログラムにより更新される。つまり、スリープモードレジスタ213は、PPで実行されるプログラムが、通常モードからスリープモードに遷移することを要求するためのレジスタである。
図4は、スリープモードレジスタ213の構成を示す図である。例えば、スリープモードレジスタ213の第0ビットに1が保持されているとスリープモードであることを示し、0が保持されていると通常モードであることを示す。スリープモードレジスタ213の第0ビットに1が書き込まれると、スケジューラ230はスリープモードに遷移するためのスケジューリングを行う。
スケジューラ230は、複数のプログラムの優先度に従い、複数のプログラムの実行順序、及びプログラムを実行するPPを決定するスケジューリングを行う。
通常モード時には、スケジューラ230は、複数のPPにより実行されているプログラムのうちいずれかのクォンタム時間に依存するタイミングで、スケジューリングを行う。具体的には、スケジューラ230は、プログラムの実行時間がクォンタム時間に等しくなる時刻から所定の時間前のタイミングで、スケジューリングを行い、当該プログラムの実行時間がクォンタム時間に等しくなった後に、PPにより実行されるプログラムを切り替える。スケジューラ230は、動作状態が実行可能状態であるLPのうち優先度が高いLPを、プログラムの実行時間がクォンタム時間に等しくなったPPに実行させるように、スケジューリングを行う。
通常モード時には、スケジューラ230は、PPのそれぞれに、プログラムを実行させる。つまり、スケジューラ230は、PPにアサインされた全てのLPの動作状態を実行状態に設定する。
スリープモード時には、スケジューラ230は、複数のPPの一部のみにホスト処理プログラムを実行させる。また、スケジューラ230は、PPにメディア処理プログラムを実行させない。つまり、スケジューラ230は、複数のPPのうち少なくとも1つのPPがプログラムを実行しないようにスケジューリングを行う。
スケジューラ230は、PPにアサインされているホスト処理プログラムを実行するLPの動作状態を実行状態に設定し、PPにアサインされているメディア処理プログラムに対応するLPの動作状態をsuspended ready状態に設定する。ここで、スケジューラ230は、メディア処理プログラムを実行するLPのうちでsuspended ready状態又はready状態であるものが存在し、かつ、LPがアサインされていないPPが存在する場合でも、メディア処理プログラムを実行するLPをPPにアサインしない。
また、スケジューラ230は、動作モードが通常モードからスリープモードに変更された際に、クォンタム時間に依存しないタイミングで、スケジューリングを行う。言い換えると、スケジューラ230は、スリープモードレジスタ213の設定が変更されたタイミングに依存するタイミングで、スケジューリングを行う。
コンテキストメモリ250は、LPで用いられるコンテキストを記憶する。コンテキストとは、プログラムを実行するために必要な制御情報及びデータ情報等である。
コンテキスト転送制御部240は、実行が完了したプログラムのコンテキストをコンテキストメモリ250に書き込む。また、コンテキスト転送制御部240は、実行されるプログラムのコンテキストをコンテキストメモリ250から読み出し、読み出したコンテキストを当該プログラムに対応するLPがアサインされたPPに転送する。
クロック停止部120は、スリープモードにおいて、複数のPPのうちLPがアサインされていないPPへのクロックの供給を停止する。
図5は、LPの状態遷移を示す図である。当該状態遷移はスケジューラ230により行われる。
次に、本発明の実施の形態1に係る仮想マルチプロセッサ100の動作を説明する。
まず、通常モード時の仮想マルチプロセッサ100の動作を説明する。
図6Aは、通常モード時の各PPにアサインされるLPの一例を示す図である。図6Bは、LPの状態の一例を示す図である。
時刻T1より前において、PP0、PP1及びPP2にはそれぞれLP0、LP1及びLP2がアサインされている。なお、LP0〜LP2で実行されるプログラムは、ホスト処理プログラムであっても、メディア処理プログラムであってもよい。
時刻T1においてLP0で実行されていたプログラムの実行が終了する。スケジューラ230は、時刻T1より所定の時間前の時刻T0において、スケジューリングを開始する。
この実施例ではスケジューリングの優先度は、ラウンドロビン方式を用いて決定されるものとする。つまり、IDが小さいLPほど優先度が高く、かつ実行が完了したプログラムに対応するLPの優先度は最低に設定される。
したがって、LP0の割り当て時間が終了したのち、ready状態のLPの中で次に最も優先度が高いLPはLP3である。よって、スケジューラ230は、LP0の次にPP0にアサインするLPをLP3と決定する。また、スケジューラ230は、次にPP0にアサインするLPがLP3であることをコンテキスト転送制御部240に通知する。
コンテキスト転送制御部240は、コンテキストメモリ250からLP3のコンテキストを読み出し、読み出したコンテキストをPP0に転送する。
ここで、PP0〜PP2は、それぞれ2つのコンテキストを保持可能である。これにより、コンテキスト切り替えの際のオーバーヘッドが低減される。
また、時刻T1で、VMPC200は、PP0にLP0の実行時間が割り当て時間に等しくなったことを通知する。PP0は、コンテキスト転送制御部240により転送されたLP3のコンテキストを用いてLP3に対応するプログラムの実行を開始する。
次に、通常モードからスリープモードに遷移するときの仮想マルチプロセッサ100の動作を説明する。
図7Aは、通常モード及びスリープモードの遷移時において、各PPにアサインされるLPを示す図である。図7Bは、スリープモードに遷移するときの各LPの状態を示す図である。ここでは、LP0上で実行されるプログラムはホスト処理プログラムであり、LP1及びLP2上で実行されるプログラムはメディア処理プログラムであるとする。
ホスト処理プログラム上でスリープモードに遷移することが決定されたとき、LP0で実行中のプログラムの特権レベルは、ユーザレベルからシステムレベルに遷移する。
PP0上のシステムレベルのプログラムにより、時刻T2において、スリープモードレジスタ213の第0ビットに1が書き込まれる。スケジューラ230は、スリープモードレジスタ213の設定が変更されたことを検出し、スケジューリングを開始する。また、このとき、スケジューラ230はスリープモードレジスタ213にアクセスしたPPを検出し(この例ではPP0)、PP0以外のPPにアサインされているLPすなわちLP1とLP2とをsuspended ready状態にする。また、スケジューラ230は、PP0にLP0をアサインし、実行を続けさせる。
スケジューリング開始時刻に到達したとき(時刻T3及び時刻T4)、スケジューラ230は、PP0にLP0を再度アサインし、PP1及びPP2にはready状態及びsuspended ready状態のLPが存在するにもかかわらず、アサインしない。
時刻T5で、PP0によりスリープモードレジスタ213の第0ビットに0が書き込まれ、スケジューラ230が起動する。スケジューラ230は、PP1及びPP2に、直前にアサインされていたLP1とLP2とをそれぞれアサインし、PP0〜PP2にプログラムの実行を開始させる。つまり、スケジューラ230は、スリープモードレジスタ213の設定が再度通常モードに変更された後に、スリープモードの移行時に一時中断したLPを優先してPPに実行させる。
一方、時刻T2から時刻T5において、クロック停止部120は、PP1及びPP2へのクロック供給を停止する。
図8は、通常モード時及びスリープモード時のスケジューリング動作の流れを示すフローチャートである。
まず、スケジューラ230が起動される(S101)。具体的には、PPで実行されているプログラムの実行時間がクォンタム時間に一致する時刻より所定の時間前の時刻、及びスリープモードレジスタ213に保持される値が変更された際に、スケジューラ230が起動される。
次に、スケジューラ230は、スリープモードレジスタ213に保持される値が1であるか0であるかを判定する(S102)。スリープモードレジスタ213に保持される値が0の場合(S102でNo)、つまり通常モード時には、ready状態、及びsuspended ready状態のLPのうち優先度の高いLPを、割り当て時間が終了するプログラムを実行していたPPにアサインする(S103)。
次に、スケジューラ230が停止される(S104)。
一方、スリープモードレジスタ213に保持される値が1の場合(S102でYes)、つまり通常モードからスリープモードに変更された際には、スケジューラ230は、当該変更を行ったプログラム以外のプログラムの実行を一時中断する。つまり、スケジューラ230は、PPに実行されているプログラムのうちメディア処理プログラムの実行を一時中断する。
具体的には、まず、スケジューラ230は、スリープモードレジスタ213に1を書き込んだLPのID及びPPのIDを取得し、保持する(S105)。つまり、スケジューラ230は、ホスト処理プログラムを実行しているLPのID及び当該LPがアサインされているPPのIDを取得し、保持する。
次に、スケジューラ230は、ステップS105で取得したIDのLP以外のrunning状態のLPの動作状態をsuspended ready状態にする(S106)。このとき、ステップS105で取得したIDのLP以外のrunning状態のLPが仮想マルチプロセッサ100の外部にアクセス中の場合は、スケジューラ230は、アクセスが完了するまで待ち、アクセス完了後に、当該LPの動作状態をsuspended ready状態に変更する。
また、スケジューラ230は、ステップS105で取得したPPのIDのPPに、同じく取得したLPのIDのLPをアサインし、実行を続けさせる(S107)。
次に、スケジューラ230が停止される(S104)。
以上より、本発明の実施の形態1に係る仮想マルチプロセッサ100では、スリープモード時には、スケジューラ230は、複数のPPのうち一部のPPにホスト処理プログラムを実行させ、他のPPにはメディア処理プログラムの実行を一時中断させる。これにより、プログラムを実行していないPPに対してクロックの供給を停止することで、消費電力を削減できる。
また、仮想マルチプロセッサ100では、通常モードからスリープモードへの移行時には、クォンタム時間に依存しないタイミングで、スリープモード時のスケジューリングを行う。これにより、仮想マルチプロセッサ100は、スリープモードへの移行時に直ちにスケジューリングを行えるので、スリープモードに移行する際のオーバーヘッドを削減できる。また、仮想マルチプロセッサ100は、物理プロセッサ110へのクロックの供給又は停止の制御を低粒度で行えるので、極めて高い消費電力削減効果を実現できる。
以上、本発明の実施の形態1に係る仮想マルチプロセッサ100について説明したが、本発明は、この実施の形態に限定されるものではない。
例えば、上記説明において、スリープモード時には、ホスト処理プログラムを実行する1つのLPのみが1つのPPにアサインされ、実行される例を示したが、ホスト処理プログラムを実行する2以上のLPが切り替えられながら1つのPPにアサインされてもよい。
この場合、VMPC200は、図1に示す構成に加えて、さらに、LP制御レジスタ260を備えればよい。図9は、LP制御レジスタ260の構成を示す図である。
LP制御レジスタ260は、スリープモード時に実行される複数のホスト処理プログラムが設定されるレジスタである。LP制御レジスタ260は、32個のレジスタLPnCTLR(n=0−31)を含む。各レジスタLPnCTLRの第0ビットには、グループIDが設定される。グループIDは、当該LPをスリープモード時に実行するか否かを示す情報である。具体的には、ホスト処理プログラムを実行するLPに対応するレジスタLPnCTLRにはグループID=0が設定される。一方、メディア処理プログラムを行うLPに対応するレジスタLPnCTLRにはグループID=1が設定される。
スリープモード時には、スケジューラ230は、グループID=0が設定された複数のLPに対応するプログラムを、1つのPPに切り替えながら実行させる。また、スケジューラ230は、グループID=1が設定されたLPをsuspended ready状態にし、当該LPに対するプログラムをPPに実行させない。
また、複数のPPがホスト処理プログラムを並列に実行しているときにスリープモードレジスタ213に1が書き込こまれた場合、スケジューラ230は、当該ホスト処理プログラムの処理を完了させたのちに、グループID=0が設定された複数のLPに対応するプログラムを、1つのPPに切り替えながら実行させる。
これにより、ホスト処理プログラムが複数のLP上で実行される場合においても同様の効果を得られる。
また、上記説明では、スリープモード時には、1つのPPのみがプログラムを実行するとしたが、2以上のPPがプログラムを実行してもよい。つまり、仮想マルチプロセッサ100が備える複数のPPのうち一部のみがプログラムを実行すればよい。
この場合、VMPC200は、さらに、PP制御レジスタ270を備えればよい。図10は、PP制御レジスタ270の構成を示す図である。
PP制御レジスタ270は、スリープモード時に動作させるPPの数が設定されるレジスタである。
スリープモード時には、スケジューラ230は、PP制御レジスタ270に設定されたPPの数分のPPにそれぞれLPをマッピングする。
これにより、スリープモード時に、複数のホスト処理プログラムを並列に複数のPP上で実行できる。
また、上記説明において、スリープモード時に実行するプログラムは携帯電話用アプリケーションプログラムに含まれるホスト処理プログラムとしたが、本発明はこれに限定されるものでない。
また、上記説明において、仮想マルチプロセッサ100は、3つのPPを備えるとしたが、1以上のPPを備えればよい。また、仮想マルチプロセッサ100が1つのPPのみを備える場合には、スリープモードにおいては、スケジューラ230は、当該1つのPPのLPをsuspended ready状態にし、プログラムを実行させない。また、クロック停止部120は、当該1つのPPへのクロックの供給を停止する。
(実施の形態2)
本発明の実施の形態2では、上述した実施の形態1に係る仮想マルチプロセッサ100を備える携帯電話機器について説明する。
まず、本発明の実施の形態2に係る携帯電話機器500の構成を説明する。
図11は、本発明の実施の形態2に係る携帯電話機器500の構成を示す機能ブロック図である。携帯電話機器500は、音楽再生機能付き携帯電話機器である。
図11に示す携帯電話機器500は、システムLSI510と、アンテナ521と、高周波信号送受信部522と、外部メモリ523と、入出力部524と、SDRAM525とを備える。
高周波信号送受信部522は、アンテナ521を介して、通話データ等を送受信する。
外部メモリ523は、音楽データを蓄積する。
入出力部524は、スピーカを内蔵した受話器である。
SDRAM525は、再生を行う音楽データ及び再生処理後の音楽データ等を一時格納する。
システムLSI510は、例えば、1チップの半導体集積回路である。システムLSI510は、仮想マルチプロセッサ100と、バス制御部530と、メモリI/F511と、I/O制御部512とを備える。なお、仮想マルチプロセッサ100のみを1チップの半導体集積回路として形成してもよいし、仮想マルチプロセッサ100と、仮想マルチプロセッサ100、バス制御部530、及びメモリI/F511のうちいずれか1以上とを1チップの半導体集積回路として形成してもよい。
仮想マルチプロセッサ100は、実施の形態1で述べた仮想マルチプロセッサ100である。
メモリI/F511は、SDRAM525へのデータ書き込み及び読み出しを行う。
I/O制御部512は、高周波信号送受信部522、外部メモリ523及び入出力部524とのデータの入出力を制御する。
バス制御部530は、仮想マルチプロセッサ100、メモリI/F511及びI/O制御部512の間を接続するバスを制御する。
次に、携帯電話機器500において、外部メモリ523に蓄積される音楽データを再生する動作を説明する。
まず、I/O制御部512は、外部メモリ523に蓄積される音楽データを読み出す。I/O制御部512は、メモリI/F511を介して、読み出した音楽データをSDRAM525に格納する。
仮想マルチプロセッサ100は、メモリI/F511及びバス制御部530を介して、SDRAM525から音楽データを読み出す。仮想マルチプロセッサ100は、読み出した音楽データに再生処理を行う。仮想マルチプロセッサ100は、再生処理後のデータをSDRAM525に格納する。
I/O制御部512は、SDRAM525に格納された再生処理後のデータを、メモリI/F511を介して読み出す。I/O制御部512は、読み出した再生処理後のデータを入出力部524に送る。
入出力部524は、I/O制御部512から送られた再生処理後のデータをスピーカから出音する。
ここで、音楽データの再生処理を行っている間、仮想マルチプロセッサ100は常に全てのPPを用いて処理を実行しているわけではなく、一部のプログラム(実施の形態1で説明したホスト処理プログラム)以外のプログラムを実行する必要がない期間がある。この期間、仮想マルチプロセッサ100は稼動するPPを1個にし、当該PP上でホスト処理プログラムのみを実行させる。これにより、携帯電話機器500の消費電力を削減できる。
本発明は、仮想マルチプロセッサ、システムLSI、携帯電話機器、及び仮想マルチプロセッサの制御方法に適用でき、特に仮想マルチプロセッサを備える携帯電話機器等の移動体通信機器に適用できる。
本発明の実施の形態1に係る仮想マルチプロセッサの構成を示すブロック図である。 本発明の実施の形態1に係る論理プロセッサ状態レジスタの構成を示す図である。 本発明の実施の形態1に係るクォンタムレジスタの構成を示す図である。 本発明の実施の形態1に係るスリープモードレジスタの構成を示す図である。 本発明の実施の形態1に係る論理プロセッサの状態遷移を示す図である。 通常モード時に、本発明の実施の形態1に係る物理プロセッサにアサインされる論理プロセッサの一例を示す図である。 通常モード時に、本発明の実施の形態1に係る論理プロセッサの状態の一例を示す図である。 スリープモード時に、本発明の実施の形態1に係る物理プロセッサにアサインされる論理プロセッサの一例を示す図である。 スリープモード時に、本発明の実施の形態1に係る論理プロセッサの状態の一例を示す図である。 本発明の実施の形態1に係る仮想マルチプロセッサの動作の流れを示すフローチャートである。 本発明の実施の形態1に係るLP制御レジスタの構成を示す図である。 本発明の実施の形態1に係るPP制御レジスタの構成を示す図である。 本発明の実施の形態2に係る携帯電話機器の構成を示すブロック図である。
符号の説明
100 仮想マルチプロセッサ
110 物理プロセッサ
120 クロック停止部
200 VMPC
210 制御レジスタ
212 クォンタムレジスタ
213 スリープモードレジスタ
220 論理プロセッサ状態レジスタ
230 スケジューラ
240 コンテキスト転送制御部
250 コンテキストメモリ
260 LP制御レジスタ
270 PP制御レジスタ
500 携帯電話機器
511 メモリI/F
512 I/O制御部
521 アンテナ
522 高周波信号送受信部
523 外部メモリ
524 入出力部
525 SDRAM
530 バス制御部

Claims (13)

  1. 複数のプログラムを割り当て時間ごとに切り替えながら実行する以上のプロセッサと、
    前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定するスケジューリング部と、
    前記複数のプログラムのそれぞれに対する、前記割り当て時間を保持する割り当て時間レジスタと、
    第1モード又は第2モードが設定されるモードレジスタとを備え、
    前記スケジューリング部は、前記モードレジスタに前記第1モードが設定されている場合、前記以上のプロセッサにより実行されているプログラムの前記割り当て時間に依存するタイミングで、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、前記モードレジスタに前記第2モードが設定されている場合、前記割り当て時間に依存しないタイミングで、前記以上のプロセッサのうち少なくとも1つのプロセッサがプログラムを実行しないように、前記複数のプログラムのうち前記少なくとも1つのプロセッサで実行しない前記プログラムを除いた1以上のプログラムの実行順序、及びプログラムを実行するプロセッサを決定する
    前記仮想マルチプロセッサは、さらに、
    前記モードレジスタに前記第2モードが設定されている場合、前記2以上のプロセッサのうち、プログラムを実行していないプロセッサへのクロックの供給を停止するクロック停止部を備える
    ことを特徴とする仮想マルチプロセッサ。
  2. 前記スケジューリング部は、前記モードレジスタの設定が変更されたことを検知し、前記第1モードから前記第2モードに変更を検知した際に、前記割り当て時間に依存しないタイミングで、前記以上のプロセッサのうち少なくとも1つのプロセッサがプログラムを実行しないように、前記複数のプログラムのうち前記少なくとも1つのプロセッサで実行しない前記プログラムを除いた1以上のプログラムの実行順序、及びプログラムを実行するプロセッサを決定する
    ことを特徴とする請求項に記載の仮想マルチプロセッサ。
  3. 前記スケジューリング部は、前記モードレジスタの設定が前記第1モードから前記第2モードに変更された際、前記2以上のプロセッサに実行されているプログラムのうち一部のプログラムの実行を一時中断し、前記モードレジスタの設定が再度前記第1モードに変更された後に、一時中断した前記プログラムを優先して前記プロセッサに実行させる
    ことを特徴とする請求項に記載の仮想マルチプロセッサ。
  4. 前記複数のプログラムは、1以上の第1プログラム及び1以上の第2プログラムを含み、
    前記スケジューリング部は、前記モードレジスタに前記第1モードが設定されている場合、前記以上のプロセッサのそれぞれに、前記第1プログラム又は前記第2プログラムを実行させるように、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、前記モードレジスタの設定が前記第1モードから前記第2モードに変更された際、前記2以上のプロセッサのうち前記第1プログラムを実行しているプロセッサに当該第1プログラムの実行を継続させ、前記2以上のプロセッサのうち前記第2プログラムを実行しているプロセッサに当該第2プログラムの実行を一時中断させる
    ことを特徴とする請求項又はに記載の仮想マルチプロセッサ。
  5. 前記モードレジスタの設定は、前記2以上のプロセッサにより実行される前記第1プログラムにより変更され、
    前記スケジューリング部は、前記モードレジスタの設定が前記第1モードから前記第2モードに変更された際、当該変更を行った第1プログラムを実行しているプロセッサに当該第1プログラムの実行を継続させ、当該第1プログラム以外のプログラムを実行しているプロセッサに当該プログラムの実行を一時中断させる
    ことを特徴とする請求項に記載の仮想マルチプロセッサ。
  6. 前記仮想マルチプロセッサは、さらに、
    複数の前記第1プログラムのそれぞれに対し第1の値又は第2の値が設定されるプログラム設定レジスタを備え、
    前記スケジューリング部は、前記モードレジスタに前記第2モードが設定されている場合、前記2以上のプロセッサの一部のみに、前記複数の第1プログラムのうち前記第1の値が設定されている前記プログラム設定レジスタに対応する複数の第1プログラムを切り替えながら実行させる
    ことを特徴とする請求項に記載の仮想マルチプロセッサ。
  7. 前記仮想マルチプロセッサは、さらに、
    複数の前記第1プログラムのそれぞれに対し第1の値又は第2の値が設定されるプログラム設定レジスタと、
    前記2以上のプロセッサのうち前記第2モード時にプログラムを実行するプロセッサの数が設定されるプロセッサ数レジスタとを備え、
    前記スケジューリング部は、前記モードレジスタに前記第2モードが設定されている場合、前記プロセッサ数レジスタに設定された前記数のプロセッサに、前記複数の第1プログラムのうち前記第1の値が設定されている前記プログラム設定レジスタに対応する複数の第1プログラムを実行させる
    ことを特徴とする請求項に記載の仮想マルチプロセッサ。
  8. 請求項1〜のいずれか1項に記載の仮想マルチプロセッサを備える
    ことを特徴とするシステムLSI。
  9. 請求項記載のシステムLSIを備える
    ことを特徴とする携帯電話機器。
  10. 複数のプログラムを割り当て時間ごとに切り替えながら実行する以上のプロセッサと、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定するスケジューリング部と、前記複数のプログラムのそれぞれに対する、前記割り当て時間を保持する割り当て時間レジスタと、第1モード又は第2モードが設定されるモードレジスタと、前記2以上のプロセッサへのクロックの供給を停止するクロック停止部を備える仮想マルチプロセッサの制御方法であって、
    前記スケジューリング部は、前記モードレジスタに前記第1モードが設定されている場合、前記以上のプロセッサにより実行されているプログラムの前記割り当て時間に依存するタイミングで、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、
    前記スケジューリング部は、前記モードレジスタに前記第2モードが設定されている場合、前記割り当て時間に依存しないタイミングで、前記2以上のプロセッサのうち少なくとも1つのプロセッサがプログラムを実行しないように、前記複数のプログラムのうち前記少なくとも1つのプロセッサで実行しない前記プログラムを除いた1以上のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、
    前記クロック停止部は、前記モードレジスタに前記第2モードが設定されている場合、前記2以上のプロセッサのうち、プログラムを実行していないプロセッサへのクロックの供給を停止する
    ことを特徴とする仮想マルチプロセッサの制御方法。
  11. 少なくとも第1モード及び第2モードに設定可能な仮想マルチプロセッサであって、
    複数のプログラムを割り当て時間ごとに切り替えながら実行する2以上のプロセッサと、
    前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定するスケジューリング部と、
    前記2以上のプロセッサのうち、少なくとも1つのプロセッサへのクロックの供給を停止するクロック停止部とを備え、
    前記スケジューリング部は、
    前記第1モードが設定されている場合、前記2以上のプロセッサにより実行されているプログラムの前記割り当て時間に依存するタイミングで、前記複数のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、
    前記第2モードが設定されている場合、前記割り当て時間に依存しないタイミングで、前記2以上のプロセッサのうち少なくとも1つのプロセッサがプログラムを実行しないように、前記複数のプログラムのうち前記少なくとも1つのプロセッサで実行しない前記プログラムを除いた1以上のプログラムの実行順序、及びプログラムを実行するプロセッサを決定し、
    前記クロック停止部は、前記第2モードが設定されている場合、前記2以上のプロセッサのうち、プログラムを実行していないプロセッサへのクロックの供給を停止する
    ことを特徴とする仮想マルチプロセッサ。
  12. 前記仮想マルチプロセッサのモード設定は、前記2以上のプロセッサのいずれかに実行されるプログラムにより変更され、
    前記スケジューリング部は、前記仮想マルチプロセッサのモード設定が前記第1モードから前記第2モードに変更された後、
    当該変更を行ったプログラムを実行しているプロセッサに当該プログラムの実行を継続させ、
    当該プログラム以外のプログラムを実行しているプロセッサに実行中のプログラムを一時的に中断させる
    ことを特徴とする請求項11に記載の仮想マルチプロセッサ。
  13. 前記スケジューリング部は、前記仮想マルチプロセッサモード設定が、前記第1モードから前記第2モードに変更され、再度前記第1モードに変更された後に、一時中断した前記プログラムを優先して前記プロセッサに実行させる
    ことを特徴とする請求項12に記載の仮想マルチプロセッサ。
JP2008084819A 2008-03-27 2008-03-27 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法 Expired - Fee Related JP4996519B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008084819A JP4996519B2 (ja) 2008-03-27 2008-03-27 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法
US12/411,563 US20090249347A1 (en) 2008-03-27 2009-03-26 Virtual multiprocessor, system lsi, mobile phone, and control method for virtual multiprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008084819A JP4996519B2 (ja) 2008-03-27 2008-03-27 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法

Publications (2)

Publication Number Publication Date
JP2009238024A JP2009238024A (ja) 2009-10-15
JP4996519B2 true JP4996519B2 (ja) 2012-08-08

Family

ID=41119126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008084819A Expired - Fee Related JP4996519B2 (ja) 2008-03-27 2008-03-27 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法

Country Status (2)

Country Link
US (1) US20090249347A1 (ja)
JP (1) JP4996519B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009251802A (ja) * 2008-04-03 2009-10-29 Panasonic Corp マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8650426B2 (en) * 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US20110145559A1 (en) * 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
US8689037B2 (en) 2009-12-16 2014-04-01 Qualcomm Incorporated System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8909962B2 (en) * 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9128705B2 (en) * 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US9563250B2 (en) 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US8775830B2 (en) 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
JP5681527B2 (ja) * 2011-02-28 2015-03-11 パナソニックIpマネジメント株式会社 電力制御装置及び電力制御方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325526A (en) * 1992-05-12 1994-06-28 Intel Corporation Task scheduling in a multicomputer system
JPH0954699A (ja) * 1995-08-11 1997-02-25 Fujitsu Ltd 計算機のプロセススケジューラ
US5987492A (en) * 1997-10-31 1999-11-16 Sun Microsystems, Inc. Method and apparatus for processor sharing
JPH11215043A (ja) * 1998-01-21 1999-08-06 Toshiba Corp 通信端末装置
JP4278884B2 (ja) * 2001-03-29 2009-06-17 株式会社リコー 通信機能を有する画像形成装置およびその制御方法
JP3813930B2 (ja) * 2002-01-09 2006-08-23 松下電器産業株式会社 プロセッサ及びプログラム実行方法
JP2003319390A (ja) * 2002-04-25 2003-11-07 Hitachi Ltd 画像再生端末装置
US7376954B2 (en) * 2003-08-28 2008-05-20 Mips Technologies, Inc. Mechanisms for assuring quality of service for programs executing on a multithreaded processor
DE602004017879D1 (de) * 2003-08-28 2009-01-02 Mips Tech Inc Integrierter mechanismus zum suspendieren und endznem prozessor
JP4082706B2 (ja) * 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
US7971205B2 (en) * 2005-12-01 2011-06-28 International Business Machines Corporation Handling of user mode thread using no context switch attribute to designate near interrupt disabled priority status
US8032889B2 (en) * 2006-04-05 2011-10-04 Maxwell Technologies, Inc. Methods and apparatus for managing and controlling power consumption and heat generation in computer systems
US8001549B2 (en) * 2006-04-27 2011-08-16 Panasonic Corporation Multithreaded computer system and multithread execution control method
JP2007317171A (ja) * 2006-04-27 2007-12-06 Matsushita Electric Ind Co Ltd マルチスレッド計算機システム、マルチスレッド実行制御方法

Also Published As

Publication number Publication date
US20090249347A1 (en) 2009-10-01
JP2009238024A (ja) 2009-10-15

Similar Documents

Publication Publication Date Title
JP4996519B2 (ja) 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法
JP5323828B2 (ja) 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路
JP6199477B2 (ja) ゲストオペレーティングシステムおよび仮想プロセッサとともにハイパーバイザを使用するシステムおよび方法
JP4119945B2 (ja) タスク処理装置
JP5243711B2 (ja) プロセッサ
JP4127848B2 (ja) タスク処理装置
JPWO2009022371A1 (ja) タスク処理装置
JP2006318139A (ja) データ転送装置、データ転送方法およびプログラム
KR20050075722A (ko) 프로세서 시스템, dma 제어 회로, dma 제어 방법,dma 제어기의 제어 방법, 화상 처리 방법, 및 화상처리 회로
WO2007033615A1 (fr) Procede destine a realiser une application multitache dans un dispositif de lecture multimedia
JP2007317171A (ja) マルチスレッド計算機システム、マルチスレッド実行制御方法
US8190924B2 (en) Computer system, processor device, and method for controlling computer system
JP2013222321A (ja) メモリ制御装置、メモリ制御方法、情報処理装置、およびプログラム
JP2013125549A (ja) ソフトリアルタイムオペレーティングシステムの実時間性を確保する方法及び装置
US7822952B2 (en) Context switching device
JP2008009817A (ja) 半導体装置及びデータ転送方法
WO2013035246A1 (ja) 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路
JPWO2007110906A1 (ja) データ処理装置
JP5096923B2 (ja) 動的再構成論理回路を有するマルチスレッドプロセッサ
TW201437814A (zh) 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器
JP2012116138A (ja) 制御装置、制御プログラム、画像形成装置
JP5204740B2 (ja) タスク処理装置
JP5017784B2 (ja) プロセッサ及びこのプロセッサ適用される割込み処理制御方法
JP2008269597A (ja) タスク処理装置
JP2004118300A (ja) Dmaコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120315

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120508

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120511

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4996519

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees