JP5182792B2 - マルチコアプロセッサ制御方法及び装置 - Google Patents

マルチコアプロセッサ制御方法及び装置 Download PDF

Info

Publication number
JP5182792B2
JP5182792B2 JP2007262792A JP2007262792A JP5182792B2 JP 5182792 B2 JP5182792 B2 JP 5182792B2 JP 2007262792 A JP2007262792 A JP 2007262792A JP 2007262792 A JP2007262792 A JP 2007262792A JP 5182792 B2 JP5182792 B2 JP 5182792B2
Authority
JP
Japan
Prior art keywords
core
operating
cores
processor
rate
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.)
Active
Application number
JP2007262792A
Other languages
English (en)
Other versions
JP2009093383A (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.)
Alpine Electronics Inc
Original Assignee
Alpine Electronics 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 Alpine Electronics Inc filed Critical Alpine Electronics Inc
Priority to JP2007262792A priority Critical patent/JP5182792B2/ja
Priority to US12/184,922 priority patent/US8209552B2/en
Publication of JP2009093383A publication Critical patent/JP2009093383A/ja
Application granted granted Critical
Publication of JP5182792B2 publication Critical patent/JP5182792B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Microcomputers (AREA)
  • Power Sources (AREA)

Description

本発明はマルチコアを備えたプロセッサを搭載したユニットにおける消費電力を低減する制御方法及びその方法を実施する装置に関する。
従来から用いられてきた一般的なマイクロプロセッサでは、パッケージの中には命令発行部や演算部などを組み合わせた、一つの部品として動作するプロセッサコアが1セット組み込まれている。このような単一プロセッサを用いて性能を向上させるため、従来よりクロック周波数を上げるクロックアップの手法が用いられてきた。しかしながらクロックアップに伴う消費電力増大と発熱は大きなネックとなり、他の手法の開発が求められてきた。
その対策として、プロセッサを複数個並列動作可能に接続して、効率よく処理を行うことができるようにしたマルチプロセッサの技術が開発され、広く利用されるようになっている。しかしながら単に複数個のプロセッサを並列動作可能に接続すると、その個数が多くなると大型化せざるを得ず、そのプロセッサの使用範囲は限られてしまうという問題がある。その対策として近年の高密度のLSI製作技術の進歩により、1つのプロセッサに互いに独立して作動することができるプロセッサコアを複数設ける、マルチコアプロセッサが開発され、広く使用されるようになってきた。
マルチコアプロセッサでは、各プロセッサコアは基本的に独立しているため、それぞれのプロセッサコアは他のプロセッサコアに影響されることなく動作でき、マルチコアプロセッサの原理はマルチプロセッサと殆ど同じであり、複数のプロセッサコアで処理を分担し、その分だけ性能を向上させることができる。したがって、マルチコアプロセッサに搭載するコアの数を増やせば、その分だけ性能が上がることとなる。
そのためマルチコアとしてコアを2個備えたデュアルコアプロセッサから、4個備えたクアッドコアプロセッサ等、その個数も次第に多くなっている。このようなマルチコアプロセッサは、OSからは複数のマイクロプロセッサとして扱われ、動作感もマルチプロセッサ構成と殆ど変わらないため、ユーザやプログラマはマルチコアプロセッサ上での動作を特に意識せずに作業を行うことができるため、利用しやすいプロセッサとしても注目されている。
なお、複数のプロセッサからなるマルチプロセッサシステムにおいて、多くの処理能力を必要としない場合に、各プロセッサの利用量を監視し、利用量が少ないプロセッサを特定して停止またはサスペンドする技術は特開平11−202988号公報に開示されている。
特開平11−202988号公報
前記のようにマルチコアプロセッサにおいては1つのプロセッサに複数個のプロセッサを搭載し、全体として小型で且つプロセッサが一つにまとまっているため取り扱いやすく、次第に安価になっているため、小型の電気機器にも広く用いられようとしている。しかしながら、この高性能のマルチコアプロセッサを使用するときには、例えばそのマルチコアプロセッサが1つのプロセッサに4個のコアを備えたクアッドコアプロセッサの時、必ずしも常に4個のコアを用いる必要がないことがある。
即ち、特定の電気機器をより高性能化しようとするとき、特定の機能を行うとき短時間に多くの処理量を必要とすることにより、コアを4個備えたクアッドコアプロセッサを搭載しようとしたとき、特に大容量の処理を行う機能を作動させるときには4個のコアがフル稼働して対応し、所望の機能を行わせることができるようになっても、それ以外の機能を行わせるときにはこのような高速処理を必要としないことが多い。
しかしながら、従来のマルチコアプロセッサは、現在処理するタスクがないとき、或いは1つのタスクの中のスレッド処理を行わない場合でも、常に何らかの処理を行うために待機して稼働状態となっており、そのための電力を必要としている。このような無用な電力消費は、一般家庭用の機器でも問題となるが、特に電池で作動するような携帯機器や、照明機器も含めた数多くの機器の電力を供給しているバッテリーから電力供給を行う、例えば車両搭載機器にとっては大きな負担となり、その対策が求められている。更に、消費電力が高い場合は発熱量が多いため、各種の発熱を押さえる対策や、発生した熱の対策を必要とし、全体としてコストアップの原因となる。
なお、前記従来技術として挙げた特許文献1記載の技術では、マルチプロセッサシステムにおいて多くの処理能力を必要としない場合に、各プロセッサの利用量を監視し、利用量が少ないプロセッサを特定して停止またはサスペンドする技術は開示されているが、単に特定のプロセッサの作動を制限するのみであり、必ずしも全体のプロセッサから見た効率的なプロセッサの作動制御は行っていない。
したがって本発明は、各々独立して作動可能なプロセッサのコアを複数備えたマルチコアプロセッサにおいて、このプロセッサで処理する全体の処理量が少ないときには、全体として適切な数のコアを稼働させ、全体として稼働させなくても済むコアは稼働させないようにすることにより、消費電力を低減するとともに発熱を押さえ、発熱防止対策や、発生した熱対策に必要なコストを低減することができるマルチコアプロセッサ制御方法及びその方法を実施する装置を提供することを主たる目的とする。
本発明に係るマルチコアプロセッサ制御装置は、前記課題を解決するため、1つのプロセッサーに各々独立して演算処理を行う複数のコアを備えるマルチコアプロセッサの制御方法において、所定時間内での各コアの稼働率を計算し全コアの稼働率を合計し、前記合計した全体稼働率に応じて稼働するコア数を決定し、前記決定したコア数に応じて稼働するコアを選択し、前記各コアの稼働率は、所定時間内での稼働回数であり、
各コアの稼働回数を合計して全コアの稼働率を算出することを特徴とする。
また、本発明に係る他のマルチコアプロセッサ制御方法は、前記マルチコアプロセッサ制御方法において、例外処理の発生を検出したとき全コアを稼働させることを特徴とすることを特徴とする。
また、本発明に係る他のマルチコアプロセッサ制御方法は、前記マルチコアプロセッサ制御方法において、例外処理の発生に伴い全コアを稼働させた後に、所定時間経過後において例外処理を行う状態が解消したことを検出したときには、前記コアの選択処理を再開することを特徴とする。
また、本発明に係る他のマルチコアプロセッサ制御方法は、前記マルチコアプロセッサ制御方法において、前記例外処理を、前記のマルチコアプロセッサ制御方法の作動が適切に行われていないことを検出したときに行うことを特徴とする。
また、本発明に係るマルチコアプロセッサ制御装置は、前記課題を解決する為、1つのプロセッサに各々独立して演算処理を行う複数のコアを備えるマルチコアプロセッサの制御装置において、 所定時間内での各コアの稼働率を計算するコア稼働率計算手段と、 前記コア稼働率計算手段で計算した各コアの稼働率を合計し、プロセッサの全体稼働率を算出する全体稼働率算出手段と、 プロセッサの全体稼働率と稼働コア数との関係を対応して記憶する稼働コア数記憶手段と、 プロセッサの全体稼働率により前記稼働コア数記憶手段から稼働コア数を決定する稼働コア数決定手段と、 前記稼働コア数決定手段で決定したコア数に対応して稼働するコアを選択する稼働コア選択手段とを備え、 前記コア稼働率計算手段では、所定時間内での各コアの稼働回数により各コアの稼働率を求め、前記全体稼働率算出手段では、各コアの稼働回数を合計して全体稼働率を算出することを特徴とする。
また、本発明に係るマルチコアプロセッサ制御装置は、前記マルチコアプロセッサ制御装置に於いて、マルチコアプロセッサの例外処理発生状態を検出する例外処理発生検出手段を備え、前記例外処理発生検出手段で例外処理発生状態になったことを検出したとき、全てのコアの稼働を決定する手段を備えることを特徴とする。
本発明は上記のように構成したので、各々独立して作動可能なプロセッサのコアを複数備えたマルチコアプロセッサにおいて、このプロセッサで処理する全体の処理量が少ないときには、全体として適切な数のコアを稼働させ、稼働させなくても済むコアは稼働させないようにすることにより、消費電力を低減するとともに、全体の消費電力を低減させることにより発熱を押さえ、発熱防止対策や、発生した熱対策に必要なコストを低減することができるマルチコアプロセッサ制御手法を提供すること
本発明は、マルチコアプロセッサの稼働状態に合わせた適当数のコアのみを作動させるという目的を、1つのプロセッサーに各々独立して演算処理を行う複数のコアを備えるマルチコアプロセッサの制御方法において、所定時間内での各コアの稼働率を計算し全コアの稼働率を合計し、前記合計した全体稼働率に応じて稼働するコア数を決定し、前記決定したコア数に応じて稼働するコアを選択することにより実現した。
本発明の実施例を図面に沿って説明する。図1は本発明によるマルチコアプロセッサの機能ブロック図であり、1つのプロセッサに4個のコア(Core0〜3)を備えた例を示している。図示の例では1つのタスクが多数のスレッドに分けられ、処理高速化のためにそれぞれのスレッドがスレッドスケジューラー1によって各コアに割り振られて処理を行うようにしている。
それにより図1の例ではタスクリスト2に第1タスク3、第2タスク4・・・と多数のタスクが存在し、例えば第1タスク1について多数のスレッドが存在し、これらのスレッドがスレッドスケジューラ1の指示に従い、コア0〜3で処理される。その際スレッドスケジューラー1は、タスクリストのスレッド情報によりスレッドの割り振り処理を行うこととなる。
したがって図示の例では、コア0〜3は第1タスク3についてコア0で処理することとなるスレッドであるコア0スレッド5、コア1で処理することとなるスレッドであるコア1スレッド6、コア2で処理することとなるスレッドであるコア2スレッド7、コア3で処理することとなるスレッドであるコア3スレッド8が存在することとなる。このようにしてタスク1の処理を行うに際して、コア0ではタスクリスト2で示される第1タスク3について、コア0スレッド5を処理し、同様にコア1ではコア1スレッド6を処理し、コア2ではコア2スレッド7を、コア3ではコア3スレッド8を処理する。このように1つのタスクを多数のスレッドに分割して、図中4個のコアによって並列処理を行う結果、マルチコアプロセッサとして所望の処理を行うことができる。
このようなマルチコアプロセッサにおいて、4個のコア0〜3のうち、予め設定した1つのコアを可動制御用コアである基本コアとする。図示の例ではコア0をこの基本コアとした例を示しており、このコア0にコア0〜3のうち稼働するコアを選択する処理を行う稼働コア選択処理部9を備えている。この稼働コア選択処理部9で行う処理については、後に図2〜図5で詳述するが、図1で示す稼働コア選択処理部9には、コア毎の稼働率を計算するコア毎稼働率計算部10と、このコア毎稼働率計算部の計算結果に基づいて全体の稼働率を算出する全体稼働率算出部11と、全体稼働率算出部の算出結果に基づき、また稼働コア記憶部15で記憶した直前の処理における稼働コア数とによって、稼働率・稼働コア数対応テーブル13からデータを読み出し、稼働するコア数を決定する稼働コア数決定部12と、稼働コア数決定部で決定した稼働コア数と必要に応じて直前の稼働コアのデータとに基づいて稼働コアを選択する稼働コア選択部14とを備えた例を示している。
上記のような機能ブロックからなるマルチコアプロセッサにおいて、本発明においては図2及び図3に示すような作動フローによって順に作動させることができる。図2には本発明の制御にとって基本的なデータとなる各コア毎の稼働率計算処理の作動フローを示しており、図示の例においては各コア毎の処理として、最初に稼働率計測処理を開始するか否かの判別をしている(ステップS11)。
即ち、各コア毎の稼働率を計測するに際して、例えば図4に示すように、所定時間Tの間で、各コアが稼働している時間、即ち図中ts−tfとして示す所定時刻の間の時間Tにおける各コアの稼働率を計測するため、計測処理開始時刻としてtsが設定され、終了時刻としてtfが設定される。したがって図2の作動フローのステップS11ではこの時刻tsになったか否かを判別する。なお、実際の処理に際しては、例えばコア0に予め備えているソフトにより、処理開始指示及び終了指示を行うことにより、時刻を検出することなく実行することもできる。
図2の例においてステップS11で前記のように処理開始指示があり、稼働率計測処理を開始すると判別したときには、次の処理を行う前に稼働率計測単位時間が終了してしまったときのために、稼働率計測単位時間は終了したか否かの判別を行い(ステップS12)、終了したときは後述するステップS21に進み、終了していないときにはステップS13に進む。なお、ステップS11で未だ稼働率計測処理の開始指示がないときにはこの状態で待機する。図4の例においては、コア0は稼働率計測処理を開始した時刻ts以降において、スレッドAの処理を開始したことが判別される。ステップS13で未だこのようなスレッドAの処理が開始されていないときにはステップS12に戻って、稼働率計測単位時間が終了していなければこの作動を繰り返して待機する。
このときステップS11で稼働率計測処理を開始したか否かの判別を行って、開始時刻になったことを検出し、ステップS12で稼働率計測単位時間が終了していないと判別した後、直ちにステップS13でスレッド処理が開始したか否かを判別し、このときにおいて開始していると判別したときには、そのスレッドは稼働率計測開始時刻tsより以前にスレッド処理を開始していたときであり、このような場合は、そのスレッド処理の途中の時刻tsから稼働時間の計測が始まることとなる。
ステップS13でスレッド処理が開始したと判別したときには、その処理の開始時刻をタイマから読み込む。図4の例では、コア0においてスレッドAの処理を開始したとき、その時の時刻ta1をタイマから読み込む。次いで図示の例では稼働率計測単位時間は終了したか否かを判別している(ステップS15)。即ち、この可動率計測処理に際しては時刻tsからtfまでの時間Tの間を稼働率計測処理単位時間としており、前記ステップS15では、この稼働率計測単位時間Tが終了したか否かを判別している。この稼働率計測単位時間の終了は、制御装置によって計測終了指示があったか否かによって判別することもできる。
ステップS15で未だ稼働率計測処理単位時間が終了していないと判別したときにはステップS16に進み、スレッド処理は終了したか否かを判別する(ステップS16)。図4の例においては、時刻ta1で開始したスレッドAが終了したか否かを判別することとなる。ここで未だスレッドAの処理が終了していないと判別したときには、再びステップS15に戻って稼働率計測単位時間Tは終了したか否かの判別を行い、これらの作動を繰り返す。
このように未だ稼働率計測単位時間が終了していない間にこのスレッド処理が終了したときには、スレッド処理終了時刻をタイマから読み込む(ステップS17)。図4の例において、コア0のスレッドAの処理に際しては、時刻ta2において終了しており、この時刻ta2が読み込まれる。
次いで前記ステップS14でタイマから読み込んだスレッド処理開始時刻ta1と、ステップS17でタイマから読み込んだスレッド終了時刻ta2とから稼働時間を算出してその値を記憶する(ステップS18)。この処理に際しては(ta2−ta1)によってスレッドAの処理時間、即ちコア0におけるスレッドAの稼働時間T1を計算することができる。その後再び稼働率計測単位時間は終了したか否かを判別し(ステップS19)、終了していないときには再びステップS12に戻って、前記他の処理のために主として判別処理を行う同様の処理を経由し、このコアにおける次のスレッド処理の開始を待ち、同様の作動を繰り返す。
この処理の過程でステップS15において稼働率計測単位時間が終了したと判別したときには、図示の例ではステップS22に進み、稼働率計測単位時間が終了した時刻をタイマから読み込む。
図4の例においては、スレッドAの処理後スレッドBの処理を行っており、このスレッドBの処理は時刻tb1で開始し、時刻tb2で終了している。この処理では前記のようにして稼働時間を(tb2−tb1)によりT2を求める。コア0においては稼働率計測単位時間Tの間に更にスレッドCの処理も行っており、このスレッドCでは時刻tc1で処理を開始し、時刻tc2で終了しており、その結果(tc2−tc1)によってスレッドCの稼働時間T3を求める。これらの処理も図2のステップS13からステップS19までの処理を繰り返すことにより行うことができる。
この処理の課程においてステップS13で新たなスレッド処理を開始したと判別した後、ステップS15で稼働率計測単位時間が終了したか否かの判別において、終了したと判別したときには、そのスレッド処理の途中で稼働率計測単位時間が終了したときであり、このような場合はステップS22に進み、図示の例では稼働率計測単位時間の終了時刻をタイマから読み込んでいる。但し、稼働率計測単位時間の終了時刻tfが予め設定されているので、この設定値を直接読み込むことにより、稼働率計測単位終了時刻を取り込む込むようにしても良い。
次いでこのスレッド処理において、スレッド処理開始時刻と、稼働率計測単位時間の終了時刻から稼働時間を前記と同様に算出して記憶する。前記ステップS18及びステップS19において、スレッド処理を行っていないときにおいて、稼働率計測単位時間が終了したときにはステップS22及びステップS23の処理を行った時と共に、稼働率計測単位時間内でのスレッド毎の稼働時間を合計する(ステップS20)。なお、ステップS19で稼働率計測単位時間が終了したと判別したときには、前記のようなステップS20で合計の計算を行うと同時にステップS11に戻って次の稼働率計測単位時間が開始したか否かを判別する。多くの場合は稼働率計測単位時間は連続しているので、その際はステップS19の後、直ちにステップS11からステップS13に進み、前記作動を繰り返すこととなる。
この稼働率計測単位時間内でのスレッド毎の稼働時間を合計する処理に際しては、図4の例においてコア0では、スレッドAのT1とスレッドBのT2とスレッドCのT3とを合計した(T1+T2+T3)を計算する。コア1では、スレッドDのT4のみであり、コア2ではスレッドEのT5とスレッドFのT6とを合計し(T5+T6)を計算する。同様にコア3ではスレッドGのT7とスレッドHのT8を合計し(T7+T8)を計算する。
次いでステップS21において稼働率計測単位時間内での稼働率の計算を行い、その計算値を出力する(ステップS24)。この処理においてはコア0においては図4に示すように稼働率η0は[η0=(T1+T2+T3)/T×100]を計算し、コア1においては稼働率η1は[η1=T4/T×100]を計算し、コア2においては稼働率η2は[η2=(T5+T6)/T×100]を計算し、コア3においては稼働率η3は[η3=(T7+T8)/T×100]を計算することにより求める。
本発明によるマイクロプロセッサ制御の基本データとなる各コア毎の稼働率を前記のような手法で求めることができる結果、本発明によるマルチコアプロセッサの制御による稼働コア選択制御処理は図3に示すようにして行うことができる。図3に示す稼働コア選択制御処理の例においては、最初に前記図2に示すような各コア毎の稼働率計算処理を行った後(ステップS31)、即ち、稼働率計測単位時間の終了後に前記コア毎の稼働率計算処理を行った後は、各コアの稼働率計算値を集計して合計稼働率を算出する(ステップS32)。
この合計稼働率の算出に際しては、コアの稼働率η0、コア1の稼働率η1、コア2の稼働率η2、コア3の稼働率η3を合計するものであり、図4に記載しているように、全体稼働率ηは(η0+η1+η2+η3)によって求める。したがってこの値は、例えば全コアが稼働率計測単位時間Tの間全て稼働していたときには、η=400となり、理論上全て稼働していなかったと仮定したときにはη=0となる。但し、本発明においては、少なくとも特定のコアで本発明による制御処理を行っているが、その計算処理量は極めて僅かである。
その後このプロセッサにおいて、この稼働率計算単位時間開始の直前における稼働コア数、即ち直前の作動時の稼働コア数と前記のようにして計算した全体稼働率により、稼働コア数をテーブルから読み出す(ステップS33)。このときのテーブルとしては種々の態様のものを用いることができるが、例えば図5に示すような稼働コア数・コア起動/停止タイミングテーブルを用いることができる。
図5に示す稼働コア数・コア起動/停止タイミングテーブルの例においては、全体稼働率ηが0〜40%の時は、稼働コア数が1であり、同図から明らかなように必ずコア0のみが選択されることとなる。もしもこの状態から次第に全体稼働率が単調に上昇していった場合には、全体稼働率ηが80%を超えたとき稼働にコア数を2とし、図示の例ではコア1を起動する。次いで全体稼働率ηが160%を超えたときに稼働コア数を3とし、図示の例ではコア2も起動する。また、全体稼働率ηが240%を超えたときに稼働コア数を4とし、図示の例ではコア3を起動する。即ち全体稼働率が240%を超えたときには全コア数4個が初めて全て起動状態となる。
このように、各全体稼働率の状態においてコアの稼働数を設定することにより、コアの稼働数を全体の処理量に応じた数だけ稼働させることができるため、このマルチコアプロセンサの消費電力を低減することができる。しかも前記従来技術のように単に稼働率が少ないコアを停止するのではなく、プロセッサ全体の稼働率に応じて停止コアを調節できるため、プロセッサ全体として最適な稼働コアの制御を行うことができる。
前記のように全体稼働率が次第に上昇したときには、上記のように稼働コアの制御が行われるものであるが、逆に全体稼働率が400%の状態で稼働コア数が4個から単調に全体稼働率が低下し、160以下に低下したときには稼働コア数3とし、コア3の稼働を停止する。このように図5のテーブルの例では、例えば稼働コア数4個で稼働する状態については、起動するときは240%になった時であるのに対して、一旦起動した後は160%になるまで4個稼働している。このようなヒステリシス特性を持たせた作動は、後述するように他の全体稼働率でのコア数制御においても同様にして行われる。
前記のように全体稼働率が次第に低下し、160%から更に80%に低下した時稼働コア数を2とし、図示の例ではコア2を停止している。更に全体稼働率が40%に低下した時に稼働コア数1とし、コア1を停止して、以降はコア0のみで処理を行うこととなる。このような全体稼働率が上昇していくときと降下していくときとでコアの稼働数を異ならせるヒステリシス特性を持たせて設定しているので、全体稼働率が頻繁に変化するとき、コアの起動と停止の頻繁な起動と停止作動を行わせないようにすることができる。
したがって、例えば全体稼働率が(1)10%−(2)70%−(3)90%−(4)45%−(5)200%−(6)150%−(7)300%−(8)70%と順に変化したときには、(1)10%では稼働コア数1でコア0のみ稼働し、その後の(2)70%でも稼働コア数1でコア0のみ稼働し、(3)90%では稼働コア数2で、コア0とコア1を稼働し、その後の(4)45%でも稼働コア数2で、コア0とコア1を稼働し、その後の(5)200では稼働コア数3でコア0とコア1とコア2を稼働し、その後の(6)150%ではコア稼働数3で変わらず、したがってコア0とコア1とコア2を稼働し、その後の(7)300%では稼働コア数4で更にコア3も稼働して全コア稼働状態となり、その後の(8)70%では稼働コア数2で、コア4、更にコア3を停止してコア0とコア1を稼働することとなる。
このように、例えば同じ全体稼働率70%の時でも、(1)10%から(2)70%に変化したときにはコア0のみ稼働し、(7)300%から(8)70%に変化したときにはコア0とコア1を稼働し、また、この全体稼働率70%より低い45%のときでも(3)90%からの時にはコア0とコア1を稼働を継続する、というように、単にその時の全体稼働率のデータのみではなく、前の全体稼働率との関係で稼働コアを決定するテーブルとしている。
図3のステップS33ではこのように直前の稼働コア数と、今回計算した合計稼働率により稼働コア数を読み出した後は、図3の例では稼働コアを選択し、これを記憶する(ステップS34)。即ち、図5のテーブルの例では、コア0〜3についてコア0を基本コアとし、コアが2個必要な全体稼働率の時は、常にコア1を追加し、更に稼働コアが3個必要な全体稼働率の時には常にコア2を起動し、コア3については全コアを稼働する必要がある全体稼働率のときのみ稼働する例を示したが、全体稼働率に対して稼働するコア数は、このように設定されても、稼働するコアの選択については、必ずしも前記の例によらず、他の手法により駆動することもできる。
その際には、例えば全体稼働率に応じて稼働するコアの選択順序を、前記のコア0、1、2、3の順のほか、コア0、2、3、1の順とし、或いはコア0、3、1、2の順にする等、予め設定した全体稼働率に対応した特定コアの作動を、種々の態様で実施することができる。なお、前記実施例では図1に示すように、コア0に本発明の処理を行うソフトを組み込んで、この作動処理を行っているため、このコアを基本コアとして常に作動させている。したがって、このソフトをコア1に組み込んで前記作動処理を行うときには、コア1を基本コアとして常に稼働させることとなる。
また、前記の例においても、最初はこのコア0、1、2、3の順序で全体稼働率に合わせて作動させていても、その後のスレッド処理において例えば基本コア0のみ稼働している状態等、適当なタイミングを見計らい、例えばコア0、2、3、1の順で作動させ、その後コア0、2、1、3の順序で、またコア0,3、1、2の順序で、またコア0、3、2、1の順序で、またコア0、1、3、2の順序で作動する等、種々の態様で作動を変更するように予め設定しても良い。その時には基本コアをコア0とするとき、他のコアの稼働をできる限り均一化するように制御して処理負担の均一化を図ることができる。その際には基本コア以外はランダムに変更することも可能である。
図3の作動の例においてはステップS34において前記のような稼働コアの選択を行うものであり、選択したコアを記憶しておく。このとき、コア数のみを記憶しておいても良い。次いで図示の例では例外処理が発生したか否かを判別している。即ち、このプロセッサの一連のスレッド処理の過程で、大量データ処理の急な割り込みが入ったときのように、緊急に大容量の処理の必要性が発生したときには、ステップS35で例外処理が発生したと判別し、その際には全コアでの稼働処理を直ちに行うことができるようにする(ステップS36)。
このときの例外処理としては予め各種の状態を設定しておくことができ、例えばこのマルチコアプロセッサ制御が適切な作動を行っていないことを検出した時に、前記のようなコア選択処理を解除するため、即ち本発明による処理の安全対策として用いても良い。ステップS36において、例えば緊急に大量のデータ処理作業が入って全コアの稼働処理を行ったときには、所定時間が経過したか否かを判別し(ステップS37)、所定時間が経過するまではステップS36に戻って前記作動を定期的に繰り返し、所定時間が経過したときには再びステップS31に戻って前記作動を繰り返す。未だステップS35で例外処理が発生していないと判別したときには、図1のスレッドスケジューラ1によりステップS34で選択したコアに対して、1つのタスクを複数に分割したスレッドを割り振り(ステップS38)、再びステップS31に戻って同様の作動を繰り返す。
前記の例においては、マルチコアプロセッサの各コアに対して、1つのタスクを細分化したスレッドの処理を、スレッドスケジューラにより処理する例を示したが、そのほかに1つの比較的大きなタスクを、複数のタスクに分割し、各タスクについてタスクスケジューラにより任意のコアに各タスクを割り振る際にも、前記手法により同様に作動させることができる。その際には図1のスレッドスケジューラはタスクスケジューラとなり、タスクリスト2の、例えば第1タスクについて細分化したコア0タスク、コア1タスク、コア2タスク、コア3タスクを、各コアに対して割り振ることとなる。
また、前記の例においては各コアの稼働率を計算するに際して、所定時間内で処理した各スレッドの稼働時間を求め、これを合計して各コアの稼働時間を求めることにより稼働率を計算する例を示したが、それ以外に所定時間内において処理したスレッド或いはタスクの数を求め、これを各コアの稼働率として、前記手法によりこのプロセッサを制御するように構成しても良い。それにより、稼働率の計算処理を簡略化して、この演算を行う基本コアの処理負担を低減することができる。
本発明の実施例の機能ブロック図である。 同実施例における各コア毎の稼働率計算処理の作動フロー図である。 同実施例における稼働コア選択制御処理の作動フロー図である。 各コア毎の稼働率計算例を示す図である。 稼働コア数決定時、及び稼働コアを選択するテーブル例を示す図である。
符号の説明
1 スレッド・スケジューラ
2 タスクリスト
3 第1タスク
4 第2タスク
5 コア0スレッド
6 コア1スレッド
7 コア2スレッド
8 コア3スレッド
9 稼働コア選択処理部
10 コア毎稼働率計算部
11 全体稼働率算出部
12 稼働コア数決定部
13 稼働率・稼働コア数対応テーブル
14 稼働コア選択部
15 稼働コア記憶部

Claims (6)

  1. 1つのプロセッサーに各々独立して演算処理を行う複数のコアを備えるマルチコアプロセッサの制御方法において、
    所定時間内での各コアの稼働率を計算し全コアの稼働率を合計し、
    前記合計した全体稼働率に応じて稼働するコア数を決定し、
    前記決定したコア数に応じて稼働するコアを選択し、
    前記各コアの稼働率は、所定時間内での稼働回数であり、
    各コアの稼働回数を合計して全コアの稼働率を算出することを特徴とするマルチコアプロセッサ制御方法。
  2. 例外処理の発生を検出したとき全コアを稼働させることを特徴とする請求項1記載のマルチコアプロセッサ制御方法。
  3. 例外処理の発生に伴い全コアを稼働させた後に、所定時間経過後において例外処理を行う状態が解消したことを検出したときには、前記コアの選択処理を再開することを特徴とする請求項2記載のマルチコアプロセッサ制御方法。
  4. 前記例外処理は、請求項1記載のマルチコアプロセッサ制御方法の作動が適切に行われていないことを検出したときに行うことを特徴とする請求項2記載のマルチコアプロセッサ制御方法。
  5. 1つのプロセッサに各々独立して演算処理を行う複数のコアを備えるマルチコアプロセッサの制御装置において、
    所定時間内での各コアの稼働率を計算するコア稼働率計算手段と、
    前記コア稼働率計算手段で計算した各コアの稼働率を合計し、プロセッサの全体稼働率を算出する全体稼働率算出手段と、
    プロセッサの全体稼働率と稼働コア数との関係を対応して記憶する稼働コア数記憶手段と、
    プロセッサの全体稼働率により前記稼働コア数記憶手段から稼働コア数を決定する稼働コア数決定手段と、
    前記稼働コア数決定手段で決定したコア数に対応して稼働するコアを選択する稼働コア選択手段とを備え、
    前記コア稼働率計算手段では、所定時間内での各コアの稼働回数により各コアの稼働率を求め、前記全体稼働率算出手段では、各コアの稼働回数を合計して全体稼働率を算出することを特徴とするマルチコアプロセッサ制御装置。
  6. マルチコアプロセッサの例外処理発生状態を検出する例外処理発生検出手段を備え、
    前記例外処理発生検出手段で例外処理発生状態になったことを検出したとき、全てのコアの稼働を決定する手段を備えることを特徴とする請求項5記載のマルチコアプロセッサ制御装置。
JP2007262792A 2007-10-07 2007-10-07 マルチコアプロセッサ制御方法及び装置 Active JP5182792B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007262792A JP5182792B2 (ja) 2007-10-07 2007-10-07 マルチコアプロセッサ制御方法及び装置
US12/184,922 US8209552B2 (en) 2007-10-07 2008-08-01 Method and device for controlling multicore processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007262792A JP5182792B2 (ja) 2007-10-07 2007-10-07 マルチコアプロセッサ制御方法及び装置

Publications (2)

Publication Number Publication Date
JP2009093383A JP2009093383A (ja) 2009-04-30
JP5182792B2 true JP5182792B2 (ja) 2013-04-17

Family

ID=40524309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007262792A Active JP5182792B2 (ja) 2007-10-07 2007-10-07 マルチコアプロセッサ制御方法及び装置

Country Status (2)

Country Link
US (1) US8209552B2 (ja)
JP (1) JP5182792B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543857B2 (en) * 2009-09-26 2013-09-24 Intel Corporation Method and apparatus for low power operation of multi-core processors
KR101636377B1 (ko) * 2009-10-23 2016-07-06 삼성전자주식회사 재구성 프로세서, 재구성 제어 장치 및 방법, 그리고, 스레드 모델링 방법
JP5531679B2 (ja) 2010-03-04 2014-06-25 日本電気株式会社 Smt対応cpuを有する情報処理装置の消費電力低減方法、消費電力低減装置及び消費電力低減プログラム
JPWO2011111230A1 (ja) * 2010-03-12 2013-06-27 富士通株式会社 マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム
KR101641541B1 (ko) 2010-03-31 2016-07-22 삼성전자주식회사 다중 코어에서 동적으로 부하를 분배하는 장치 및 방법
JP5477187B2 (ja) * 2010-06-18 2014-04-23 株式会社リコー 通信装置
CN101976208B (zh) 2010-10-25 2014-08-13 中兴通讯股份有限公司 信息投递的方法和装置
TWI418977B (zh) * 2010-12-22 2013-12-11 Inventec Corp 多核心處理器的超頻測試方法
JP5786641B2 (ja) * 2011-10-25 2015-09-30 富士通株式会社 携帯端末装置の制御方法、制御プログラム及び携帯端末装置
KR101975288B1 (ko) 2012-06-15 2019-05-07 삼성전자 주식회사 멀티 클러스터 프로세싱 시스템 및 그 구동 방법
JP5915406B2 (ja) * 2012-06-22 2016-05-11 富士通株式会社 携帯端末装置の制御方法、制御プログラム及び携帯端末装置
US9501131B2 (en) 2012-08-31 2016-11-22 Micron Technology, Inc. Methods and systems for power management in a pattern recognition processing system
US20140208072A1 (en) * 2013-01-18 2014-07-24 Nec Laboratories America, Inc. User-level manager to handle multi-processing on many-core coprocessor-based systems
JP6051924B2 (ja) 2013-02-21 2016-12-27 富士通株式会社 情報処理装置の制御方法、制御プログラム、情報処理装置
US10353765B2 (en) * 2013-03-08 2019-07-16 Insyde Software Corp. Method and device to perform event thresholding in a firmware environment utilizing a scalable sliding time-window
KR102110812B1 (ko) * 2013-05-30 2020-05-14 삼성전자 주식회사 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법
US20160170474A1 (en) * 2013-08-02 2016-06-16 Nec Corporation Power-saving control system, control device, control method, and control program for server equipped with non-volatile memory
CN104424156A (zh) * 2013-09-09 2015-03-18 中兴通讯股份有限公司 处理器的核处理方法、装置及终端
EP3161586B1 (en) * 2014-06-26 2020-08-05 Consiglio Nazionale Delle Ricerche Method and system for regulating in real time the clock frequencies of at least one cluster of electronic machines
JP2016118818A (ja) * 2014-12-18 2016-06-30 本田技研工業株式会社 車両の制御装置

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62198949A (ja) * 1986-02-26 1987-09-02 Nec Corp マルチプロセツサ・システムの動作制御方式
JP2738674B2 (ja) * 1986-05-23 1998-04-08 株式会社日立製作所 並列計算機及び並列計算機のデータ転送方法
JPH03127164A (ja) * 1989-10-12 1991-05-30 Nec Corp マルチプロセッサシステム
JPH04153864A (ja) * 1990-10-18 1992-05-27 Sanyo Electric Co Ltd 並列処理計算機
JPH04223548A (ja) * 1990-12-25 1992-08-13 Nippon Telegr & Teleph Corp <Ntt> 並列処理システムの負荷配分方法
JP2977688B2 (ja) * 1992-12-18 1999-11-15 富士通株式会社 マルチプロセッシング装置、方法、及びこれらに使用するプロセッサ
JPH09138716A (ja) * 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
US7822996B2 (en) * 1995-12-07 2010-10-26 Texas Instruments Incorporated Method for implementing thermal management in a processor and/or apparatus and/or system employing the same
US6496823B2 (en) * 1997-11-07 2002-12-17 International Business Machines Corporation Apportioning a work unit to execute in parallel in a heterogeneous environment
JPH11202988A (ja) * 1998-01-13 1999-07-30 Hitachi Ltd システム消費電力制御方法
US6711691B1 (en) * 1999-05-13 2004-03-23 Apple Computer, Inc. Power management for computer systems
US6622287B1 (en) * 2000-03-08 2003-09-16 Nec Corporation Low power hardware/software partitioning approach for core-based embedded systems
US7020713B1 (en) * 2000-10-10 2006-03-28 Novell, Inc. System and method for balancing TCP/IP/workload of multi-processor system based on hash buckets
JP2003006175A (ja) * 2001-06-26 2003-01-10 Hitachi Ltd プロセス実行時のプログラム動作特性に基づくプロセススケジューリング方法及びこれを用いたプログラム及びデータ処理装置
JP4143283B2 (ja) * 2001-09-12 2008-09-03 株式会社日立製作所 計算機の処理性能変更装置
US7318164B2 (en) * 2001-12-13 2008-01-08 International Business Machines Corporation Conserving energy in a data processing system by selectively powering down processors
JP2004240669A (ja) * 2003-02-05 2004-08-26 Sharp Corp ジョブスケジューラおよびマルチプロセッサシステム
US7337334B2 (en) * 2003-02-14 2008-02-26 International Business Machines Corporation Network processor power management
US7013400B2 (en) * 2003-04-24 2006-03-14 International Business Machines Corporation Method for managing power in a simultaneous multithread processor by loading instructions into pipeline circuit during select times based on clock signal frequency and selected power mode
US7707443B2 (en) * 2003-07-18 2010-04-27 Hewlett-Packard Development Company, L.P. Rack-level power management of computer systems
US7146514B2 (en) * 2003-07-23 2006-12-05 Intel Corporation Determining target operating frequencies for a multiprocessor system
US7174469B2 (en) * 2003-09-30 2007-02-06 International Business Machines Corporation Processor power and energy management
JP4066932B2 (ja) * 2003-11-10 2008-03-26 株式会社日立製作所 予測に基づいた計算機リソース配分方法
US7421691B1 (en) * 2003-12-23 2008-09-02 Unisys Corporation System and method for scaling performance of a data processing system
EP1555595A3 (en) * 2004-01-13 2011-11-23 LG Electronics, Inc. Apparatus for controlling power of processor having a plurality of cores and control method of the same
JP2006259793A (ja) * 2005-03-15 2006-09-28 Hitachi Ltd 共用リソース管理方法およびその実施情報処理システム
US7386739B2 (en) * 2005-05-03 2008-06-10 International Business Machines Corporation Scheduling processor voltages and frequencies based on performance prediction and power constraints
EP1933305B1 (en) * 2005-09-05 2011-12-21 Fujitsu Ltd. Audio encoding device and audio encoding method
EP1949317A1 (en) * 2005-10-24 2008-07-30 Accenture Global Services GmbH Dynamic server consolidation and configuration
CN101331460B (zh) * 2005-12-16 2012-10-03 国际商业机器公司 基于处理能力的实时基准对软件产品的使用进行计量的方法和***
TW200805047A (en) * 2005-12-23 2008-01-16 Koninkl Philips Electronics Nv Performance analysis based system level power management
US7263457B2 (en) * 2006-01-03 2007-08-28 Advanced Micro Devices, Inc. System and method for operating components of an integrated circuit at independent frequencies and/or voltages
JP2007213167A (ja) * 2006-02-07 2007-08-23 Fujitsu Ltd 電力制御プログラム、サーバシステム、および電力制御方法
JP2008129846A (ja) * 2006-11-21 2008-06-05 Nippon Telegr & Teleph Corp <Ntt> データ処理装置、データ処理方法およびプログラム
JP2008262370A (ja) * 2007-04-11 2008-10-30 Nec Saitama Ltd 情報処理装置及び情報処理装置の監視制御方法
US7917785B2 (en) * 2007-05-11 2011-03-29 International Business Machines Corporation Method of optimizing performance of multi-core chips and corresponding circuit and computer program product
US7865084B2 (en) * 2007-09-11 2011-01-04 Oracle America, Inc. Multi-chip systems with optical bypass
US8762692B2 (en) * 2007-09-27 2014-06-24 Intel Corporation Single instruction for specifying and saving a subset of registers, specifying a pointer to a work-monitoring function to be executed after waking, and entering a low-power mode
US20090327656A1 (en) * 2008-05-16 2009-12-31 Dan Baum Efficiency-based determination of operational characteristics
US8527796B2 (en) * 2009-08-24 2013-09-03 Intel Corporation Providing adaptive frequency control for a processor using utilization information

Also Published As

Publication number Publication date
JP2009093383A (ja) 2009-04-30
US20090094437A1 (en) 2009-04-09
US8209552B2 (en) 2012-06-26

Similar Documents

Publication Publication Date Title
JP5182792B2 (ja) マルチコアプロセッサ制御方法及び装置
JP5607909B2 (ja) メモリ管理装置及びその方法
JP4488072B2 (ja) サーバシステム、及びサーバシステムの電力削減方法
JP5091912B2 (ja) マルチコアプロセッサシステム
JP5324934B2 (ja) 情報処理装置および情報処理方法
CN100527089C (zh) 信息处理装置中的功率控制装置
TWI426452B (zh) Work processing device
TWI416413B (zh) Work processing device
JP5090569B2 (ja) ミクロアーキテクチャのバンド幅スロットリングによるプロセッサ電力消費制御及び電圧降下
EP3332306B1 (en) System and method for cache aware low power mode control in a portable computing device
CN107797853B (zh) 一种任务调度方法、装置及多核处理器
JP4490298B2 (ja) プロセッサ電力制御装置及びプロセッサ電力制御方法
US20110161978A1 (en) Job allocation method and apparatus for a multi-core system
TW200941209A (en) Power-aware thread schedulingard and dynamic use of processors
TWI426451B (zh) Work processing device
KR20100026989A (ko) 에너지 절약형 멀티 코어 프로세서
JPWO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
JP2001318742A (ja) コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
JP2009223689A (ja) タスク数制御装置、タスク数制御方法、及びコンピュータプログラム
JP2003271401A (ja) 負荷監視機能を有するマイクロプロセッサ
JP2010039802A (ja) マルチプロセッサシステム、スケジューリング方法およびそのプログラム
JP2013149221A (ja) プロセッサの制御装置およびその方法
JP6477260B2 (ja) アプリケーションを実行する方法及びリソースマネジャ
JP4591310B2 (ja) 流量制御方法
JP2009037403A (ja) マルチコアプロセッサにおけるコアメモリの有効活用方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121225

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: 20130109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130109

R150 Certificate of patent or registration of utility model

Ref document number: 5182792

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3