JP4738891B2 - データ処理装置およびそのポーリング・ループ管理方法 - Google Patents

データ処理装置およびそのポーリング・ループ管理方法 Download PDF

Info

Publication number
JP4738891B2
JP4738891B2 JP2005152188A JP2005152188A JP4738891B2 JP 4738891 B2 JP4738891 B2 JP 4738891B2 JP 2005152188 A JP2005152188 A JP 2005152188A JP 2005152188 A JP2005152188 A JP 2005152188A JP 4738891 B2 JP4738891 B2 JP 4738891B2
Authority
JP
Japan
Prior art keywords
interrupt
main processing
auxiliary
main
processing device
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
JP2005152188A
Other languages
English (en)
Other versions
JP2005346708A (ja
Inventor
キメルマン ポール
ロイ グリセンスウェイト リチャード
Original Assignee
エイアールエム リミテッド
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
Priority claimed from GB0411792A external-priority patent/GB2414573B/en
Application filed by エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JP2005346708A publication Critical patent/JP2005346708A/ja
Application granted granted Critical
Publication of JP4738891B2 publication Critical patent/JP4738891B2/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)

Description

本発明は、データ処理装置およびそのポーリング・ループを管理する方法に関するものである。
データ処理タスクが複雑化するにつれ、データ処理システムが一つ以上の処理装置を有し、これらのタスクの実行を処理することがより一般的になりつつある。特に、例えば、中央処理装置(CPU)などのメイン処理ロジックに加え、複数の追加的な特定目的のハードウェアロジックの一部が、特定のタスクを実行するために提供されることがしばしばある。そのような追加のハードウェア装置の例、あるいは、ここに参照される補助処理装置は、特定のビデオ処理機能、直接メモリアクセス(DMA)制御器、液晶ディスプレイ(LCD)制御器などの処理に利用されるようなデータ・アクセラレータである。
メイン処理装置が特定のタスクを補助処理装置の一つへ委託する場合、一般に、メイン処理装置が、そのタスクが補助処理装置によって完了した時を判断する必要がある。これを実現する既知の方法の一つは、補助処理装置をアレンジして、タスクが完了したときにフラグをセットし、メイン処理装置に優先的にフラグをポーリングさせて、フラグがセットされたかどうかを判断し、それに従い、タスクが完了したかどうかを判断するものである。フラグは、そのフラグがセットされたと判断されるまで、ポーリング・ループ内で優先的にポーリングされ続ける。
そのようなアプローチには数々の問題がある。まず、補助処理ロジックがタスクを実行するのにかかる時間により、メイン処理ロジックが多大な時間を、フラグをポーリングすることに要する。低電力消費が望まれるシステムにおいては、フラグのポーリングを繰り返すことは、エネルギーが有効に消費されないため、望まれない。さらに、フラグが保存されているメモリの一部が、メイン処理装置、補助処理装置およびメモリを相互に接続する共有バスを介して、アクセス可能な場合がある。メイン処理装置がフラグをポールしようとする度にバスへのアクセス要求が必要となり、したがって、このことが多様な処理装置間でバスへのアクセス探索を生じ、競争状態を増長させる。
したがって、そのようなポーリング・ループを管理するために改良された技術の提供が望まれる。
最初の側面から見ると、本発明は、メイン処理装置およびメイン処理装置に代わってタスクを処理するために動作する補助処理装置を有し、その補助処理装置が、前記タスクが完了したときに完了フィールドをセットするように動作し、メイン処理装置が、完了フィールドをポーリングして前記タスクが完了したかどうかを判断するように動作すること、完了フィールドを閾値の回数だけポーリングした時に、メイン処理装置がタスクが完了していないと判断したならば、メイン処理装置は省電力モードに入るように動作すること、補助処理装置は前記タスクが完了すると、メイン処理装置と補助処理装置とを相互に接続するパス上に通知を発行すること、および、メイン処理装置が、前記通知を受け取った時に前記省電力モードを終了することを含むデータ処理装置を提供する。
本発明によれば、補助処理装置がメイン処理装置に代わってタスクを処理する場合、メイン処理装置は完了フィールドをポーリングし、タスクが完了したかを判断するように動作する。完了フィールドを閾値の回数だけポーリングした時、メイン処理装置がタスクが完了していないと判断したならば、メイン処理装置は省電力モードへ入るようにアレンジされる。この省電力モード中である間、メイン処理装置は完了フィールドのポーリングを継続せず、それにより、他の場合に比べ極めて少ない電力消費で済む。さらに、この省電力モードの間、メイン処理装置は、一般的には完了フィールドをポーリングする際に要求されうる任意のバスアクセス要求を発行せず、それにより、バス上の競争状態を軽減する。
さらに、本発明によれば、補助処理装置がタスクを完了した際に、メイン処理装置と補助処理装置とを相互に接続するパス上に通知を発行するように設定される。メイン処理装置がその通知を受け取ると、メイン処理装置は省電力モードを終了するように動作する。したがって、この通知はメイン処理装置を省電力モードから”目覚め”させるための仕組みとして用いられる。理解される通り、このアプローチは、大幅な電力の節約をデータ処理装置内に実現することを可能にする。
メイン処理装置が省電力モードに入ることを決定する前に、完了フィールドがポーリングされる回数の閾値は、実施例に合わせて選択してよい。したがって、一例として、メイン処理装置は完了フィールドをポーリングし、タスクが完了していないと判断すると、省電力モードに入るようにアレンジする。特殊な一例では、メイン処理装置は完了フィールドを二回ポーリングし、まだタスクが完了していないと判断した場合に、省電力モードに入るようアレンジする。
理解されるように、通知を転送するためのメイン処理装置と補助処理装置を相互に接続するパスは、多様な形式を取ることができる。一つの実施例では、補助処理装置とメイン処理装置の間の通知を転送するための専用のパスを有し、通知の伝達に遅れがないように保障する。
一つの特定の実施例では、補助処理装置は、タスクが完了した時、割り込みパス、メイン処理装置と補助処理装置の間の前記パスと割り込みパスとの組み合わせ、および割り込み信号から検出された通知を通して、メイン処理装置に割り込み信号を発行するように動作する。割り込み信号は、元より待ち時間の少ないパス(low latency path)である。割り込み信号がタスクの完了にともなって発行される実施例では、あらかじめ存在した割り込みパスがメイン処理装置への通知の伝達に利用できるため、割り込み信号からの通知の検出は、メイン処理装置への通知の転送のために専用の効果的な技術を提供する。これにより、補助処理装置上に追加の出力ピンを用意する必要がなく、補助処理装置は単に、通常の方法で割り込み信号を発行するだけでよい。
メイン処理装置は、割り込み信号への応答の際に、割り込み処理を有効にも無効にもプログラムしてよい。割り込み処理を無効にした場合、メイン処理ロジックは、タスクが完了した時に補助処理装置によって発行された割り込み信号を無視するように思われる。しかし、この場合には、メイン処理装置は割り込み信号から検出された通知を受け取った時に、なお省電力モードを終了するようにアレンジしてよい。これは、補助処理装置によるタスクの完了に応答するために、メイン処理装置をいかにアレンジするかということに関して多大な柔軟性を提供する。例えば、適切な割り込みが有効な場合、メイン処装置は、割り込み信号の受け取りに伴ういくつかの例外処理を実行するようにアレンジしてよい。反対に、適切な割り込みが無効な場合、メイン処理装置は代わりに単に通知を受け取った時に省電力モードを終了し、通常動作を再開する。典型的には、その正常動作は、省電力モードに入ったときに起こるポーリング処理の再開を含む。
メイン処理装置が割り込み処理を有効または無効にプログラムすることに代わる手段として、データ処理装置が、さらにメイン処理装置に関連する割り込み制御器を含み、補助記憶装置または他の割り込みソースからメイン処理装置へ発行される割り込み信号を受け取るように動作し、各割り込みソースからの割り込み信号を有効または無効にするようにプログラムできる割り込み制御器が、メイン処理装置がどの割り込み信号に応答して割り込み処理を実行するべきかを制御するようにする。
一つの実施例では、メイン処理装置は、通知が受け取られた際にセットされる制御記憶を有する。これは通知をメイン処理装置に一時的に蓄えることを可能にし、それにより、メイン処理装置は、制御記憶内の値から通知がそれによって受け取られたかどうかを判断することができる。これは、メイン処理装置が完了フィールドをポーリングし、タスクがまだ完了していないと判断する間に、補助処理装置がタスクを完了し(したがって、通知を発行し)、メイン処理装置が省電力モードに入るような状況の際に特に有用である。制御記憶の利用により、そのような状況において通知を見落とす可能性が回避される。
理解される通り、メイン処理装置が省電力モードに入る方法は多数存在する。しかしながら、一つの実施例では、メイン処理装置が完了フィールドを閾値の回数だけポーリングした時に、タスクが完了していないと判断した場合、メイン処理装置は、前記省電力モードに入るようにする通知命令待ちを実行するように動作する。したがって、この実施例に従って、メイン処理装置は、通知が受け取られるときまでに、省電力モードに入るようにする特定の命令を実行するようにアレンジされる。
制御記憶がメイン処理装置内に提供される、一つの特定の実施例では、メイン処理装置は、通知命令待ちが実行された時に、制御記憶がセットされたかどうかを確認し、セットされていれば、省電力モードに入ることを回避するように動作する。代わりに、制御記憶がセットされたと判断された場合、処理装置は単に制御記憶を消去し、例えば、完了フィールドを再びポーリングすることによって、通常動作を再開するようにアレンジすることができる。したがって、これにより、メイン処理装置が不正に省電力モードに入ることが回避される。
ある実施例では、他の動作(通知の受け取り以外)も、メイン処理装置の省電力モードを終了するために用いることができる。例えば、一つの実施例では、メイン処理装置が、省電力モードであるときに、そのメイン処理装置によって例外が受け取られた場合、省電力モードを終了するように動作する。そのような例外には、例えば、有効な(すなわち、マスクされていない)割り込みや不明確なデータの異常終了などがありうる。メイン処理装置がこのような方法で省電力モードを終了できるようにすることによって、メイン処理装置が待ち時間の影響を受けずに、割り込みや他の例外を処理することを可能にする。
いくつかの実施例では、単一の補助処理装置だけであるが、他の実施例では、データ処理装置は、複数の前記補助処理装置を含み、各補助処理装置は、メイン処理装置の代わりに関連するタスクを実行するように動作し、各補助処理装置は、前記関連するタスクが完了したときに、関連する完了フィールドをセットするように動作する。
そのような実施例では、メイン処理装置は、一つ以上の完了フィールドをポーリングするようにアレンジされ、関連する一つ以上のタスクが完了したかどうかを判断し、一つ以上の完了フィールドを閾値の回数だけポーリングした時に、メイン処理装置が、一つ以上の関連するタスクがいずれも完了していないと判断したならば、メイン処理装置は省電力モードに入る。関連するタスクが完了すると、各補助処理装置は、メイン処理装置と補助処理装置とを相互に接続するパス上に通知を発行するように動作し、メイン処理装置は、通知を受け取った時に省電力モードを終了するように動作し、一つ以上の完了フィールドをポーリングして、任意の関連する一つ以上のタスクが完了したかどうかを判断する。
そのような実施例では、通知は、一般にそれがどのタスクと関係しているかを示さず、したがって、タスクに関連する通知がメイン処理装置によってその時点でポーリングされていない場合もあるため、メイン処理装置が省電力モードを終了した時に、一つ以上の関連する完了フィールドをポーリングするために適している。
一つの実施例では、各補助処理装置は、それと関連するタスクの終了にともなって、関連する割り込みパスを通して関連する割り込み信号を発行するように動作し、各パスはメイン処理装置と割り込みパスと関連する補助処理装置の一つとを相互に接続し、通知は関連する割り込み信号から検出され、データ処理装置は、さらに、各補助処理装置によって生成された割り込み信号を受け取るように動作する割り込み制御器と、各補助処理装置からの割り込み信号を有効または無効にするようにプログラム可能な割り込み制御器を含む。そのような実施例では、各補助処理装置は、関連する割り込みパスを通して割り込み信号を発行でき、割り込み制御器は、メイン処理装置への割り込みをアサートするのに適しているかどうかを、受け取った割り込み信号に基づいて判断する。
そのような実施例では、データ処理装置は、さらに各補助処理装置によって発行された割り込み信号を受け取るように動作する通知生成ロジックを備え、そのような任意の割り込み信号を受け取った時に通知を生成する。通知は、一般的には、それが関連するタスクについての情報を含まず、通知生成ロジックは、単に任意の割り込み信号の受け取りに伴う通知を生成するようにアレンジできる。通知は、その生成を引き起こす割り込み信号と異なる形式を取る。特に、一つの実施例では、割り込み信号は一般にはアサートされ、割り込みがメイン処理装置によって受け付けられるまでアサートされ続ける。しかしながら、通知は一般的にはパルス信号の形を取り、したがって例えば、単サイクルでセットされ、リセットされる。
第二の側面から見ると、本発明はデータ処理装置におけるポーリング管理の方法を提供し、データ処理装置はメイン処理装置および、メイン処理装置に代わってタスクを実行する補助処理装置を有し、その方法は、補助処理装置によって前記タスクが完了された際に完了フィールドを設定するステップと、完了フィールドをポーリングし、前記タスクが完了したかどうかを判断するようにメイン処理装置をアレンジするステップと、完了フィールドを閾値の回数だけポーリングした時に、メイン処理装置がタスクが完了していないと判断したならば、メイン処理装置を省電力モードにするステップと、前記タスクが完了したときに、メイン処理装置と補助処理装置とを相互に接続するパスを通して、メイン処理装置へ通知を発行するステップと、メイン処理装置での前記通知を受け取った時に、前記省電力モードを実行するステップとを含む。
本発明は、単なる例として、図と共に例示される実施例を参照することで、さらに説明される。
図1は、例えばCPUなどのメイン処理装置20、および、バス55を介して汎用メモリ80およびビデオ表示メモリ60とそれぞれ連結されている複数の補助処理装置30、40、50を含む、データ処理装置10のブロック図である。ビデオ表示メモリ60は、ビデオ表示メモリ60内に蓄積された画像データを表示するための表示装置70と連結されている。一つの特殊な実施例では、表示装置70を除く、図1に例示された全ての構成要素がシステム・オン・チップ(SoC)として提供される。
メイン処理装置は、ワーキングレジスタ24のセットと連結された実行装置22と組み合わされる。実行装置22は、ワーキングレジスタ24内に保存されるデータ値に関するデータ処理操作を実行できる。データ値は、メモリ80からワーキングレジスタ24へ読み出され、あるいはワーキングレジスタ24からメモリ80へと保存されるが、それぞれが読み出し命令および保存命令の実行である。これらの命令は、実際には、他の命令が実行装置22によって実行されるように要求され、メモリ80から処理装置20へ読み出されることが可能である。
メイン処理装置20は多様なデータ処理操作を実行できるが、特定用途のハードウェア装置30、40、50の一つに、代わりに実行するように委託できるタスクがある。特に、DMA制御器30は、メイン処理装置20の代わりにデータ転送処理を管理するために用いられる。これらのデータ転送処理は、バス55上に存在する装置間のデータ転送、またはこれらの装置の一つから外付けの装置(示されていない)への入/出力ポートを介したデータの転送を含む。データ・アクセラレータ40は、メイン処理装置20の代わりに特定のビデオ処理機能を実行するために用いられる。そのようなビデオ処理機能は、大変集中的なタスクを処理していることがあり、データ・アクセラレータ40は、汎用処理装置20上で処理される場合よりも、より最適化された方法で、これらのタスクを処理するようにアレンジできる。LCD制御器50は、表示装置70への画像データの表示を制御し、その結果、メイン処理装置20をそのタスクから解放する。
したがって、シナリオの例を考えると、メイン処理装置20は、データ・アクセラレータ40に、メモリ80に記憶された生のビデオデータに関するいくつかのビデオ処理機能を実行するように要求する。このタスクが完了すると、メイン処理装置20は、DMA制御器30が、処理されたビデオデータのビデオ表示メモリ60への転送を制御するようにアレンジされる。タスクが完了した時に、メイン処理装置20はビデオ表示メモリ60から表示装置70へのビデオの出力を制御するタスクをLCD制御器50に委託する。
理解される通り、このように補助処理装置を用いるとき、メイン処理装置20は、補助処理装置の一つに割り振られたタスクがいつ完了したかを知る必要がある。これを実現するために、各補助処理装置30、40、50は、例えばメモリ80内などのメモリシステム内に提供された完了応答フラグ82、84、86を有し、特定の補助処理装置がそれに割り振られたタスクを完了すると、その関連する完了フラグをセットする。メイン処理装置20は、バス55を通して適切なメモリアクセス要求を発行することにより、これらの完了フラグの状態をポーリングするようにアレンジすることができる。特定の完了フラグをポーリングしている場合、処理装置は、フラグがセットされたかどうかを判断し、このことが関連する補助処理装置によってタスクが完了されたことを示す。
補助処理装置30、40、50とメイン処理装置20の間での通信に用いられるもう一つのメカニズムは、割り込みメカニズムであり、図1に例示される特定の実施例では、各補助処理装置30、40、50は、関連する割り込みパス32、42、52を有し、それらを通してメイン処理装置20へ割り込み信号を発行する。
当技術分野で周知のように、割り込み制御器94は、補助処理装置によって発行される多様な割り込み信号を受け取ること、および受け取られた割り込み信号によってメイン処理装置20への割り込みのアサーションを制御することが提供されうる。割り込み制御器94は、特定の割り込みを無効に、あるいは”マスク”するように、バス55を介してメイン処理装置20によってプログラムされうる。割り込み制御器94が入力信号に基づいて、割り込みが処理装置20へアサートされるべきであると判断すると、この割り込みは割り込み制御器から出力され、メイン処理装置のポート27で受け取られる。そのような割り込みの受け取りに関連して、メイン処理装置は現在の処理のアクティビティを中断し、割り込み処理ルーチンへと分岐し、要求された方法で割り込みを処理するようにアレンジされる。
一つの実施例では、各補助処理装置30、40、50は、それに関連するタスクの実行を完了したとき、割り込みを発行するようにアレンジされる。メイン処理装置20は、割り込み制御器94の適切なプログラミングによってそれらの割り込みが通知されたかどうかを制御することができる。理解される通り、割り込みは処理装置に現在おこなっていることを中断させ、割り込み処理ルーチンを開始するので、元より処理装置20に対して大変侵害なものである。特定のタスクにとっては、関係する補助処理装置によってそのタスクの完了を呼び出すことは、適切なメカニズムである。しかしながら、他のタスクにとっては、メイン処理装置が、定期的に完了フィールドをポーリングする、侵害の少ない方法を利用して、特定のタスクが完了した時を判断することの方がより効率的である場合もある。
しかしながら、完了フィールドを定期的にポーリングしてタスクの完了を判断するポーリングメカニズムは、ポーリング・ループが特定のタスクの完了を判断し終えるまで多大な回数を実行することが必要となるため、多大な電力の無駄をもたらす。さらに、完了フラグがポーリングされる度に、バス55を通してメモリアクセス要求が発行されなければならず、これは、バスに接続されている様々な装置間のバスに対するアクセスの競争状態を増長する。
本発明の実施例によれば、この問題はメイン処理装置20が完了フィールドをポーリングし、タスクが完了していないと判断し、省電力モードに入るようにアレンジすることによって軽減される。これにより、ポーリング・ループの不必要な反復を回避する。各補助処理装置はタスクの実行が完了した時に、メイン処理装置へ通知を発行するようにアレンジされ、この通知の受け取りがメイン処理装置に省電力モードを終了させる。図1に例示される実施例では、要求された通知の伝送のためにあらかじめ存在する割り込みパス32、42、52を用いることが利点である。
加えて特に、各補助処理装置30、40、50は、タスクの実行が完了すると、関連する割り込みパス32、42、52を通して、割り込み信号を発行し、イベント生成ロジック90は、発行された任意の割り込み信号のようなものを受け取るようにアレンジされる。任意の割り込み信号を受け取った時に、イベント生成ロジック90は、通知を生成するようにアレンジされ、通知はORゲート92を介して、メイン処理装置20のポート26のイベント入力ピン(EVIN)へ経路付けされる。イベント生成ロジック90による通知の発行に加え、ORゲート92はまた、実行装置22によって発行されるポート26のイベント出力ピン(EVOUT)への任意の通知を受け取るようにアレンジされる。実行装置22に特定の状況下で通知を発行することを許可することによって、いずれかの補助処理装置30、40、50によって生成された通知がない場合でも、要求された場合にメイン処理装置20が省電力モードに入ることを回避できる。
メイン処理装置20はまた、処理装置のEVINピンでの通知の受け取りに関連してセットされるように提供されたイベントレジスタ28を有する。このイベントレジスタが利用される方法は、後により詳細を記述する。
図2は、メイン処理装置20において、関連する完了フラグ82、84、86のポーリングに基づいて、補助処理装置30、40、50の一つが、特定のタスクの完了を判断するためのプロセスの流れ図である。プロセスは、ステップ100から開始し、ステップ110で適切な完了フラグがバス55を介して読み込まれる。ステップ120で、タスクの完了を示すフラグがセットされたかどうかを判断する。セットされていなければ、プロセスはステップ130へ分岐し、メイン処理装置20によってイベント処理待ちが実行される。この処理は、後に図3を参照しながら詳細に議論する。イベント処理の待ちを終了するに伴い、プロセスは、ステップ110に戻る。ステップ120で、フラグがセットされたと判断されたとき、プロセスはステップ140に進み、プロセスが完了する。
図3は、図2のステップ130でイベント処理待ちを実行するときに実行されるステップをより詳細に例示する流れ図である。ステップ200でプロセスに入り、ステップ205でメイン処理装置20のイベントレジスタ28内にイベントが記録されたかどうかを判断する。一つの実施例では、省電力モードの終了に引き続いて、これは常に続いてトリガされるイベント処理待ちの最初の回となり、それはこの実施例では、省電力モードが終了した時にイベントレジスタが消去されないためである。これは例えば、処理装置が図2のステップ110および120を実行する間、補助処理装置の一つが割り振られたタスクを完了し、関連する割り込みパスを通して発行された割り込み信号に従って、イベント生成ロジック90によって通知の生成がなされる。ステップ205で、イベントレジスタ内でイベントが記録されたと判断された場合、イベントレジスタはステップ225で消去され、プロセスはステップ230で終了する。図2を参照すると、この場合にはプロセスが直接的にステップ110へ戻り、完了フラグが再びポーリングさせることがわかる。これはメイン処理装置がステップ120でフラグがセットされているかを判断した結果によるが、セットされていない場合、プロセスは再びイベント処理待ちへ一巡して戻ることが図2からわかる。
ステップ205で、通知がイベントレジスタ内に記録されていないと判断された場合、プロセスはステップ210へ進み、メイン処理装置は省電力モードに入る。一つの実施例では、省電力モードはメイン処理装置を、できる限り低電力状態で、ソフトウェアの状態の再構築を必要とせずに、素早い立ち上げ(a fast wake up)を一貫して行うように設置する。その後、プロセスはステップ215へ進み、メイン処理装置20のEVINポートで通知が受け取られたかどうかを判断する。受け取られていなければ、プロセスはステップ217へ進み、未解決の例外があるかどうかを判断する。そのような例外は例えば、ポート27で受け取られた有効な(すなわち、マスクされていない)割り込みや、不明確なデータの異常終了などである。そのようなステップの準備は、処理装置が待ち時間の影響なしに割り込みやその他の例外を処理することを可能にするため有益である。ステップ217でイベント内にそのような例外が検出されない場合、プロセスはステップ215へ戻る。
ステップ215で検出された通知イベントがEVINポートで受け取られた、あるいはステップ217で未解決の例外が検出されたとき、プロセスはステップ220へ進み、省電力モードが終了される。その後、イベント処理の待ちはステップ230で終了する。図2を参照するとわかるように、ステップ215での通知の受け取りによって省電力モードが終了した場合、プロセスはステップ110へ戻り、完了フラグは再びポーリングされる。ステップ217での未解決の例外の検出によって省電力モードが終了しなかった場合、例えば例外ルーチンを実行することによって、メイン処理装置が例外を処理するために必要な機能を実行する。この例外ルーチンが完了すると、メイン処理装置はやがて、完了フラグをポーリングするために探索していた元のルーチンの実行に戻る。これが起こるとき、メイン処理装置はステップ110および120を再実行し、関連する補助処理装置によってタスクが完了したかどうかを判断し、その時点でタスクがまだ完了していない場合のみ、処理装置はステップ130でイベント処理待ちを再実行する。
図3からわかるように、例示された実施例では、通知イベントはステップ215で検出され、省電力モードを終了させるが、省電力モードが終了した時にイベントレジスタから自動的に消去されない。したがって、次にステップ130でプロセッサがイベント処理待ちを再実行するとき、処理はステップ200、205、225、230へ進み、イベントレジスタが消去される。図2を参照すると、この結果、省電力モードが終了されたとき、完了フラグは、省電力モードに再び入る前にタスクが完了したかどうかを判断せずに、二回ポーリングされる必要がある。
理解される通り、図2および図3を参照しながら前記に記述された技術は、メイン処理装置が、完了フラグがセットされたことを判断されるまで関係する完了フィールドを繰り返しポーリングすることで、伝統的な先行技術のアプローチと比較して大幅な電力の節約をもたらす。その代わりに、メイン処理装置は省電力モードに入り、補助処理装置の一つがそれに割り振られたタスクを完了したことを示す通知の受け取りによって、待ち状態が覚醒される。
理解される通り、特定の実施例では、メイン処理装置に省電力モードを終了させるために他の動作も用いられる。例えば、メイン処理装置は、メイン処理装置20によってデバッグエントリ要求が受け取られた場合に、省電力モードを終了するようにアレンジできる。
理解される通り、通知は、割り込み信号がパス32、42、52のいずれかを通して受け取られた時はいつでも、イベント生成ロジック90によって生成されるため、メイン処理装置20による通知の受け取りは、メイン処理装置が完了されるための完了フィールドをポーリングしていたタスクを示す必要がない。例えば、メイン処理装置20は、完了していないDMA制御器へ特定のタスクが割り振られたことによって、省電力モードに入る。メイン処理装置20は例えば、データ・アクセラレータ40またはLCD制御器50が特定の割り振られたタスクを完了することによって、通知の受け取りに伴い省電力モードを終了する。図2においてこのことが理由となり、イベント処理待ちを終了するに伴い、メイン処理装置が関連する完了フラグを再びポーリングするようにアレンジされ、関連するタスクが完了したかどうかを判断する。
別の実施例では、メイン処理装置が完了を待っていたタスクに通知が関連付けられた場合、省電力モードの終了のみをするようにアレンジするなどして、通知を特定の補助処理装置に対してユニークにすることができる。しかしながら、これはメカニズムの複雑化を増長し、したがって図1の実施例では、任意の通知がメイン処理装置に省電力モードを終了させるというように、単純なメカニズムを用いている。多くの実施例では、この単純なメカニズムは大幅な電力の節約をもたらすのに十分であると予想される。
図4は、図2のプロセスの実施例を実行する一連の命令を例示する。始めに、読み込み命令は、関連する完了フラグ82、84、86の内容をレジスタr1(メイン処理装置20のワーキングレジスタ24の一つ)へと読み込むことを実行する。その後、比較命令が、レジスタr1の内容が1とイコールであるかどうかを判断し、すなわち、完了フラグがセットされたかどうかを判断することを実行する(この実施例では、完了フラグは論理値1でセットされ、論理値0でリセットされると想定する)。
比較処理の結果が、レジスタr1が1とイコールでないと判断された場合、イベント命令待ちが条件付きで実行され、図3のプロセスが実行される。イベント処理待ちが実行を完了すると分岐命令が実行され、処理を読み込み命令に戻してループする。理解される通り、比較処理の結果が、レジスタr1内の値が1とイコールであると判断された(すなわち、完了フラグがセットされたことを示す)場合、イベント命令待ちおよび分岐命令は実行されず、代わりに処理は次の命令に進む(示されていない)。
特定の実施例では、メイン処理ロジック20は、同時に一つ以上の完了フラグを監視し、したがって例のように、タスクがDMA制御器30によって実行された時も、完了されたデータ・アクセラレータ40によって実行された時も知ることが望まれる。そのような状況において、メイン処理ロジック20は、関連する二つの完了フラグ82、84上をポーリングすると、省電力モードに入り、二つのタスクが共に完了していないと判断される。補助処理装置30、40、50のいずれかに割り振られたタスクの完了を示す通知を受け取った時に、メイン処理装置は、省電力モードを終了し、関連する完了フィールド82、84を再びポーリングするようにアレンジされる。前記の図2の記述を参照すると、この場合、イベント処理待ちが完了フラグ82、84の両方が読み込まれた場合のみ実行され、両方のフラグがセットされていないと判断されるように、フローを変更してよいことがわかる。
前記の説明からわかる通り、本発明の技術は、特定の補助処理装置によってタスクの完了を待ち、メイン処理装置が低電力状態に入ることを許可するメカニズムを提供する。補助処理装置の一つによってタスクの完了を示す通知が発行されたとき、これはメイン処理装置を起動させ、関連する完了フラグを再びポーリングさせる。
前記に記述された本発明の実施例の技術は、ハードウェアおよびソフトウェアに頼り、エネルギー節約を実現する。ハードウェアは、いずれかの補助処理装置によってタスクが完了した時に、通知がメイン処理装置へ入力されることを可能にするためのパスを提供し、メイン処理装置には、通知が受け取られたかどうかを示すために設置されるレジスタが提供される。ハードウェアはしたがって、省電力モードに入るためのメカニズムを提供し、オペレーティング・システム・ソフトウェアは、イベント命令待ちの発行に対応し、適切な時点で低電力状態に入るようにする。
特定の実施例がここに記述されてきたが、理解される通り、本発明はそれらに限定されるものではなく、本発明の範囲内で多くの変更や追加がなされうる。例えば、本発明の範囲を逸脱しない限り、独立請求項の特徴を用いて、続く従属請求項の特徴の多様な組み合わせを実施することができる。
図1は、本発明の実施例に従ったデータ処理装置のブロック図である。 図2は、本発明の実施例に従った、メイン処理装置によって実行された一連のステップを例示する流れ図である。 図3は、図2のイベント処理待ちを実行するために実行されるステップを例示する流れ図である。 図4は、図2のプロセスを実行するために実行される一連の命令の例である。
符号の説明
20 メイン処理装置
22 実行装置
24 レジスタ
26 ポート
27 ポート
28 イベントレジスタ
30 DMA制御器
32 パス
40 データ・アクセラレータ
42 パス
50 LCO制御器
52 パス
55 バス
60 ビデオ表示メモリ
70 表示装置
80 メモリ
82 完了フラグ
84 完了フラグ
86 完了フラグ
90 イベント生成器
92 ORゲート
94 割り込み制御器

Claims (24)

  1. メイン処理装置と、
    該メイン処理装置の代わりにタスクを実行するように動作する補助処理装置と、を備え、
    前記補助処理装置は前記タスクが完了した時に、完了フィールドをセットするように動作すると共に、前記メイン処理装置は該完了フィールドをポーリングして、前記タスクが完了しているかどうかを判断するように動作し、
    前記完了フィールドを閾値の回数だけポーリングした時に、前記メイン処理装置が、前記タスクが完了していないと判断したならば、該メイン処理装置は省電力モードに入るように動作し、
    前記補助処理装置は前記タスクが完了した時、前記メイン処理装置と前記補助処理装置とを相互に接続するパス上に通知を発行するように動作し、しかも
    前記メイン処理装置は、前記通知を受け取った時に、前記省電力モードを終了するように動作する、
    データ処理装置。
  2. 前記補助処理装置は前記タスクが完了した時に、割り込みパスを通して前記メイン処理装置への割り込み信号を発行し、前記パスは前記メイン処理装置と前記補助処理装置とを相互接続して前記割り込みパスと連携し、前記通知が前記割り込み信号から検出される、請求項1に記載のデータ処理装置。
  3. 前記メイン処理装置は、前記割り込み信号に応答して割り込み処理を有効あるいは無効にするようにプログラム可能であり、割り込み処理が無効である場合、メイン処理ロジックは前記割り込み信号を無視し、該割り込み信号から検出された前記通知を受け取った時に、前記省電力モードを終了するように動作する、請求項2に記載のデータ処理装置。
  4. さらに、前記メイン処理装置と関連する割り込み制御器を含み、前記補助処理装置から、あるいは他の割り込みソースから前記メイン処理装置へ発行される割り込み信号を受け取るように動作し、前記割り込み制御器は、各割り込みソースからの割り込み信号を有効あるいは無効にするようにプログラムでき、前記メイン処理装置が応答して割り込み処理を実行する割り込み信号を制御する、請求項2に記載のデータ処理装置。
  5. 前記メイン処理装置は、前記通知が受け取られた時にセットされる制御記憶を有する、請求項1に記載のデータ処理装置。
  6. 前記完了フィールドを前記閾値の回数だけポーリングした時に、前記メイン処理装置が前記タスクが完了していないと判断したならば、前記メイン処理装置は通知命令待ちを実行し、前記省電力モードに入るように動作する、請求項1に記載のデータ処理装置。
  7. 前記メイン処理装置は、前記通知が受け取られた時にセットされる制御記憶を有して、前記通知命令待ちが実行された時に、前記メイン処理装置は、前記制御記憶がセットされたかどうかを確認し、セットされていれば、前記省電力モードに入ることを回避する、請求項6に記載のデータ処理装置。
  8. 前記メイン処理装置は、前記省電力モード中であるとき、前記メイン処理装置によって例外が受け取られた場合、前記省電力モードを終了するように動作前記例外は有効な割り込み又は不明確なデータの異常終了のいずれか1つを含む、請求項1に記載のデータ処理装置。
  9. 前記補助処理装置を複数個含み、それら補助処理装置の各々は、前記メイン処理装置の代わりに関連するタスクを実行するように動作し、それら補助処理装置の各々は、前記関連するタスクが完了したとき、関連する完了フィールドをセットするように動作する、請求項1に記載のデータ処理装置。
  10. 前記メイン処理装置は、一つ以上の完了フィールドをポーリングするように動作して、前記関連する一つ以上のタスクが完了したかどうかを判断し、
    前記一つ以上の完了フィールドを前記閾値の回数だけポーリングした時に、前記メイン処理装置が、前記一つ以上の関連するタスクがいずれも完了していないと判断したならば、前記メイン処理装置は前記省電力モードに入るように動作し、
    前記補助処理装置の各々は、それぞれに関連するタスクが完了した時、前記メイン処理装置と該補助処理装置とを相互に接続する前記パス上に前記通知を発行するように動作し、しかも
    前記メイン処理装置は、前記通知を受け取った時に前記省電力モードを終了し、前記一つ以上の完了フィールドをポーリングし、前記一つ以上の関連するタスクが完了したかどうかを判断するように動作する、
    請求項9に記載のデータ処理装置。
  11. 前記補助処理装置の各々が、それぞれに関連するタスクが完了した時に、関連する割り込みパスを通して関連する割り込み信号を発行し、各パスは前記メイン処理装置と前記補助処理装置の一つとを相互に接続して、前記関連する割り込みパスと連携し、前記関連する割り込み信号から前記通知が検出され、前記データ処理装置がさらに、
    割り込み制御器は、前記各補助処理装置によって生成された前記割り込み信号を受け取るように動作し、該割り込み制御器は、前記各補助処理装置からの割り込み信号を有効あるいは無効にするようにプログラムできることを含む、請求項9に記載のデータ処理装置。
  12. 前記各補助処理装置によって発行された前記割り込み信号を受け取るように動作し、いくつかの前記割り込み信号を受け取った時に前記通知を生成するように動作する、通知生成ロジックをさらに含む、請求項11に記載のデータ処理装置。
  13. メイン処理装置と、該メイン処理装置の代わりにタスクを実行する補助処理装置とを有するデータ処理装置におけるポーリング管理方法であって、
    前記補助処理装置前記タスク完了した時、前記補助処理装置が完了フィールドをセットするステップと、
    前記メイン処理装置が、該完了フィールドをポーリングして、前記タスクが完了したかどうかを判断するステップと、
    該完了フィールドを閾値の回数だけポーリングした時、記タスクが完了していないと前記メイン処理装置が判断したならば、前記メイン処理装置は省電力モードに入るステップと、
    前記タスクが完了した時、前記補助処理装置が、前記メイン処理装置と前記補助処理装置とを相互に接続するパスを通して前記メイン処理装置へ通知を発行するステップと、
    前記メイン処理装置が、前記通知を受け取った時、前記省電力モードを終了するステップと、
    を含む、前記方法。
  14. 前記スクが完了した時、前記補助処理装置が、割り込みパスを通して前記メイン処理装置に割り込み信号を発行し、前記パスは前記メイン処理装置と前記補助処理装置とを相互に接続して前記割り込みパスと連携するステップ、および
    前記割り込み信号から前記通知を検出するステップ、
    をさらに含む、請求項13に記載の方法。
  15. 前記メイン処理装置は前記割り込み信号に応答して割り込み処理を有効あるいは無効にするようにプログラムでき、割り込み処理が無効である場合、前記メイン処理ロジックは前記割り込み信号を無視し、前記割り込み信号から検出された前記通知を受け取った時、前記省電力モードを終了する、請求項14に記載の方法。
  16. 前記メイン処理装置と関連する割り込み制御器、前記補助処理装置あるいは他の割り込みソースから前記メイン処理装置へ発行される割り込み信号を受け取り、該割り込み制御器は、各割り込みソースからの割り込み信号を有効あるいは無効にするようにプログラムされ、前記メイン処理装置が応答して割り込み処理を実行する割り込み信号を制御する、ステップをさらに含む、請求項14に記載の方法。
  17. 前記通知が受け取られた時、前記メイン処理装置が、前記メイン処理装置内制御記憶をセットするステップをさらに含む、請求項13に記載の方法。
  18. 前記完了フィールドを前記閾値の回数だけポーリングした時に、前記タスクが完了していないと前記メイン処理装置が判断したならば、前記メイン処理装置が通知命令待ちを実行することによって前記省電力モードに入る、請求項13に記載の方法。
  19. 前記通知が受け取られた時に、前記メイン処理装置が、前記メイン処理装置内に制御記憶をセットするステップ、および、
    前記通知命令待ちが実行された時に、前記メイン処理装置が、該制御記憶がセットされたかどうかを確認し、セットされていれば、前記省電力モードに入ることを回避するステップ、
    を含む、請求項18に記載の方法。
  20. 前記メイン処理装置は、前記省電力モード中に該メイン処理装置によって例外が受け取られた場合、該省電力モードを終了前記例外は有効な割り込み又は不明確なデータの異常終了のいずれか1つを含む、請求項13に記載の方法。
  21. 前記データ処理装置は前記補助処理装置を複数個含み、それら補助処理装置の各々が、前記メイン処理装置の代わりに関連するタスクを実行するように動作し、それら補助処理装置の各々は、前記関連するタスクが完了した時に、関連する完了フィールドをセットする、請求項13に記載の方法。
  22. 前記メイン処理装置は、一つ以上の完了フィールドをポーリングして、前記関連する一つ以上のタスクが完了したかどうかを判断し、
    前記一つ以上の完了フィールドを前記閾値の回数だけポーリングした時に、記一つ以上の関連するタスクがいずれも完了していないと前記メイン処理装置が判断したならば、前記メイン処理装置は前記省電力モードに入り、
    前記補助処理装置の各々は、それぞれに関連するタスクが完了すると、前記メイン処理装置と該補助処理装置とを相互に接続するパス上に前記通知を発行し、
    前記メイン処理装置は前記通知を受け取った時、前記省電力モードを終了し、前記一つ以上の完了フィールドをポーリングして、任意の前記関連する一つ以上のタスクが完了したかどうかを判断する、
    請求項21に記載の方法。
  23. 前記補助処理装置の各々は、それぞれに関連するタスクが完了した時、関連する割り込みパスを通して関連する割り込み信号を発行し、各パスは前記メイン処理装置と一つ以上の前記補助処理装置とを相互に接続して、前記関連する割り込みパスと連携し、前記関連する割り込み信号から前記通知が検出され、
    割り込み制御器で、前記各補助処理装置によって生成された前記割り込み信号を受け取るステップであって、該割り込み制御器は前記各補助処理装置からの割り込み信号を有効あるいは無効にするようにプログラムされている、
    前記ステップをさらに含む、請求項21に記載の方法。
  24. 前記各補助処理装置発行た前記割り込み信号を通知生成ロジックへと経路付けるステップ、および
    前記通知生成ロジックがいくつかの前記割り込み信号を受け取った時、該通知生成ロジック前記通知を生成るステップ、
    を含む、請求項23に記載の方法。
JP2005152188A 2004-05-26 2005-05-25 データ処理装置およびそのポーリング・ループ管理方法 Active JP4738891B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB0411792.5 2004-05-26
GB0411792A GB2414573B (en) 2004-05-26 2004-05-26 Control of access to a shared resource in a data processing apparatus
US11/032226 2005-01-11
US11/032,226 US7805550B2 (en) 2004-05-26 2005-01-11 Management of polling loops in a data processing apparatus

Publications (2)

Publication Number Publication Date
JP2005346708A JP2005346708A (ja) 2005-12-15
JP4738891B2 true JP4738891B2 (ja) 2011-08-03

Family

ID=34635451

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005152188A Active JP4738891B2 (ja) 2004-05-26 2005-05-25 データ処理装置およびそのポーリング・ループ管理方法

Country Status (2)

Country Link
JP (1) JP4738891B2 (ja)
GB (1) GB2414575B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5155336B2 (ja) * 2008-01-15 2013-03-06 カーネロンシリコン株式会社 タスク処理装置
JP6070150B2 (ja) 2012-12-14 2017-02-01 富士通株式会社 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11284642A (ja) * 1998-03-31 1999-10-15 Nec Eng Ltd データ伝送システム、ポーリング方法、およびポーリング回数設定方法
JPH11296494A (ja) * 1998-04-15 1999-10-29 Hitachi Ltd 複合プロセッサシステム
JP2000029088A (ja) * 1998-07-07 2000-01-28 Casio Comput Co Ltd 電子カメラ
JP2002079723A (ja) * 2000-06-08 2002-03-19 Ricoh Co Ltd データ通信装置および画像形成装置とそれらによって構成される画像形成装置管理システムおよびその給電制御方法
JP2002141920A (ja) * 2000-10-31 2002-05-17 Pfu Ltd ノード監視方法、ノード監視システム、および記録媒体
JP2002202834A (ja) * 2000-12-28 2002-07-19 Canon Inc 情報処理装置、通信システム、電力制御方法、及び記憶媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577823B2 (en) * 2002-07-03 2009-08-18 Nxp B.V. Wake-up and sleep conditions of processors in a multi-processor system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11284642A (ja) * 1998-03-31 1999-10-15 Nec Eng Ltd データ伝送システム、ポーリング方法、およびポーリング回数設定方法
JPH11296494A (ja) * 1998-04-15 1999-10-29 Hitachi Ltd 複合プロセッサシステム
JP2000029088A (ja) * 1998-07-07 2000-01-28 Casio Comput Co Ltd 電子カメラ
JP2002079723A (ja) * 2000-06-08 2002-03-19 Ricoh Co Ltd データ通信装置および画像形成装置とそれらによって構成される画像形成装置管理システムおよびその給電制御方法
JP2002141920A (ja) * 2000-10-31 2002-05-17 Pfu Ltd ノード監視方法、ノード監視システム、および記録媒体
JP2002202834A (ja) * 2000-12-28 2002-07-19 Canon Inc 情報処理装置、通信システム、電力制御方法、及び記憶媒体

Also Published As

Publication number Publication date
GB2414575B (en) 2007-06-06
GB2414575A (en) 2005-11-30
JP2005346708A (ja) 2005-12-15
GB0508005D0 (en) 2005-05-25

Similar Documents

Publication Publication Date Title
US7805550B2 (en) Management of polling loops in a data processing apparatus
US8539485B2 (en) Polling using reservation mechanism
GB2566446B (en) Message handling unit to control passing of messages between power domains in an integrated circuit
US8117475B2 (en) Direct memory access controller
EP0166272B1 (en) Processor bus access
JP4685312B2 (ja) データ処理システムおよび電力節約方法
US8607241B2 (en) Compare and exchange operation using sleep-wakeup mechanism
US9141572B2 (en) Direct memory access controller
US20040205719A1 (en) Hop method for stepping parallel hardware threads
JPH04246740A (ja) マイクロコンピュータ
US11360809B2 (en) Multithreaded processor core with hardware-assisted task scheduling
KR20100053593A (ko) 컴퓨터 시스템에서 다른 프로세서들에 대한 시스템 관리 인터럽트들을 방송하기 위한 메커니즘
US20140129784A1 (en) Methods and systems for polling memory outside a processor thread
US7565659B2 (en) Light weight context switching
US7222251B2 (en) Microprocessor idle mode management system
WO1999027434A1 (en) Using firmware to enhance the functionality of a controller
CN113093899B (zh) 一种跨电源域数据传输方法
US6516378B1 (en) Microprocessor for controlling busses
JP4738891B2 (ja) データ処理装置およびそのポーリング・ループ管理方法
US9946665B2 (en) Fetch less instruction processing (FLIP) computer architecture for central processing units (CPU)
US7197655B2 (en) Lowered PU power usage method and apparatus
JP2875546B2 (ja) 情報処理システム
JPH1139266A (ja) マルチプロセッサ装置
JP2001290664A (ja) マルチタスク制御プロセッサシステム
JP2000285089A (ja) マイクロプロセッサ及びデータの共有方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110310

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110427

R150 Certificate of patent or registration of utility model

Ref document number: 4738891

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

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250