JP3607209B2 - クロック制御方法及び当該クロック制御方法を用いた情報処理装置 - Google Patents

クロック制御方法及び当該クロック制御方法を用いた情報処理装置 Download PDF

Info

Publication number
JP3607209B2
JP3607209B2 JP2001065403A JP2001065403A JP3607209B2 JP 3607209 B2 JP3607209 B2 JP 3607209B2 JP 2001065403 A JP2001065403 A JP 2001065403A JP 2001065403 A JP2001065403 A JP 2001065403A JP 3607209 B2 JP3607209 B2 JP 3607209B2
Authority
JP
Japan
Prior art keywords
instruction
clock
execution
processing
stage
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
JP2001065403A
Other languages
English (en)
Other versions
JP2002268877A (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 JP2001065403A priority Critical patent/JP3607209B2/ja
Priority to US10/093,543 priority patent/US7000135B2/en
Publication of JP2002268877A publication Critical patent/JP2002268877A/ja
Application granted granted Critical
Publication of JP3607209B2 publication Critical patent/JP3607209B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、プロセッサを用いる情報処理装置に関する。特に、クロック供給の制御方法に特徴を有する情報処理装置に関する。
【0002】
【従来の技術】
命令を処理するプロセッサをはじめとした情報処理装置において、命令実行のスループットを向上させるために一般的にパイプライン処理が行われる。一般的なパイプライン構成としては、IFステージ(命令フェッチステージ)、DECステージ(命令デコードステージ)、EXステージ(命令実行ステージ)、MEMステージ(メモリアクセスステージ)、WBステージ(メモリライトバックステージ)の5段階構成が良く用いられている。通常は各ステージに同じ周波数のクロックが供給されることによって、各ステージにおける処理が進行することになる。
【0003】
また、プロセッサ自体の実行性能を向上させるためには、実行周波数を増加させることによって処理の高速化を図ることが多い。しかしながら、処理の高速化を図るためにクロック周波数を増加させると、クロック周波数に比例してプロセッサの消費電力が増加してしまう。特に、プロセッサが搭載される携帯機器等においては、処理性能の向上とともに消費電力低減が課題となっており、かかる技術的ジレンマをいかに解決していくかが重要な課題の一つとなっている。
【0004】
従来から、消費電力低減を実現するために、あるステージで複数サイクルの処理を必要とする場合には他のステージのクロック供給を停止するという技術がある。この技術においては、EXステージで複数サイクルの処理を行っている場合には、DECステージ及びIFステージのクロック供給を停止し、DECステージ及びIFステージにおける動作を停止させることができることから、パイプラインにおいて処理が停止するステージでの消費電力を低減させることが可能となる。
【0005】
同様の手法により、MEMステージにおいて複数サイクル処理を行っている場合に、EXステージ、DECステージ、及びIFステージのクロック供給を停止させることによって、消費電力を低減させることも可能である。
【0006】
【発明が解決しようとする課題】
しかしながら、上述したような従来の解決方法では、例えばMEMステージで複数サイクル処理を行っている場合にはEXステージのクロック供給が停止されるために、EXステージに存在する命令はEXステージに投入されてから実行が停止することになる。このため、MEMステージで複数サイクルの処理を行っているサイクル期間中にEXステージで複数サイクル処理を必要とする命令が投入されても、MEMステージでの実行が完了していないとEXステージでの多サイクル命令の実行が開始できない。このために、MEMステージの実行が完了した時点ではEXステージの命令は実行完了しておらず、MEMステージでも実行完了後にEXステージの命令をすぐにMEMステージに投入することができないという問題点が生じることになる。
【0007】
図1を参照しながら上述した例における処理のタイミングについて詳細に説明する。図1においては、MEMステージで7サイクルの処理が行われる命令Aと、EXステージで5サイクルの処理が行われる命令Bが連続して実行される場合のパイプライン状態を示している。
【0008】
サイクル1−1、1−2において、順次命令Aおよび命令BがパイプラインのDECステージに投入され、サイクル1−3から命令AのMEMステージでの処理が開始される。同時にサイクル1−3において命令BはEXステージに投入される。
【0009】
命令AはMEMステージで7サイクルの処理であるため、サイクル1−4の期間においては命令Aの実行によってMEMステージにおけるパイプロックが発生する。従来の技術では、MEMステージでの処理完了までEXステージのクロック供給を停止させるため、サイクル1−4の期間、図1に示すようにEXステージクロックは停止されることになる。したがって、EXステージでは命令Bの処理が行われるが、EXステージクロックが停止しているため、処理の継続を行うことはできない。
【0010】
EXステージにクロック供給が再開されるのは、MEMステージの命令Aの実行が完了したサイクル1−5からであり、EXステージの命令Bの実行再開はサイクル1−5から行われる。
【0011】
EXステージにクロックが供給されつづけている場合には、命令Bは命令AがMEMステージで処理を行っている期間でも実行を行うことが可能であり、命令AがWBステージに投入されるサイクル1−5の時点で命令BをMEMステージに投入することが可能である。しかし、消費電力を下げる従来の技術では、命令AがWBステージに投入されないとEXステージの実行が再開されないために、実際にはサイクル1−7でMEMステージに投入されることになる。
【0012】
すなわち、消費電力を低減させるために、パイプライン処理における実行効率を損なう処理が行われていることになる。また、ハードウェアにおけるすべての命令実行時に上記のようなクロック停止が行われるため、プログラム処理の性質上、クロックを停止せずに通常動作と同等の性能での処理を行いたい場合においては、別途クロックを停止させないように指定する手段を設ける必要が生じることになる。
【0013】
本発明は、上記問題点を解消するべく、パイプライン処理の実行効率を損なうことなく消費電力を低減することができるクロック制御方法及び当該クロック制御方法を用いた情報処理装置を提供することを目的とする。
【0014】
【課題を解決するための手段】
上記目的を達成するために本発明にかかるクロック制御方法は、クロックに同期して処理を行う処理回路と、前記処理回路へのクロック供給を制御するクロック供給制御回路を有する情報処理装置のクロック制御方法において、前記処理回路における処理の実行開始から処理結果の出力までに必要とするサイクル数を抽出する工程と、抽出された前記サイクル数を前記クロック供給制御回路に伝達する工程と、前記処理回路における処理の開始からクロック供給を開始する工程と、前記サイクル数の供給が終了した後、前記処理に後続する処理が無い場合には前記処理回路へのクロック供給を停止する工程を有することを特徴とする。
【0015】
かかる構成により、処理に必要なサイクル数分だけクロックを供給することができることから、無駄なクロック供給を未然に防止することができ、消費電力を低減することが可能となる。
【0016】
また、本発明にかかるクロック制御方法は、サイクル数が、処理実行開始から処理結果出力までの最小サイクル数以上であり、常時供給した場合のサイクル数よりも小さいことが好ましい。最小サイクル数において最も顕著な効果を得ることができるが、最低限常時供給した場合におけるサイクル数より小さければ同様の効果が期待できるからである。
【0017】
次に上記目的を達成するために本発明にかかるクロック制御方法は、クロックに同期して処理を行う第1の処理回路及び第2の処理回路と、第1の処理回路へのクロック供給を制御するクロック供給制御回路と、第1の処理回路における処理結果が入力される第2の処理回路とを有する情報処理装置のクロック制御方法において、第1の処理回路において第1の処理及び第2の処理が連続して処理される場合であり、かつ第2の処理回路において第1の処理回路の処理結果を入力として第3の処理を開始すると同時に、第1の処理回路において第2の処理を実行する場合に、第1の処理回路における処理の実行に必要な第1のサイクル数を抽出する第1の工程と、第1のサイクル数をクロック供給制御回路に伝達する第2の工程と、第1の処理回路における処理の開始からクロック供給を開始する第3の工程と、第1のサイクル数分のクロック供給が終了した時点で第2の処理回路における処理が開始可能か否かを判断する第4の工程と、第1の処理回路における第2の処理の処理実行に必要な第2のサイクル数を抽出する第5の工程と、第2のサイクル数をクロック供給制御回路に伝達する第6の工程と、第4の工程において処理開始が可能であると判断された場合、第1の処理回路における処理結果を第2の処理回路に入力する第7の工程と、第4の工程における処理開始が可能であると判断された場合、第1の処理回路へ第2のサイクル数のクロックを供給開始し、第2の処理回路における処理を第1の処理回路において処理を開始する第8の工程を含むことを特徴とする。
【0018】
かかる構成により、処理に必要なサイクル数分だけクロックを供給することができることから、無駄なクロック供給を未然に防止することができ、消費電力を低減することが可能となる。
【0019】
次に上記目的を達成するために本発明にかかるクロック制御方法は、クロックに同期して処理を行う第1の処理回路及び第2の処理回路と、第1の処理回路へのクロック供給を制御するクロック供給制御回路と、第1の処理回路における処理結果が入力される第2の処理回路とを有する情報処理装置のクロック制御方法において、第1の処理回路における処理と第2の処理回路における処理とが連続して処理される場合に、第1の処理回路における処理の実行に必要な第1のサイクル数を抽出する第1の工程と、第1のサイクル数をクロック供給制御回路に伝達する第2の工程と、第1の処理回路における処理の開始からクロック供給を開始する第3の工程と、第1のサイクル数分のクロック供給が終了した時点で第2の処理回路における処理が開始可能か否かを判断する第4の工程と、第1の処理回路における第2の処理の処理実行に必要な第2のサイクル数を抽出する第5の工程と、第2のサイクル数をクロック供給制御回路に伝達する第6の工程と、第4の工程において処理開始が可能であると判断された場合、第1の処理回路における処理結果を第2の処理回路に入力する第7の工程と、第4の工程における処理開始が可能であると判断された場合、第1の処理回路へ第2のサイクル数のクロック供給を開始し、第2の処理回路における処理を第1の処理回路において処理を開始する第8の工程を含むことを特徴とする。
【0020】
次に上記目的を達成するために本発明にかかるクロック制御方法は、命令をパイプライン処理することが可能な情報処理装置のクロック制御方法において、実行ステージにおける命令実行に必要なサイクル数を抽出する工程と、実行ステージに属する回路へのクロック供給を制御する工程と、抽出されたサイクル数を伝達する工程を含み、実行ステージにおける命令の実行開始からサイクル数分だけクロック供給を行うことを特徴とする。
【0021】
かかる構成により、実行サイクルに必要なクロック供給のみを行うことによって、パイプライン処理の実行効率を損なうことなく消費電力を低減することが可能となる。
【0022】
また、本発明にかかるクロック制御方法は、サイクル数を抽出する工程において、命令ごとに実行ステージにおける実行サイクル数を定め、命令コードをデコードし、命令の種別を判定すると同時に実行サイクル数をサイクル数として抽出することが好ましい。
【0023】
また、本発明にかかるクロック制御方法は、サイクル数を抽出する工程において、実行ステージにおける実行サイクル数を命令のビットコードで定める実行サイクル数フィールドを設け、命令コードをデコードし、命令の種別を判定すると同時に、実行サイクル数フィールドから実行ステージにおける命令実行サイクル数をサイクル数として抽出することが好ましい。同様に、ハードウェア的に命令ごとの実行サイクル数を記憶したり、あるいは命令ごとのクロックを生成する回路が不要になることから、デコーダ回路自体の規模を縮小することができ、全体として消費電力を削減することができるからである。
【0024】
また、本発明にかかるクロック制御方法は、サイクル数を抽出する工程において、情報処理装置が実行するすべての命令を実行ステージにおける実行サイクル数によってグループに分別し、分別されたグループごとにグループ番号を定め、命令コードにグループ番号を設定するグループ番号フィールドを設け、命令コードをデコードし、命令の種別を判定すると同時にグループ番号を抽出し、グループ番号に対応する実行サイクル数をサイクル数として抽出することが好ましい。同様に、ハードウェア的に命令ごとの実行サイクル数を記憶したり、あるいは命令ごとのクロックを生成する回路が不要になることから、デコーダ回路自体の規模を縮小することができ、全体として消費電力を削減することができるからである。
【0025】
また、本発明にかかるクロック制御方法は、サイクル数を抽出する工程において、可変長命令を処理する場合には、命令コードの命令語長ごとに実行ステージにおける実行サイクル数を定め、命令コードをデコードし、実行する命令を判定すると同時にデコードした命令の命令語長から実行サイクル数をサイクル数として抽出することが好ましい。同様に、ハードウェア的に命令ごとの実行サイクル数を記憶したり、あるいは命令ごとのクロックを生成する回路が不要になることから、デコーダ回路自体の規模を縮小することができ、全体として消費電力を削減することができるからである。
【0026】
次に上記目的を達成するために本発明にかかるクロック制御方法は、命令をパイプライン処理することができる情報処理装置のクロック制御方法において、実行ステージにおける命令実行に必要なサイクル数を抽出する工程と、実行ステージに属する回路へのクロック供給を制御する工程と、サイクル数を伝達する工程と、実行ステージにおける命令の実行開始時点からクロック供給を行うか否かを選択する工程を含み、クロック供給を選択する工程においてクロック供給を行うと選択された場合、クロック供給を制御する工程において実行ステージにおける命令の実行開始からサイクル数分だけクロック供給を開始することを特徴とする。
【0027】
かかる構成により、実行ステージにおける命令の実行開始時点からクロック供給を行うか否かを判断して、必要な場合にのみクロック供給を行うことができることから、パイプライン処理の実行効率を損なうことなく消費電力を低減することが可能となる。
【0028】
また、本発明にかかるクロック制御方法は、クロック供給を選択する工程において、命令コードに実行ステージにおける命令の実行開始からクロック供給を行うか否かを示すクロック供給許可ビットを設け、命令コードのデコードと同時にクロック供給許可ビットからクロック供給を行うか否かの情報を抽出することが好ましい。クロック供給許可ビットからクロック供給を行うか否かを判断できるので、ハードウェア的にクロック供給の必要性を判断する必要が無く、その分消費電力を低減することが可能となるからである。
【0029】
また、本発明にかかるクロック制御方法は、連続する第1の命令と第2の命令との依存関係を解析し、第2の命令が第1の命令の実行結果を参照する場合には、クロック供給許可ビットをオン状態にすることが好ましい。依存関係にある第1の命令が実行完了次第、第2の命令にクロック供給できるようにするためである。
【0030】
次に上記目的を達成するために本発明にかかるクロック制御方法は、命令をパイプライン処理することができる情報処理装置の制御方法において、実行ステージにおける命令の実行に必要なサイクル数を抽出する工程と、実行ステージに属する回路へのクロック供給を制御できる工程と、サイクル数を伝達する工程と、実行ステージにおける命令の実行開始時点からクロック供給を行うか否かを選択する工程と、実行ステージの次のステージの状態を判定する工程を含み、クロック供給を選択する工程においてクロック供給を行うと選択され、次のステージの状態を判定する工程において次のステージが実行可能であると判定された場合、クロック供給を制御する工程において実行ステージにおける命令の実行開始からサイクル数分だけクロック供給を開始することを特徴とする。
【0031】
かかる構成により、実行ステージにおける命令の実行開始時点からクロック供給を行うか否かを判断するとともに、次のステージの状態に応じてクロック供給を行うことができることから、パイプライン処理の実行効率を損なうことなく消費電力を低減することが可能となる。
【0032】
また、本発明にかかるクロック制御方法は、クロック供給を選択する工程において、実行ステージの次のステージで実行中の第1の命令の実行状態と、実行ステージで実行開始する第2の命令と第1の命令の依存関係を判定し、第2の命令が第1の命令の実行結果に依存する場合には、第1の命令の実行完了まで第2の命令を実行ステージで実行するのに必要なサイクル数のクロック供給を行わないことを選択し、依存しない場合には、実行ステージで実行するのに必要なサイクル数のクロック供給を行うことを選択することが好ましい。依存関係にある場合に第1の命令が完了するまで第2の命令を実行することがないようにするためである。
【0033】
次に上記目的を達成するために本発明にかかるクロック制御方法は、命令をパイプライン処理することができる情報処理装置の制御方法において、実行ステージにおける命令の実行に必要なサイクル数を抽出する工程と、実行ステージに属する回路へのクロック供給を制御する工程と、サイクル数を伝達する工程と、実行ステージにおける命令の実行開始時点からクロック供給を行うか否かを選択する工程と、実行ステージより後のすべてのステージで命令実行が完了していることを検出する工程を含み、クロック供給を選択する工程においてクロック供給を行うと選択され、実行ステージより後のすべてのステージで命令実行が完了していることが検出された場合、クロック供給を制御する工程において、実行ステージにおける命令の実行開始からサイクル数分だけクロック供給を開始することを特徴とする。
【0034】
かかる構成により、実行ステージにおける命令の実行開始時点からクロック供給を行うか否かを判断するとともに、パイプライン処理の実行効率を下げてプログラムを実行して良い場合により低消費電力化を図ることが可能となる。
【0035】
また、本発明にかかるクロック制御方法は、パイプラインの各ステージごとに各ステージへのクロック供給の制御が可能であり、各ステージにおける命令の実行時以外は各ステージのクロック供給を停止可能であることが好ましい。無駄なクロック供給を回避することができるからである。
【0036】
また、本発明にかかるクロック制御方法は、命令コードに低速動作ビット設けられ、低速動作ビットがセットされている命令を実行ステージで実行する場合には、実行ステージより後のステージにおいて先行する命令の実行がすべてのステージで完了したと検出した後にサイクル数分のクロック供給を開始することが好ましい。低速動作ビットによって、高速動作が必要とされない処理において、処理にかかる消費電力を低減することができるからである。
【0037】
また、本発明にかかるクロック制御方法は、高級言語で記述されているプログラムに基づいて生成される実行形式コードが用いられるクロック制御方法であって、高級言語によるプログラム記述によって、低速動作を行うか否か指定される工程を含み、高級言語によって低速動作を行うと指定されたプログラム記述実行形式コードに変換される場合に、クロック供給開始許可ビットオン状態とされることが好ましい。プロセッサが動的に消費電力状態を検出する必要がないため、検出回路のハードウェア実装が不要となり、消費電力の低減効果を得ることができるからである。
【0038】
次に上記目的を達成するために本発明にかかる情報処理装置は、命令をパイプライン処理することが可能な情報処理装置において、実行ステージにおける命令実行に必要なサイクル数を抽出する手段と、前記実行ステージに属する回路へのクロック供給を制御する手段と、抽出された前記サイクル数を伝達する手段を含み、前記実行ステージにおける命令の実行開始から前記サイクル数分だけクロック供給を行い、前記命令がメモリステージに投入されるまでの間は前記クロック供給を停止することを特徴とする。
【0039】
かかる構成により、パイプライン処理を行うプロセッサにおいて実行性能を落とさずに消費電力の低減効果を得ることができ、命令コード中に実行サイクル数を定義できるようにすることでハードウェア資源の増加を抑えて、かつ消費電力の低減効果を得ることが可能となる。
【0040】
【発明の実施の形態】
(実施の形態1)
以下、本発明の実施の形態1にかかるクロック制御方法を用いた情報処理装置について、図面を参照しながら説明する。図2は、本発明の実施の形態1にかかるクロック制御方法を用いた情報処理装置のシステム構成図である。
【0041】
図2において、201はクロックに同期して処理を行う第1の処理回路を、202は第1の処理回路201のクロックを制御するクロック制御回路を、203はサイクル数抽出回路を、204はクロック制御回路202へ入力されるクロックを、208はサイクル数抽出回路203で抽出された処理サイクル数を、214はクロック204を生成するクロックジェネレータを、209はクロック制御回路202から処理回路201に入力される処理回路クロックを、210はクロックの最終サイクルを示すクロック終了信号を、それぞれ示す。
【0042】
また、205は第1の処理回路201への命令を、206は第1の処理回路201へのリクエストを、207は第1の処理回路201への入力データを、それぞれ示しており、これらはシステム制御部213から出力される。さらに、211は第1の処理回路201からの出力データを、212は出力データ211を新たな入力として動作する第2の処理回路を、それぞれ示してしる。
【0043】
図3は、本実施の形態1にかかるロック制御方法を用いた情報処理装置における処理の流れ図である。図3において、システム制御部213から第1の処理回路201における処理の命令及びリクエストがある場合、サイクル数抽出ステップ(ステップS301)において第1の処理回路201での処理に必要なサイクル数を抽出する。
【0044】
次に、第1の処理回路201にクロックを供給開始するとともに(ステップS302)、データを入力する(ステップS303)。そして、ステップS301で抽出したサイクル数のクロック供給を完了したか否かを判定し(ステップS304)、クロック供給を完了していない場合には(ステップS304:No)、次の1サイクルのクロックを出力する(ステップS306)。ステップS306後、再度ステップS304を繰り返す。
【0045】
ステップS304において抽出したサイクル数のクロック供給を完了したと判定した場合(ステップS304:Yes)、第1の処理回路201における処理は完了したことになり、データを出力することになる(ステップS305)。
【0046】
次に、後続する命令があるかどうかを判定し(ステップS307)、後続する命令がある場合には(ステップS307:Yes)、ステップS301から再度処理を行い、後続する命令が無い場合には(ステップS307:No)、クロック制御回路202からのクロック供給を停止して(ステップS308)、次の命令があるまでステップS307を繰り返すことになる。
【0047】
図4に、クロック供給のタイミング図を示す。図4において、リクエストと命令がサイクル4−1で発生すると、処理に必要なサイクル数を抽出して、処理回路クロックの供給を開始する。なお、図4においては、処理が5サイクルで行われる場合について説明する。
【0048】
すなわち、処理は5サイクルで行われるため、処理回路クロックは5サイクルのクロック供給を行い(サイクル4−2)、その後、処理回路クロックを停止する。
【0049】
クロックの最終サイクル4−3ではクロック終了信号を出力し、第1の処理回路201から処理結果のデータを出力する。あるいは、クロック終了信号が出力されているサイクルでのデータ出力を有効と判断する。
【0050】
以上のように本実施の形態1によれば、システム制御部213から第1の処理回路201における処理の命令及びリクエストがある場合、第1の処理回路201での処理に必要なサイクル数を事前に抽出しておき、その分だけクロックを供給することから、無駄なクロック供給を未然に回避することが可能となる。
【0051】
(実施の形態2)
以下、本発明の実施の形態2にかかるクロック制御方法を用いた情報処理装置について、図面を参照しながら説明する。本実施の形態2では、第1の処理回路201が、連続して第1の処理と第2の処理を行う場合のクロック制御方法について説明する。図2において、第1の処理回路201は、処理が終了すると第2の処理回路212にデータを出力し、第2の処理回路212が処理を開始すると、第1の処理回路201は第2の処理を開始することになる。
【0052】
また、図16は、本発明の実施の形態2にかかるクロック制御方法を用いた情報処理装置での第1の処理回路における処理の流れ図である。図16において、システム制御部213から第1の処理回路201における処理の命令及びリクエストがある場合、まず第1の処理回路201における処理に必要なサイクル数を抽出する(ステップS301)。
【0053】
次に、第1の処理回路201に対してクロック供給を開始するとともに(ステップS302)、データを入力する(ステップS303)。そして、ステップS301で抽出したサイクル数分のクロック供給を完了していないと判定された場合には(ステップS304:No)、次の1サイクルのクロックを出力して(ステップS306)。抽出したサイクル数になるまでステップS304を繰り返す。
【0054】
ステップS304において抽出したサイクル数分のクロック供給を完了したと判定された場合には(ステップS304:Yes)、第1の処理回路201における処理は完了したことになり、データを出力することになる(ステップS305)。
【0055】
次に、第1の処理回路201への次のリクエストがあるか否かを判定する(ステップS1601)。次のリクエストがないと判定された場合には(ステップS1601:No)、クロック供給を停止し(ステップS1604)、次のリクエストがあるまでクロック供給は行われない。
【0056】
次のリクエストがあると判定された場合には(ステップS1601:Yes)、次のリクエストに対する処理実行にかかるサイクル数を抽出し(ステップS1602)、現在第1の処理回路201が出力しているデータを新たな入力として第2の処理回路212が処理を開始できるか否かを判定する(ステップS1603)。
【0057】
第2の処理回路212が処理を開始できると判定された場合には(ステップS1603:Yes)、第2の処理回路212は第1の処理回路201における出力データを取り込んで処理の実行を開始し、第1の処理回路201はステップS302に戻って次のリクエストに対する処理を実行する。
【0058】
第2の処理回路212が処理を開始できないと判定された場合には(ステップS1603:No)、クロック供給を停止し、第2の処理回路212で現在第1の処理回路201が出力しているデータを用いた処理を開始できるようになるまでクロック供給を停止する(ステップS1604)。
【0059】
次に、図17には本発明の実施の形態2にかかるクロック制御方法を用いた情報処理装置におけるクロック供給のタイミング図を示す。図17において、第1のリクエスト及び命令がサイクル17−1で発生すると、処理に必要なサイクル数を抽出して処理回路に対してクロック供給を開始する。
【0060】
なお、図17においては、図4と同様に、処理が5サイクルで行われる場合について説明する。すなわち、第1のリクエスト及び命令に対する処理は5サイクルで行われるため、処理回路クロックはサイクル17−2に示すように5サイクルのクロック供給を行い、5サイクル分のクロック供給が完了したら処理回路クロックが停止する。処理回路クロックの最終サイクル17−3においてはクロック終了信号を出力し、第1の処理回路201から第2の処理回路212にデータを出力する。
【0061】
また、処理回路クロックの最終サイクル17−3においては、第2の処理回路212が処理を開始することができるか否かを判定する。図17は、サイクル17−3においては処理を開始することができない場合を示しており、第2の処理回路212はサイクル17−5において処理を開始できることを示している。
【0062】
すなわち、サイクル17−5において第2の処理回路212が処理開始信号を出力するまで、第1の処理回路201は次のリクエスト及び命令が入力されても実行を開始することはなく、またクロック供給も停止されたままとなる。さらに、サイクル17−3において第2のリクエストが第1の処理回路201に入力されたとしても、第1の処理回路201は、処理回路クロックの供給が完了してから第2の処理回路が処理を開始できるサイクル17−5までのサイクル期間17−4の間は、第2のリクエストに対する処理の実行を開始することはない。サイクル17−4の期間中は、第1の処理回路201における第2のリクエストに対する処理に必要なサイクル数を抽出するのみである。
【0063】
そして、サイクル17−5において、第2の処理回路212が処理を開始することができるようになると、第2の処理回路212は第1の処理回路201の出力データを用いて処理を開始し、同時に第1の処理回路201は第2のリクエスト及び命令についての処理を開始する。サイクル17−5においては、第1の処理回路201はサイクル17−1と同様に、処理に必要なクロック数のみクロック供給が開始される。
【0064】
以上のように本実施の形態2によれば、第2の処理回路で実行中であっても、次の処理を第1の処理回路で実行することができ、無駄なクロック供給を未然に回避することが可能となる。
【0065】
(実施の形態3)
以下、本発明の実施の形態3にかかるクロック制御システムについて、図面を参照しながら説明する。図5は、本実施の形態3にかかるクロック制御方法を用いたパイプライン処理を行うプロセッサの構成図を示しており、EXステージでの実行サイクル数の抽出を命令デコーダで行うプロセッサを示している。
【0066】
図5には標準的な5段パイプライン構成のプロセッサを示している。図5において、IFステージ501、DECステージ502、MEMステージ504、WBステージ505には、クロックジェネレータ509からクロック510が供給される。EXステージ503には、クロック510がクロック制御部507で制御されたEXステージクロック516が供給される。
【0067】
DECステージ502内には、命令がEXステージ503において何サイクルで実行されるかを抽出するサイクル数抽出部506を装備している。クロック制御部507はDECステージ502内のサイクル数抽出部506によって抽出されたサイクル数517が出力され、EXステージ503での必要サイクル数をEXステージ503に供給する。
【0068】
EXステージ503と、MEMステージ504には、各ステージでの命令実行状態を判定するEXステージ状態判定部512、MEMステージ状態判定部511を装備し、EXステージ判定結果521とMEMステージ判定結果522がEXステージ実行開始要求生成部513に出力する。
【0069】
DECステージ502からのリクエスト523が出力されると、EXステージ実行開始要求生成部513はEXステージ判定結果521とMEMステージ判定結果522からEXステージ503に命令投入可能であると判断した場合、実行開始信号518をEXステージ503へ出力する。また、実行開始信号518はクロック制御部507へも入力される
依存関係判定部514はDECステージ502にある命令の情報であるDEC命令情報520と、EXステージ503にある命令の情報であるEX命令情報519からDECステージの命令とEXステージの命令との依存関係を判定し、依存判定結果524を出力する。供給開始信号生成部508は実行開始信号518と依存判定結果524からEXステージにいまから投入する命令が先行命令と依存関係が無い場合には供給開始信号515をクロック制御部507へ出力する。
【0070】
図6には、命令実行及びクロック供給時における処理の流れ図を示す。図6では、DECステージ、EXステージにおける処理の流れ図を示している。
【0071】
まず、DECステージに命令があるかどうかを調べる(ステップS601)。命令が存在しない場合には(ステップS601:No)、クロック1サイクル待機する(ステップS602)。命令が存在する場合には(ステップS601:Yes)、デコードした命令に対してEXステージでの実行サイクル数を抽出する(ステップS603)。
【0072】
次に、EXステージへ命令投入が可能かどうかを判定する。まずEXステージにおいて先行する命令が存在するかどうかを調べ(ステップS604)、先行する命令が存在する場合には(ステップS604:Yes)、当該命令の実行が完了しているか否かを判定する(ステップS605)。ステップS605において実行が完了していないと判定された場合には(ステップS605:No)、クロック1サイクル分だけ待機し(ステップS606)、実行が完了していると判定された場合には(ステップS605:Yes)、MEMステージにおける実行が完了したか否かを調べる(ステップS607)。
【0073】
ステップS607において実行が完了していないと判断された場合には(ステップS607:No)、クロック1サイクル分だけ待機し(ステップS608)、実行が完了していると判定された場合には(ステップS607:Yes)、EXステージに命令投入が可能であるものと判断し、EXステージの実行開始要求を出してEXステージへ命令の投入を行う(ステップS609)。それと同時に、クロック制御部へEXステージに供給するサイクル数を入力する(ステップS610)。また、先行する命令と今からEXステージで実行する命令との依存関係の有無を確認する(ステップS611)。
【0074】
ステップS611において依存関係が無いと判断され(ステップS611:No)、かつステップS609においてEXステージ実行開始要求がある場合には,クロックの供給を開始することになる(ステップS612)。
【0075】
EXステージに命令が投入されても、先行する命令にこれからEXステージで実行開始する命令が依存している場合、すなわち現在MEMステージで実行している命令のMEMステージの実行結果をEXステージで実行する命令が参照する場合には、EXステージでの命令実行を開始することができない。
【0076】
したがって、ステップS611において依存関係があると判断された場合には(ステップS611:Yes)、先行する命令はMEMステージで実行していることから、MEMステージにおける実行状態を判定し、MEMステージにおいて実行が完了しているか否かを判定する(ステップS613)。ステップS613において実行が完了していると判定された場合には(ステップS613:Yes)、ステップS612においてクロックの供給を開始する。実行が完了していないと判定された場合には(ステップS611:No)、クロック1サイクル分だけ待機することになる(ステップS614)。
【0077】
そして、ステップS612においてクロック供給が開始されると、1サイクルクロックをEXステージに供給し(ステップS615)、次にサイクル数抽出部において抽出されたサイクル数のクロック供給が完了したか否かを判定する(ステップS616)。クロック供給が完了していない場合には(ステップS616:No)、ステップS615において再度クロックを出力する。
【0078】
ステップS616においてクロックの供給が完了したと判断した場合には(ステップS616:Yes)、MEMステージの状態を調べてMEMステージにおける命令の実行が完了しているか否かを判定する(ステップS617)。実行が完了している場合には(ステップS617:Yes)、MEMステージへ命令を投入して(ステップS618)、EXステージでの実行結果をMEMステージに入力する。そして、次の命令をEXステージで投入すべくステップS601から処理を繰り返すことになる。
【0079】
ステップS617において実行が完了していないと判断された場合には(ステップS617:No)、クロック供給を停止し(ステップS619)、MEMステージでの実行が完了するまで待機することになる。
【0080】
上述したような処理によって図7に示すような効果が生じる。図7においては、連続した命令Aと命令Bを実行する場合の従来の技術を利用した場合のパイプライン状態と、本実施の形態2にかかるクロック制御方法を用いた場合のパイプライン状態を示している。
【0081】
なお、命令AはMEMステージでメモリアクセスペナルティーにより実行に7サイクル必要とする命令であり、命令BはEXステージで5サイクルの実行サイクルを必要とする命令であるものとする。
【0082】
まず、図7(a)には本実施の形態2にかかるクロック制御方法を用いた場合、図7(b)には従来のクロック制御方法を用いた場合のパイプライン状態を示している。
【0083】
命令Aは、サイクル7−2からMEMステージに投入されて実行が行われる。しかしながら、メモリペナルティーで7サイクルの実行となるものとする。この時点において、命令BはEXステージに投入されていることになる。
【0084】
従来の技術では、図7(b)に示すように、MEMステージにおいてウェイト状態になった場合にはEXステージでのクロック供給が停止されるため、サイクル7−2で命令BがEXステージに投入されても、サイクル7−2からサイクル7−8までの期間はクロック供給が行われないことになる。
【0085】
すなわち、図7(b)のEXクロックのように、命令AのMEMステージでの実行がサイクル7−8で終了して、WBステージに命令Aが投入されてから、EXステージにはクロック供給が再開され、サイクル7−9から命令BのEXステージでの実行が再開される。したがって、従来の技術では、命令Bの実行サイクル期間は7−2から7−11の期間となる。
【0086】
このように、命令Aがサイクル7−9においてWBステージに投入され、MEMステージに次の命令投入が可能な状態になっているにもかかわらず、EXステージにおいて命令Bの実行が完了していないために、MEMステージに命令Bを投入することができないことになってしまう。実際に命令BがMEMステージに投入されるのは、命令Bの実行が完了した後であるサイクル7−11となる。
【0087】
一方、本実施の形態3にかかるクロック制御方法を用いた場合には、図7(a)に示すように、命令AがMEMステージで7サイクルの実行を行っているサイクル7−2からサイクル7−8の期間であっても、EXステージにおける命令Bの実行サイクル数のクロックが供給されるために、サイクル7−2から7−6までの期間も、EXステージにはクロックが供給されることになる。
【0088】
すなわち、MEMステージが命令Aの実行によってウェイト状態であっても、EXステージにおいて命令実行を行うことが可能であり、命令Bの実行サイクル期間は7−15に示す期間となり、従来よりも早期に実行を完了させることが可能となる。さらに、命令BがMEMステージに投入されるまでの待機サイクルである7−16に示す期間は、EXステージにクロックを供給することがないことから、待機状態にあるサイクルでの無駄な電力消費を回避することが可能となる。
【0089】
要は、サイクル7−9において命令AがWBステージに投入された時点で、命令BをMEMステージに投入することができることになる。したがって、従来のクロック制御方法に比べて、MEMステージに命令Bが投入されるサイクル数が7−17に示すサイクル期間だけ改善されることになる。また、図7の例における命令A及び命令Bの実行の場合、図7(a)に示すパイプライン状態は常にEXステージにクロック供給を行っている場合と同様になる。
【0090】
以上のように本実施の形態3によれば、必要なサイクル数のクロックを供給し、EXステージでの命令を実行完了状態で待機状態とさせ、待機状態の場合にはクロックを停止することができることから、パイプライン実行の効率を落とさずに消費電力低減効果を得ることが可能となる。
【0091】
(実施の形態4)
以下、本発明の実施の形態4について、図面を参照しながら説明する。図8は本実施の形態4にかかるクロック制御方法における命令コード自体の構成例示図を示す。
【0092】
実施の形態4では、命令コード81にEXステージでのサイクル数を示す実行サイクル数フィールド82を設け、命令デコードと同時に実行サイクル数フィールド82からサイクル数を抽出する方法である。
【0093】
命令コード81は、実際の実行命令コードである命令ビットフィールド83と、この命令が実行ステージでの実行サイクル数を示す実行サイクル数フィールド82から構成される。
【0094】
IFステージで、命令フェッチを行い読み出しデータから命令コード81を取り出す。命令コード81は、DECステージで命令ビットフィールド83から命令をデコードすると同時に、実行サイクル数フィールド82から命令がEXステージで実行される時の実行サイクル数を取り出す。なお、実行サイクル数フィールド82には、実際のサイクル数を設定しても良いし、グループ分けして、当該グループごとの識別番号を設定するものであっても良い。
【0095】
例えば、EXステージにおける実行サイクル数が1サイクルである命令はグループ1に、3サイクルの命令はグループ2に、10サイクルの命令はグループ3に、というように、サイクル数ごとにグループ分けを行い、そのグループ番号を設定する。デコーダ回路では、実行サイクル数フィールド82に設定されたグループ番号に基づいて、グループ番号に対応したサイクル数を生成し、EXステージのクロック制御部に入力することになる。
【0096】
以上のように本実施の形態4によれば、命令デコーダのデコード回路においてハードウェア的に命令ごとの実行サイクル数を記憶する、あるいは生成する回路が不要となり、実施の形態2の場合よりもデコーダ回路自体の規模を縮小することが可能となる。
【0097】
(実施の形態5)
以下、本発明の実施の形態5について、図面を参照しながら説明する。実施の形態5では可変長命令を処理するプロセッサにおいて、可変長命令の命令語長から実行サイクル数を抽出する方法である。
【0098】
第一の命令はEXステージで1サイクル、第二の命令は3サイクル、第三の命令は5サイクルの実行サイクルを必要とするものとする。この場合、第一の命令の命令コードは1バイト、第二の命令コードは3バイト、第三の命令コードは5バイトの命令コードであると定義する。
【0099】
可変長命令の命令コードがDECステージでデコードされる場合、命令語長を判定する必要がある。上記のように命令語長ごとに実行サイクルを定義した場合、命令をデコードするために命令データから可変長命令を取り出し、命令語長を判定した時点で命令実行サイクルを抽出することができる。
【0100】
以上のように本実施の形態5によれば、実施の形態4と同様に実施の形態3と比べてデコーダ回路の規模自体を縮小することが可能となる。
【0101】
(実施の形態6)
以下、本発明の実施の形態6について、図面を参照しながら説明する。図9は実施の形態3と同様に、本実施の形態6にかかるクロック制御方法を用いたパイプライン処理を行うプロセッサの構成を示している。
【0102】
図9は、EXステージでの実行サイクル数の抽出を命令デコーダで行うプロセッサであり、かつ、EXステージでのクロック供給サイクル数を命令ビットコードから抽出し、EXステージへ命令が投入された時点からクロック供給を開始するか否かをクロック供給開始許可ビットから抽出するプロセッサを示している。
【0103】
そのために、本実施の形態5では、命令をデコードするDECステージ内に命令データからクロック供給開始許可ビットを参照するクロック供給開始許可ビット抽出回路901が備えられている。
【0104】
図10には実施の形態6にかかるクロック制御方法を用いたプロセッサの命令コードを示す。図10において、命令コード101はクロック供給開始許可ビット104と、実行サイクル数フィールド102と実行命令フィールド103から構成されている。なお、実行サイクル数フィールド102は命令のEXステージでの実行サイクル数を示している。
【0105】
クロック供給開始許可ビット104は、命令がEXステージに投入された場合、即座にクロックを供給開始するか、あるいはMEMステージでの先行命令の実行完了後にクロック供給開始するかを判定するためのビットである。
【0106】
このビットは、命令がEXステージに入ったサイクルから実行の開始ができない場合にセットされ、EXステージで実行しようとする命令と先行命令との間に依存関係がある場合にセットされる。
【0107】
図11に示す2つのプログラム例PROG−Aと、PROG−Bを用いてクロック供給開始許可ビット104がどのようにセットされるかを説明する。PROG−A、PROG−Bにはデータを読み出して加算する命令列である。
【0108】
PROG−Aでは、命令1がアドレスレジスタa0内のアドレスのデータを読み出してデータレジスタd0に格納する命令であり、命令2がデータレジスタd1に16進数の1を加算してd1に再び格納する命令である。
【0109】
PROG−Aの場合、命令1が扱うデータレジスタと命令2が扱うデータレジスタは異なる。すなわち、命令2は命令1に依存していないため、命令2がEXステージに投入された場合には、即座にクロック供給を開始して実行を開始することができる。この場合には、クロック供給開始許可ビット104に‘1’がセットされることになる。
【0110】
一方、PROG−Bの場合、命令3はアドレスレジスタa0内のアドレスからデータレジスタd0にデータを読み出す命令であり、命令4はデータレジスタd0の値と16進数で1を加算してデータレジスタd0に格納する命令である。PROG−Bでは、命令4と命令3が扱うデータレジスタが同じであるために、命令4は命令3に依存している。このため、命令4がEXステージに投入された場合、MEMステージにある命令3の実行が完了しないとd0レジスタの値が不明であることから、命令4の実行を開始することができないことになる。この場合には、クロック供給開始許可ビット104には‘0’がセットされる。
【0111】
なお、命令の依存関係は、プログラムを実行形式コードに変換する際に抽出することができる。したがって、ハードウェアにおいて依存関係を抽出する回路は特に必要としないものと考えられる。
【0112】
すなわち、図9に示すように、DECステージで命令コードをデコードする際にクロック供給開始許可ビット104をクロック供給開始許可ビット抽出部901において参照し、そのクロック供給開始許可信号902をクロック開始要求生成部508に入力する。
【0113】
クロック開始要求生成部508は、EXステージの実行開始要求518とクロック供給開始許可ビット902から、EXステージのクロック開始要求信号515を生成し、クロック制御部507に出力する。
【0114】
以上のように本実施の形態6によれば、EXステージとMEMステージの命令の依存関係を検出するハードウェアを必要とすることなく、クロック供給開始信号を生成することができ、依存関係を検出するためのハードウェアを削減することが可能となる。
【0115】
(実施の形態7)
以下、本発明の実施の形態7について、図面を参照しながら説明する。本実施の形態7は実施の形態6で示したクロック供給開始許可ビットと同等の低速動作ビットを用いてパイプライン実行において高速動作が必要でない場合にさらなる低消費電力を実現する形態である。
【0116】
図12に実施の形態7で用いられる命令コードを示す。図12では、図10に示す命令コードとほぼ同じ構成となっているが、クロック供給開始許可ビット104に代わって、低速動作ビット124を有する点に特徴を有する。
【0117】
図13に実施の形態7にかかるクロック制御方法を用いた情報処理装置におけるプロセッサ構成を示す。図9に示すパイプライン構成では、EXステージにのみクロック制御回路が存在し、EXステージにのみクロック制御を行っていたが、同様にMEMステージのクロック供給制御部135、WBステージのクロック供給制御部136を設けることで、よりきめ細かいクロック制御を行うものである。
【0118】
まず、MEMステージのクロック制御部135は、MEMステージに命令が存在し実行中か否かを判定するMEMステージ状態判定部512の出力522に基づいて、MEMステージに命令が存在し命令実行を行っている場合にのみクロックを供給するように制御する。
【0119】
同様に、WBステージクロック供給制御部136は、WBステージの状態判定部134の出力133に基づいてWBステージで命令実行を行っている場合にのみWBステージにクロックを供給するように制御する。
【0120】
命令がDECステージ502に投入され、命令デコードすると同時に命令のEXステージでの実行サイクル数がサイクル数抽出部506で抽出される。同時に命令コード中の低速動作ビット124が低速動作ビット参照部131で抽出される。
【0121】
低速動作ビット124が‘1’にセットされている命令を実行する場合には、EXステージに命令が投入されてもすぐにクロックの供給を開始せず、先行する命令がMEMステージ及びWBステージにおいて実行を完了してから実行開始させるようにEXステージへのクロック供給を開始させない。すなわち、低速動作ビット124がセットされている場合には、MEMステージ及びWBステージには命令が存在せず、MEMステージ及びWBステージのクロック供給が停止してからEXステージにクロック供給を開始して実行を開始させることになる。
【0122】
図14にクロック供給の概略を示す。図14では、連続して互いに依存関係の無い命令A、B、Cを実行した場合のパイプラインチャートを示しており、図14(a)は低速動作ビット124が‘0’の場合、図14(b)は低速動作ビット124が‘1’の場合を示している。
【0123】
図14(a)に示すように命令A、B、Cのすべての命令の命令コードにおいて低速動作ビット124が‘0’の場合、すなわち命令A、B、Cの実行を通常動作させる場合には、命令A、B、Cが順次各ステージでパイプライン処理されていき、EXステージクロック、MEMステージクロック、WBステージは図14(a)に示すように供給される。
【0124】
一方、図14(b)に示すようにすべての命令の低速動作ビット124が‘1’である場合、すなわち命令A、B、Cを低速動作させる場合には、命令AがWBステージで実行完了するまで命令BはEXステージに投入されても実行を開始しない。命令AがWBステージで実行完了してからEXステージに指定されたサイクル数供給開始され実行開始される。命令Bにクロックが供給され実行完了するとMEMステージに投入されるが、このサイクルまでMEMステージのクロックは供給停止している。また、MEMステージにEXステージの命令が投入されると、命令CがEXステージに投入されるが、命令Cは命令BがWBステージで実行完了するまでEXステージへのクロック供給が開始されないために停止状態となっている。
【0125】
命令A、B、Cの命令コードの低速動作ビット124がすべて‘1’である場合のEXステージクロック、MEMステージクロック、WBステージは図14(b)に示すように供給される。
【0126】
この方法によれば、ある一定期間において各ステージに供給されるクロックエッジが通常の場合よりも減少し、消費電力を抑制することが可能となる。
【0127】
プロセッサで行う処理においては、すべての処理において高速動作を行う必要が無い場合がある。高速処理が必要でない場合には、低速動作ビット124を意図的にセットし、実行性能自体は低減するものの、処理にかかる消費電力をより低減することが可能となる。なお、本実施の形態においては命令コードに低速動作ビットを設ける場合を示しているが、特に命令コードに限定されるものではなく、例えばCPUのレジスタ設定によってかかる動作を行うことができるようにする手法であっても良い。
【0128】
プログラムの記述時点で実行性能を落とし、かつ消費電力を落として実行させるかどうかを指定することにより、プログラマが消費電力を意識してプログラム可能な手法であるプログラム処理を図15に示す。
【0129】
例えば図15に示すように、高級言語プログラムの記述において消費電力をおさえるルーチンかどうかを指定可能なように、消費電力を落として実行させるルーチンの開始、および通常の消費電力での処理に復帰する予約語を定義することが考えられる。図15において、「PowerLow」はこの予約語以降は低速動作させるルーチンであることを示し、「PowerHigh」はこの予約語以降通常の高速動作をさせるルーチンであることを示す予約語である。
【0130】
そして、高級言語記述Prog0は低速動作させる処理記述を、Prog1は高速動作させる処理記述を示している。
【0131】
高級言語プログラムProg0、Prog1はプロセッサの機械語プログラムであるアセンブラプログラムに一旦変換されそこから実行形式コードを作成する。このアセンブラプログラムを実際の実行形式コードに変換する時点でアセンブラは命令コードのクロック供給開始許可ビットを操作する。
【0132】
例えば図15では、高級言語プログラムProg0はasm0に、Prog1はasm1に変換される。
【0133】
Prog0は低速動作させる処理であるのでProg0が変換されたアセンブラコードasm0中の命令に対する命令コードの低速動作ビット124には‘1’がすべてセットされる。
【0134】
一方、高速動作させる処理であるProg1が変換されたアセンブラコードasm1中の命令に対する命令コードの低速動作ビット124にはすべて‘0’がセットされる。
【0135】
以上のように、本実施の形態7によれば、プロセッサが動的に消費電力状態を検出することがないため、検出回路をハードウェアで実装する必要がなく、低消費電力化が可能となる。
【0136】
また、プログラマが消費電力と実行処理性能との関係を把握し、意図的に操作することができるため、プログラム開発時に消費電力を考慮しながらのプログラム開発も可能となる。
【0137】
【発明の効果】
以上のように本発明にかかるクロック制御方法を用いた情報処理装置によれば、パイプライン処理を行うプロセッサにおいて実行性能を落とさずに消費電力の低減効果を得ることが可能となる。また、命令コード中に実行サイクル数を定義できるようにすることでハードウェア資源の増加を抑えてかつ消費電力の低減効果が得られる。
【0138】
また、低速動作を定義できる命令コード内のビット、およびプログラム記述手法によって、意図的にパイプライン動作性能を落とし、より消費電力を下げることが可能である。この動作はプログラム内で実現可能であり、実行時の消費電力を考慮しながらプログラム開発が可能となる。
【図面の簡単な説明】
【図1】従来のクロック制御方法におけるクロック供給タイミング図
【図2】本発明の実施の形態1にかかるクロック制御方法を用いた情報処理装置のシステム構成図
【図3】本発明の実施の形態1にかかるクロック制御方法を用いた情報処理装置における処理の流れ図
【図4】本発明の実施の形態1にかかるクロック制御方法を用いた情報処理装置におけるクロック供給タイミング図
【図5】本発明の実施の形態3にかかるクロック制御方法を用いた情報処理装置におけるプロセッサ構成図
【図6】本発明の実施の形態3にかかるクロック制御方法を用いた情報処理装置における処理の流れ図
【図7】本発明の実施の形態3にかかるクロック制御システムにおけるパイプライン効果の比較図
【図8】本発明の実施の形態4にかかるクロック制御方法における命令コード構成図
【図9】本発明の実施の形態6にかかるクロック制御方法を用いた情報処理装置におけるプロセッサ構成図
【図10】本発明の実施の形態6にかかるクロック制御方法における命令コード構成図
【図11】本発明の実施の形態6にかかるクロック制御方法におけるプログラム例示図
【図12】本発明の実施の形態7にかかるクロック制御方法における命令コード構成図
【図13】本発明の実施の形態7にかかるクロック制御方法を用いた情報処理装置におけるプロセッサ構成図
【図14】本発明の実施の形態7にかかるクロック制御方法を用いた情報処理装置におけるクロック供給タイミング図
【図15】本発明の実施の形態7にかかるクロック制御方法における高級言語プログラムの例示図
【図16】本発明の実施の形態2にかかるクロック制御方法を用いた情報処理装置における処理の流れ図
【図17】本発明の実施の形態2にかかるクロック制御方法を用いた情報処理装置におけるクロック供給タイミング図
【符号の説明】
81、101、121 命令コード
82、102、122 実行サイクル数フィールド
83、103、123 実行命令フィールド
104 クロック供給開始許可ビット
124 低速動作ビット
131 低速動作ビット参照部
133 WB判定結果
134 WBステージ状態判定部
135 MEMクロック制御部
136 WBクロック制御部
137 MEMクロック
138 WBクロック
201 処理回路
202 クロック制御回路
203 サイクル数抽出回路
204、510 クロック
205 命令
206、523 リクエスト
207 入力データ
208 処理サイクル数
209 処理回路クロック
210 クロック終了信号
211 出力データ
212 第2の処理回路
213 システム制御部
214、509 クロックジェネレータ
501 IFステージ
502 DECステージ
503 EXステージ
504 MEMステージ
505 WBステージ
506 サイクル数抽出部
507 クロック制御部
508 供給開始信号生成部
511 MEMステージ状態判定部
512 EXステージ状態判定部
513 EXステージ実行開始要求生成部
514 依存関係判定部
515 供給開始信号
516 EXステージクロック
517 サイクル数
518 実行開始信号
519 EX命令情報
520 DEC命令情報
521 EX判定結果
522 MEM判定結果

Claims (20)

  1. クロックに同期して処理を行う処理回路と、
    前記処理回路へのクロック供給を制御するクロック供給制御回路を有する情報処理装置のクロック制御方法において、
    前記処理回路における処理の実行開始から処理結果の出力までに必要とするサイクル数を抽出する工程と、
    抽出された前記サイクル数を前記クロック供給制御回路に伝達する工程と、
    前記処理回路における処理の開始からクロック供給を開始する工程と、
    前記サイクル数の供給が終了した後、前記処理に後続する処理が無い場合には前記処理回路へのクロック供給を停止する工程を有することを特徴とするクロック制御方法。
  2. 前記サイクル数が、処理実行開始から処理結果出力までの最小サイクル数以上であり、常時供給した場合のサイクル数よりも小さい請求項1記載のクロック制御方法。
  3. クロックに同期して処理を行う第1の処理回路及び第2の処理回路と、前記第1の処理回路へのクロック供給を制御するクロック供給制御回路とを有し、前記第1の処理回路における処理と前記第2の処理回路における処理とは独立して同時に実行することが可能であり、前記第2の処理回路は前記第1の処理回路における処理結果が入力される処理回路である情報処理装置のクロック制御方法において
    前記第1の処理回路における処理の実行開始から前記第2の処理回路へ処理結果を入力するまでに必要なサイクル数を抽出する工程と、
    抽出された前記サイクル数を前記クロック供給制御手段に伝達する工程と、
    前記第1の処理回路における処理の開始からクロック供給を開始する工程と、
    前記サイクル数分のクロック供給が終了した後、前記第1の処理回路へのクロック供給を停止する工程を有することを特徴とするクロック制御方法。
  4. クロックに同期して処理を行う第1の処理回路及び第2の処理回路と、
    前記第1の処理回路へのクロック供給を制御するクロック供給制御回路と、
    前記第1の処理回路における処理結果が入力される第2の処理回路とを有する情報処理装置のクロック制御方法において、
    前記第1の処理回路において第1の処理及び第2の処理が連続して処理される場合であり、かつ前記第2の処理回路において前記第1の処理回路の処理結果を入力として第3の処理を開始すると同時に、前記第1の処理回路において前記第2の処理を実行する場合に、
    前記第1の処理回路における処理の実行に必要な第1のサイクル数を抽出する第1の工程と、
    前記第1のサイクル数を前記クロック供給制御回路に伝達する第2の工程と、
    前記第1の処理回路における処理の開始からクロック供給を開始する第3の工程と、
    前記第1のサイクル数分のクロック供給が終了した時点で前記第2の処理回路における処理が開始可能か否かを判断する第4の工程と、
    前記第1の処理回路における前記第2の処理の処理実行に必要な第2のサイクル数を抽出する第5の工程と、
    前記第2のサイクル数を前記クロック供給制御回路に伝達する第6の工程と、
    前記第4の工程において処理開始が可能であると判断された場合、前記第1の処理回路における処理結果を前記第2の処理回路に入力する第7の工程と、
    前記第4の工程における処理開始が可能であると判断された場合、前記第1の処理回路へ前記第2のサイクル数のクロックを供給開始し、前記第2の処理回路における処理を前記第1の処理回路において処理を開始する第8の工程を含むことを特徴とするクロック制御方法。
  5. 命令をパイプライン処理することが可能な情報処理装置のクロック制御方法において、
    実行ステージにおける命令実行に必要なサイクル数を抽出する工程と、
    前記実行ステージに属する回路へのクロック供給を制御する工程と、
    抽出された前記サイクル数を伝達する工程を含み、
    前記実行ステージにおける命令の実行開始から前記サイクル数分だけクロック供給を行い、前記命令がメモリステージに投入されるまでの間は前記クロック供給を停止することを特徴とするクロック制御方法。
  6. 前記サイクル数を抽出する工程において、命令ごとに前記実行ステージにおける実行サイクル数を定め、命令コードをデコードし、命令の種別を判定すると同時に前記実行サイクル数を前記サイクル数として抽出する請求項5記載のクロック制御方法。
  7. 前記サイクル数を抽出する工程において、前記実行ステージにおける実行サイクル数を命令のビットコードで定める実行サイクル数フィールドを設け、命令コードをデコードし、命令の種別を判定すると同時に、前記実行サイクル数フィールドから前記実行ステージにおける命令実行サイクル数を前記サイクル数として抽出する請求項6記載のクロック制御方法。
  8. 前記サイクル数を抽出する工程において、前記情報処理装置が実行するすべての命令を前記実行ステージにおける実行サイクル数によってグループに分別し、分別された前記グループごとにグループ番号を定め、命令コードに前記グループ番号を設定するグループ番号フィールドを設け、命令コードをデコードし、命令の種別を判定すると同時に前記グループ番号を抽出し、前記グループ番号に対応する実行サイクル数を前記サイクル数として抽出する請求項6記載のクロック制御方法。
  9. 前記サイクル数を抽出する工程において、可変長命令を処理する場合には、命令コードの命令語長ごとに前記実行ステージにおける実行サイクル数を定め、前記命令コードをデコードし、実行する命令を判定すると同時にデコードした命令の命令語長から前記実行サイクル数を前記サイクル数として抽出する請求項6記載のクロック制御方法。
  10. 命令をパイプライン処理することができる情報処理装置のクロック制御方法において、
    実行ステージにおける命令実行に必要なサイクル数を抽出する工程と、
    前記実行ステージに属する回路へのクロック供給を制御する工程と、
    前記サイクル数を伝達する工程と、
    前記実行ステージにおける命令の実行開始時点からクロック供給を行うか否かを選択する工程を含み、
    前記クロック供給を選択する工程においてクロック供給を行うと選択された場合、前記クロック供給を制御する工程において前記実行ステージにおける命令の実行開始から前記サイクル数分だけクロック供給を開始することを特徴とするクロック制御方法。
  11. 前記クロック供給を選択する工程において、命令コードに実行ステージにおける命令の実行開始からクロック供給を行うか否かを示すクロック供給許可ビットを設け、前記命令コードのデコードと同時に前記クロック供給許可ビットからクロック供給を行うか否かに関する情報を抽出する請求項10記載のクロック制御方法。
  12. 連続する第1の命令と第2の命令との依存関係を解析し、前記第2の命令が前記第1の命令の実行結果を参照する場合には、前記クロック供給許可ビットをオン状態にする請求項11記載のクロック制御方法。
  13. 命令をパイプライン処理することができる情報処理装置のクロック制御方法において、
    実行ステージにおける命令の実行に必要なサイクル数を抽出する工程と、
    前記実行ステージに属する回路へのクロック供給を制御できる工程と、
    前記サイクル数を伝達する工程と、
    前記実行ステージにおける命令の実行開始時点からクロック供給を行うか否かを選択する工程と、
    実行ステージの次のステージの状態を判定する工程を含み、
    前記クロック供給を選択する工程においてクロック供給を行うと選択され、前記次のステージの状態を判定する工程において前記次のステージが実行可能であると判定された場合、前記クロック供給を制御する工程において前記実行ステージにおける命令の実行開始から前記サイクル数分だけクロック供給を開始することを特徴とするクロック制御方法
  14. 前記クロック供給を選択する工程において、前記実行ステージの次のステージで実行中の第1の命令の実行状態と、前記実行ステージで実行開始する第2の命令と前記第1の命令の依存関係を判定し、
    前記第2の命令が前記第1の命令の実行結果に依存する場合には、前記第1の命令の実行完了まで前記第2の命令を前記実行ステージで実行するのに必要なサイクル数のクロック供給を行わないことを選択し、
    依存しない場合には、前記実行ステージで実行するのに必要なサイクル数のクロック供給を行うことを選択する請求項13記載のクロック制御方法。
  15. 命令をパイプライン処理することができる情報処理装置のクロック制御方法において、
    実行ステージにおける命令の実行に必要なサイクル数を抽出する工程と、
    前記実行ステージに属する回路へのクロック供給を制御する工程と、
    前記サイクル数を伝達する工程と、
    実行ステージにおける命令の実行開始時点からクロック供給を行うか否かを選択する工程と、
    前記実行ステージより後のすべてのステージで命令実行が完了していることを検出する工程を含み、
    前記クロック供給を選択する工程においてクロック供給を行うと選択され、前記実行ステージより後のすべてのステージで命令実行が完了していることが検出された場合、前記クロック供給を制御する工程において、前記実行ステージにおける命令の実行開始から前記サイクル数分だけクロック供給を開始することを特徴とするクロック制御方法。
  16. パイプラインの各ステージごとに各ステージへのクロック供給の制御が可能であり、各ステージにおける命令の実行時以外は前記各ステージのクロック供給を停止可能である請求項15記載のクロック制御方法。
  17. 命令コードに低速動作ビット設けられ、前記低速動作ビットがセットされている命令を前記実行ステージで実行する場合には、前記実行ステージより後のステージにおいて先行する命令の実行がすべてのステージで完了したと検出した後に前記サイクル数分のクロック供給を開始する請求項16記載のクロック制御方法。
  18. 高級言語で記述されているプログラムに基づいて生成される実行形式コードが用いられるクロック制御方法であって、
    前記高級言語によるプログラム記述によって、低速動作を行うか否か指定される工程を含み、
    前記高級言語によって低速動作を行うと指定された前記プログラム記述実行形式コードに変換される場合に、前記クロック供給開始許可ビットオン状態とされる請求項15記載のクロック制御方法。
  19. クロックに同期して処理を行う処理回路と、
    前記処理回路へのクロック供給を制御するクロック供給制御回路を有する情報処理装置において、
    前記処理回路における処理の実行開始から処理結果の出力までに必要とするサイクル数を抽出する手段と、
    抽出された前記サイクル数を前記クロック供給制御回路に伝達する手段と、
    前記処理回路における処理の開始からクロック供給を開始する手段と、
    前記サイクル数の供給が終了した後、前記処理に後続する処理が無い場合には前記処理回路へのクロック供給を停止する手段を有することを特徴とする情報処理装置。
  20. 命令をパイプライン処理することが可能な情報処理装置において、
    実行ステージにおける命令実行に必要なサイクル数を抽出する手段と、
    前記実行ステージに属する回路へのクロック供給を制御する手段と、
    抽出された前記サイクル数を伝達する手段を含み、
    前記実行ステージにおける命令の実行開始から前記サイクル数分だけクロック供給を行い、前記命令がメモリステージに投入されるまでの間は前記クロック供給を停止することを特徴とする情報処理装置
JP2001065403A 2001-03-08 2001-03-08 クロック制御方法及び当該クロック制御方法を用いた情報処理装置 Expired - Fee Related JP3607209B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001065403A JP3607209B2 (ja) 2001-03-08 2001-03-08 クロック制御方法及び当該クロック制御方法を用いた情報処理装置
US10/093,543 US7000135B2 (en) 2001-03-08 2002-03-08 Clock control method and information processing device employing the clock control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001065403A JP3607209B2 (ja) 2001-03-08 2001-03-08 クロック制御方法及び当該クロック制御方法を用いた情報処理装置

Publications (2)

Publication Number Publication Date
JP2002268877A JP2002268877A (ja) 2002-09-20
JP3607209B2 true JP3607209B2 (ja) 2005-01-05

Family

ID=18924064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001065403A Expired - Fee Related JP3607209B2 (ja) 2001-03-08 2001-03-08 クロック制御方法及び当該クロック制御方法を用いた情報処理装置

Country Status (2)

Country Link
US (1) US7000135B2 (ja)
JP (1) JP3607209B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3886870B2 (ja) * 2002-09-06 2007-02-28 株式会社ルネサステクノロジ データ処理装置
JP4521508B2 (ja) * 2006-02-03 2010-08-11 国立大学法人神戸大学 デジタルvlsi回路およびそれを組み込んだ画像処理システム
US20070260856A1 (en) * 2006-05-05 2007-11-08 Tran Thang M Methods and apparatus to detect data dependencies in an instruction pipeline
JP4747026B2 (ja) * 2006-05-08 2011-08-10 Okiセミコンダクタ株式会社 マイクロプロセッサ
US8117481B2 (en) * 2008-06-06 2012-02-14 Roche Diagnostics International Ag Apparatus and method for processing wirelessly communicated information within an electronic device
KR102576707B1 (ko) * 2016-12-26 2023-09-08 삼성전자주식회사 전자 시스템 및 그 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5148528A (en) * 1989-02-03 1992-09-15 Digital Equipment Corporation Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length
EP1102166B1 (en) * 1993-11-05 2003-05-21 Intergraph Corporation Software scheduled superscalar computer architecture
JPH08202549A (ja) 1995-01-30 1996-08-09 Mitsubishi Electric Corp データ処理装置
US5987620A (en) * 1997-09-19 1999-11-16 Thang Tran Method and apparatus for a self-timed and self-enabled distributed clock
US5961630A (en) * 1997-12-30 1999-10-05 Intel Corporation Method and apparatus for handling dynamic structural hazards and exceptions by using post-ready latency
US6247134B1 (en) * 1999-03-31 2001-06-12 Synopsys, Inc. Method and system for pipe stage gating within an operating pipelined circuit for power savings
US6393579B1 (en) * 1999-12-21 2002-05-21 Intel Corporation Method and apparatus for saving power and improving performance in a collapsable pipeline using gated clocks
US6609193B1 (en) * 1999-12-30 2003-08-19 Intel Corporation Method and apparatus for multi-thread pipelined instruction decoder
US6611920B1 (en) * 2000-01-21 2003-08-26 Intel Corporation Clock distribution system for selectively enabling clock signals to portions of a pipelined circuit

Also Published As

Publication number Publication date
JP2002268877A (ja) 2002-09-20
US20020129292A1 (en) 2002-09-12
US7000135B2 (en) 2006-02-14

Similar Documents

Publication Publication Date Title
JP3032031B2 (ja) ループ最適化方法及び装置
JPH0922318A (ja) プロセッサ及びその制御方法
US8195975B2 (en) Semiconductor integrated circuit device and clock control method
JP4412905B2 (ja) 低電力動作制御装置、およびプログラム最適化装置
JP3607209B2 (ja) クロック制御方法及び当該クロック制御方法を用いた情報処理装置
US6167529A (en) Instruction dependent clock scheme
JP3212213B2 (ja) データ処理装置
JPS62226231A (ja) プロセツサ
KR920009999B1 (ko) 정보처리장치
JPH06295243A (ja) データ処理装置
US6704853B1 (en) Digital signal processing apparatus and method for controlling the same
JP2007304926A (ja) 情報処理方法および命令生成方法
JPS63113634A (ja) プログラムカウンタ相対アドレス計算方式
JPH09330219A (ja) 命令解読器切替型プロセッサ及び翻訳装置
KR100233289B1 (ko) 레지스터 파일의 데이터 디펜던시 체크를 위한 장치
JPH0338727A (ja) 資源干渉制御装置とデータ処理装置
JPH03136136A (ja) 命令実行時刻制御方式
JP2968749B2 (ja) マイクロプログラム調速制御回路
WO2007004323A1 (ja) 情報処理装置
JP3414579B2 (ja) プログラマブルコントローラ
JPH1011288A (ja) マイクロプロセッサ
JP3716923B2 (ja) クロック数可変プロセッサ
JP3435252B2 (ja) 情報処理装置
JP2007156557A (ja) 並列プロセッサ
JPH05224916A (ja) 集積回路マイクロプロセッサの命令デコード装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040823

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041006

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20071015

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091015

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091015

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101015

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111015

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121015

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 9

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees