JP2006126893A - クロック制御装置、情報処理装置およびクロック制御方法 - Google Patents

クロック制御装置、情報処理装置およびクロック制御方法 Download PDF

Info

Publication number
JP2006126893A
JP2006126893A JP2004310428A JP2004310428A JP2006126893A JP 2006126893 A JP2006126893 A JP 2006126893A JP 2004310428 A JP2004310428 A JP 2004310428A JP 2004310428 A JP2004310428 A JP 2004310428A JP 2006126893 A JP2006126893 A JP 2006126893A
Authority
JP
Japan
Prior art keywords
clock
signal
cycle
instruction
processor
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.)
Withdrawn
Application number
JP2004310428A
Other languages
English (en)
Inventor
Shigeki Kanazawa
繁樹 金澤
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004310428A priority Critical patent/JP2006126893A/ja
Publication of JP2006126893A publication Critical patent/JP2006126893A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

【課題】 簡単な構成によって、命令の実行時間の相違に基づくハザードの発生を防止すること。
【解決手段】 情報処理装置1においては、命令コードに含まれる実行サイクル数に基づいて、サイクルコントローラ21が、その命令コードが実行される際に、クロック原信号をマスクし、実行ステージを2サイクル継続させる。したがって、簡単な構成によって、命令の実行時間の相違に基づくハザードの発生を防止することが可能となる。
【選択図】 図1

Description

本発明は、プロセッサに供給するクロック信号を制御するクロック制御装置、それを備えた情報処理装置およびプロセッサに供給するクロック信号を制御するためのクロック制御方法に関する。
従来、パイプライン処理を行うプロセッサにおいては、命令毎の処理の複雑性や計算量に比例して、その実行時間が増加する。そのため、通常は1サイクル分の実行ステージで処理が終了するのに対し、通常より複雑な処理や計算量の多い処理においては、2サイクル分の実行ステージを要する場合がある。
このような場合、2サイクル分の実行ステージを要する命令(以下、「2サイクル命令」と言う。)の直後に通常の命令(以下、「1サイクル命令」と言う。)が発行されると、図4に示すように、レジスタファイルへの書き込みタイミング(WB:Write Backステージ)が重複することとなり、ハザードが生じてしまう。
そこで、このような状態となることを回避するために、従来、以下のような方法が用いられていた。
第1の方法は、2サイクル命令の直後に1サイクル命令が発行される場合、図5に示すように、1サイクル命令のデコードをインターロック信号によって1サイクル遅らせるものである。
また、第2の方法は、図6に示すように、プロセッサの設計上、全ての命令を2サイクル命令とするものである。
さらに、他の方法として、レジスタファイルに書き込むデータを一時的に退避させるバッファを備えておき、レジスタファイルへの書き込みポートが使用中である場合(ライトバックステージが重複した場合)、レジスタファイルに書き込めないデータをバッファに退避しておき、レジスタファイルへの書き込みポートが空いた後に、データの書き込みを行う技術が知られている(例えば、特許文献1参照)。
特開平5−307483号公報
しかしながら、上述の第1の方法においては、命令の発行順序に応じてインターロック信号の制御を行う必要があるため、回路構成が複雑になるという問題があった。
また、上述の第2の方法においては、1サイクル分の実行ステージで処理が終了する命令であっても、実行ステージの2サイクル目を待つ必要があるため、時間調整のための回路を付加する必要があった。
さらに、特許文献1に記載された技術においては、レジスタファイルに書き込むデータを一時的に退避させるバッファを備えることから、新たにレジスタ等を付加することとなり、回路規模が増大するという問題があった。
このように、パイプライン処理を行う従来のプロセッサでは、簡単な構成によって、命令の実行時間の相違に基づくハザードの発生を防止することは困難であった。
本発明の課題は、簡単な構成によって、命令の実行時間の相違に基づくハザードの発生を防止することである。
以上の課題を解決するため、本発明は、
発振器によって発生された信号を制御してプロセッサにクロック信号を供給するクロック制御装置であって、前記プロセッサにおいて実行される命令の実行サイクル数に応じて、前記発振器によって発生された信号をマスクし、前記プロセッサに供給するクロック信号の周期を変化させるサイクル数変更手段(例えば、図1のサイクルコントローラ21およびAND回路22)を含むことを特徴としている。
このような構成により、プロセッサにおいて実行される命令の全てを1サイクル命令として取り扱うことができる。
したがって、簡単な構成によって、命令の実行時間の相違に基づくハザードの発生を防止することが可能となる。
また、前記サイクル数変更手段は、前記プロセッサにおいて実行される命令の実行サイクル数に応じたクロックマスク信号を出力するマスク信号出力手段(例えば、図1のサイクルコントローラ21)と、前記発振器によって発生された信号と、前記マスク信号出力手段によって出力されたクロックマスク信号との論理積を取得し、前記プロセッサに供給するクロック信号とする演算手段(例えば、図1のAND回路22)とを含み、前記マスク信号出力手段において前記クロックマスク信号の論理を切り換えることにより、前記発振器によって発生された信号をマスクすることを特徴としている。
このような構成により、命令の実行サイクル数に応じたクロックマスク信号の出力と、そのクロックマスク信号と発振器の出力信号の論理積の演算とを行う簡単な構成によって、命令の実行時間の相違に基づくハザードの発生を防止することが可能となる。
また、本発明は、
所定周期のクロック信号を発生するクロック発振手段(例えば、図1のクロック発振器10)と、実行時における実行サイクル数を示す情報を含む命令コードを取得するフェッチ手段(例えば、図1のフェッチユニット31)と、前記命令コードをデコードし、該命令コードの実行サイクル数を取得するデコード手段(例えば、図1のプログラムコントローラ32あるいはユニット群33)と、前記デコード手段によって取得された前記命令コードの実行サイクル数に基づいて、該命令コードが実行される場合に、前記クロック発振手段によって発生されたクロック信号をマスクし、クロック信号の周期を変化させるサイクル数変更手段(例えば、図1のサイクルコントローラ21およびAND回路22)と、前記サイクル数変更手段によって周期が変化されたクロック信号に従って、前記命令コードを実行する実行手段(例えば、図1のユニット群33)とを含むことを特徴とする情報処理装置である。
このような構成により、命令をデコードすることにより得られる実行サイクル数に応じて、クロック信号がマスクされ、実行ステージのサイクル長が変化する。そのため、情報処理装置において実行される命令の全てを1サイクル命令として取り扱うことができる。
したがって、簡単な構成によって、命令の実行時間の相違に基づくハザードの発生を防止することが可能となる。
また、前記サイクル数変更手段は、前記命令コードの実行サイクル数に応じたクロックマスク信号を出力するマスク信号出力手段(例えば、図1のサイクルコントローラ21)と、前記クロック発振手段によって発生されたクロック信号と、前記マスク信号出力手段によって出力されたクロックマスク信号との論理積を取得し、前記実行手段に出力する演算手段(例えば、図1のAND回路22)とを含み、前記マスク信号出力手段において前記クロックマスク信号の論理を切り換えることにより、前記発振器によって発生された信号をマスクすることを特徴としている。
このような構成により、命令の実行サイクル数に応じたクロックマスク信号の出力と、そのクロックマスク信号と発振器の出力信号の論理積の演算とを行う簡単な構成によって、命令の実行時間の相違に基づくハザードの発生を防止することが可能となる。
また、本発明は、
発振器によって発生された信号を制御してプロセッサにクロック信号を供給するクロック制御方法であって、前記プロセッサにおいて実行される命令の実行サイクル数に応じて、前記発振器によって発生された信号をマスクし、前記プロセッサに供給するクロック信号の周期を変化させるサイクル数変更ステップを含むことを特徴としている。
このように、本発明によれば、簡単な構成によって、命令の実行時間の相違に基づくハザードの発生を防止することが可能となる。
以下、図を参照して本発明に係るクロック制御装置の実施の形態を説明する。
まず、構成を説明する。
図1は、本発明に係るクロック制御装置20を適用した情報処理装置1の機能構成を示すブロック図である。
図1において、情報処理装置1は、クロック発振器10と、クロック制御装置20と、プロセッサ30と、命令メモリ40と、データメモリ50とを含んで構成される。
クロック発振器10は、水晶発振器あるいはSAW(Surface Acoustic Wave)発振器を含んで構成され、情報処理装置1に供給するクロック信号(以下、「供給クロック信号」と言う。)の基となるクロック原信号を発生する。そして、クロック発振器10は、発生したクロック原信号をクロック制御装置20に出力する。
クロック制御装置20は、プロセッサ30に供給するクロック信号を制御するものであり、サイクルコントローラ21と、AND回路22と、クロック分配器23とをさらに含んで構成される。
サイクルコントローラ21は、後述するステートマシンの状態遷移条件に従って、クロック発振器10によって発生されたクロック原信号の1クロックをマスクするか否かを制御するクロックマスク信号を出力する。具体的には、サイクルコントローラ21は、後述するように、プログラムコントローラ32およびユニット群33から入力されるサイクル長判定信号が“1”(実行される命令が2サイクル命令であることを示すハイレベル信号)である場合に、所定タイミングのクロック原信号をマスクする“0”を示すクロックマスク信号(ローレベル信号)をAND回路22に出力する。一方、サイクルコントローラ21は、プログラムコントローラ32およびユニット群33から入力されるサイクル長判定信号が“0”(実行される命令が1サイクル命令であることを示すローレベル信号)である場合に、クロック原信号をマスクしない“1”を示すクロックマスク信号(ハイレベル信号)をAND回路22に出力する。
なお、サイクルコントローラ21は、命令がデコードされたサイクルから実行されるサイクルまでのタイミングを調整するため、プログラムコントローラ32およびユニット群33から入力されるサイクル長判定信号をフリップフロップに一旦記憶し、1サイクル遅延させた後の信号を用いてクロックマスク信号の生成を行う(図3参照)。
AND回路22は、クロック発振器10から入力されたクロック原信号と、サイクルコントローラ21から入力されたクロックマスク信号との論理積を演算し、演算結果が“1”である場合、クロック発振器10から入力されたクロック原信号をそのまま供給クロック信号として出力する。一方、AND回路22は、演算結果が“0”である場合、クロック発振器10から入力されたクロック原信号を所定タイミングでマスクし、所定の1周期をローレベルとした供給クロック信号を出力する。
クロック分配器23は、AND回路22から入力された供給クロック信号をプログラムコントローラ32およびユニット群33に分配して出力する。
プロセッサ30は、クロック制御装置20から供給される供給クロック信号によって動作するプロセッサであり、フェッチユニット31と、プログラムコントローラ32と、ユニット群33とをさらに含んで構成される。
フェッチユニット31は、プログラムコントローラ32によってアドレスが入力された命令メモリ40から、所定の命令コードを取得し、プログラムコントローラ32およびユニット群33に出力する。
プログラムコントローラ32は、実行対象となる命令コードの実行順序を管理するためのプログラムカウンタ(不図示)を備えている。そして、プログラムコントローラ32は、プログラムカウンタに記憶された命令メモリ40のアドレスを、順次命令メモリ40に出力する。
また、プログラムコントローラ32は、フェッチユニット31によって入力された命令コードをデコードし、その命令コードの内容に応じて、プロセッサ30のステータスを、割り込み処理あるいは通常の処理を示す状態に変更したり、その命令コードが分岐命令であった場合にプログラムカウンタの値を分岐先のアドレスにジャンプさせたりする。
さらに、プログラムコントローラ32は、命令コードをデコードした結果、分岐命令等、ユニット群33において実行されない命令については、デコードの結果得られる実行サイクル数に応じたサイクル長判定信号(実行サイクル数が“1”である場合、サイクル長判定信号として“0”、実行サイクル数が“2”である場合、サイクル長判定信号として“1”)をサイクルコントローラ21に出力する。
ユニット群33は、命令コードをデコードするデコードユニット、デコードされた命令コードを実行する実行ユニットを備えている。そして、ユニット群33は、命令コードをデコードすることにより、実行ユニットにおいて実行される命令の実行サイクル数を取得し、その実行サイクル数に応じたサイクル長判定信号(実行サイクル数が“1”である場合、サイクル長判定信号として“0”、実行サイクル数が“2”である場合、サイクル長判定信号として“1”)をサイクルコントローラ21に出力する。
さらに、ユニット群33は、実行ユニットの実行結果をレジスタあるいはデータメモリ50に書き込む。
命令メモリ40は、プロセッサ30において実行される命令コード列を記憶するメモリである。命令メモリ40に記憶された命令コードには、その命令が実行される場合の実効サイクル数が含まれており、デコードされることによって、その実行サイクル数が判別される。
データメモリ50は、プロセッサ30において演算対象となるデータや、プロセッサ30の演算結果であるデータを記憶するメモリである。
次に、動作を説明する。
初めに、サイクルコントローラ21の動作について説明する。
図2は、サイクルコントローラ21の動作を規定するステートマシンを示す図である。
図2において、サイクルコントローラ21は、クロック発振器10のクロック信号をマスクしない状態である“IDLE”と、クロック発振器10のクロック信号をマスクする状態である“MASK”との2つの状態を遷移する。
そして、サイクルコントローラ21は、“IDLE”および“MASK”のいずれにおいても、サイクル長判定信号が“0”である場合には“IDLE”に遷移する。また、サイクルコントローラ21は、“IDLE”および“MASK”のいずれにおいても、サイクル長判定信号が“1”である場合には“MASK”に遷移する。
さらに、サイクルコントローラ21は、“IDLE”の状態においては、クロックマスク信号として“1”(クロック原信号をマスクしないハイレベル信号)を出力し、“MASK”の状態においては、クロックマスク信号として“0”(クロック原信号をマスクするローレベル信号)を出力する。
続いて、情報処理装置1全体の動作について説明する。
図3は、情報処理装置1の動作例を示すタイミングチャートである。
情報処理装置1には、通常、図3(a)に示すように、クロック発振器10によって生成されたクロック原信号が入力されている。
そして、例えば、図3のサイクル2において、図3(f)に示すように、命令メモリ40に記憶された第1命令コードがフェッチユニット31によって取得されたとする。なお、この第1命令コードは2サイクル命令であるものとする。
すると、サイクル3において、第1命令コードがデコードされると共に、パイプライン処理により、図3(g)に示すように、命令メモリ40に記憶された第2命令コードがフェッチユニット31によって取得される。なお、この第2命令コードは1サイクル命令であるものとする。
第1命令コードがデコードされた結果、第1命令コードは2サイクル命令であることから、図3(b)に示すように、サイクルコントローラ21に対し、サイクル長判定信号として“1”が入力される。なお、サイクル長判定信号は、デコードステージの間、継続して出力される。
すると、サイクルコントローラ21は、図3(c)に示すように1サイクル遅延されたサイクル長判定信号に応じて、図3(d)に示すように、クロックマスク信号として“0”を出力する。
その結果、AND回路22は、図3(e)に示すように、サイクル5のクロック原信号をマスクした供給クロック信号を出力する。
これにより、サイクル4において開始された第1命令コードの実行ステージおよび第2命令コードのデコードステージが、サイクル5までの2サイクル継続される。
そして、第2命令コードがデコードされた結果、第2命令コードは1サイクル命令であることから、サイクルコントローラ21に対し、サイクル長判定信号として“0”が入力される。
すると、サイクルコントローラ21は、図3(d)に示すように、クロックマスク信号として“1”を出力し、その結果、AND回路22は、図3(d)に示すように、クロック原信号をマスクせずに、そのまま供給クロック信号として出力する。
この後、フェッチユニット31によってフェッチされる命令コードの実行サイクル数に応じて、サイクルコントローラ21が所定のクロックマスク信号を出力し、2サイクル命令が実行される場合には、クロック原信号がマスクされ、実行ステージが2サイクル継続する。
以上のように、本発明を適用した情報処理装置1においては、命令コードに含まれる実行サイクル数に基づいて、サイクルコントローラ21が、その命令コードが実行される際に、クロック原信号をマスクし、実行ステージを2サイクル継続させる。
したがって、簡単な構成によって、命令の実行時間の相違に基づくハザードの発生を防止することが可能となる。
なお、本実施の形態においては、命令コードが1サイクル命令および2サイクル命令である場合を例に挙げて説明したが、3サイクル以上の実行サイクルを有する命令を含むことも可能である。この場合、サイクルコントローラ21が、各命令コードの実行サイクル数に応じて、クロック原信号をマスクする期間を変化させれば良い。
本発明に係るクロック制御装置20を適用した情報処理装置1の機能構成を示すブロック図である。 サイクルコントローラ21の動作を規定するステートマシンを示す図である。 情報処理装置1の動作例を示すタイミングチャートである。 2サイクル命令の直後に1サイクル命令が実行される場合のタイミングチャートを示す図である。 従来の第1の方法におけるタイミングチャートを示す図である。 従来の第2の方法におけるタイミングチャートを示す図である。
符号の説明
1 情報処理装置、10 クロック発振器、20 クロック制御装置、21 サイクルコントローラ、22 AND回路、23 クロック分配器、30 プロセッサ、31 フェッチユニット、32 プログラムコントローラ、33 ユニット群、40 命令メモリ、50 データメモリ

Claims (5)

  1. 発振器によって発生された信号を制御してプロセッサにクロック信号を供給するクロック制御装置であって、
    前記プロセッサにおいて実行される命令の実行サイクル数に応じて、前記発振器によって発生された信号をマスクし、前記プロセッサに供給するクロック信号の周期を変化させるサイクル数変更手段を含むことを特徴とするクロック制御装置。
  2. 前記サイクル数変更手段は、
    前記プロセッサにおいて実行される命令の実行サイクル数に応じたクロックマスク信号を出力するマスク信号出力手段と、
    前記発振器によって発生された信号と、前記マスク信号出力手段によって出力されたクロックマスク信号との論理積を取得し、前記プロセッサに供給するクロック信号とする演算手段とを含み、
    前記マスク信号出力手段において前記クロックマスク信号の論理を切り換えることにより、前記発振器によって発生された信号をマスクすることを特徴とする請求項1記載のクロック制御装置。
  3. 所定周期のクロック信号を発生するクロック発振手段と、
    実行時における実行サイクル数を示す情報を含む命令コードを取得するフェッチ手段と、
    前記命令コードをデコードし、該命令コードの実行サイクル数を取得するデコード手段と、
    前記デコード手段によって取得された前記命令コードの実行サイクル数に基づいて、該命令コードが実行される場合に、前記クロック発振手段によって発生されたクロック信号をマスクし、クロック信号の周期を変化させるサイクル数変更手段と、
    前記サイクル数変更手段によって周期が変化されたクロック信号に従って、前記命令コードを実行する実行手段と、
    を含むことを特徴とする情報処理装置。
  4. 前記サイクル数変更手段は、
    前記命令コードの実行サイクル数に応じたクロックマスク信号を出力するマスク信号出力手段と、
    前記クロック発振手段によって発生されたクロック信号と、前記マスク信号出力手段によって出力されたクロックマスク信号との論理積を取得し、前記実行手段に出力する演算手段とを含み、
    前記マスク信号出力手段において前記クロックマスク信号の論理を切り換えることにより、前記発振器によって発生された信号をマスクすることを特徴とする請求項3記載の情報処理装置。
  5. 発振器によって発生された信号を制御してプロセッサにクロック信号を供給するクロック制御方法であって、
    前記プロセッサにおいて実行される命令の実行サイクル数に応じて、前記発振器によって発生された信号をマスクし、前記プロセッサに供給するクロック信号の周期を変化させるサイクル数変更ステップを含むことを特徴とするクロック制御方法。
JP2004310428A 2004-10-26 2004-10-26 クロック制御装置、情報処理装置およびクロック制御方法 Withdrawn JP2006126893A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004310428A JP2006126893A (ja) 2004-10-26 2004-10-26 クロック制御装置、情報処理装置およびクロック制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004310428A JP2006126893A (ja) 2004-10-26 2004-10-26 クロック制御装置、情報処理装置およびクロック制御方法

Publications (1)

Publication Number Publication Date
JP2006126893A true JP2006126893A (ja) 2006-05-18

Family

ID=36721624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004310428A Withdrawn JP2006126893A (ja) 2004-10-26 2004-10-26 クロック制御装置、情報処理装置およびクロック制御方法

Country Status (1)

Country Link
JP (1) JP2006126893A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013257801A (ja) * 2012-06-14 2013-12-26 Toshiba Corp サーバコンピュータおよびドライブ制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013257801A (ja) * 2012-06-14 2013-12-26 Toshiba Corp サーバコンピュータおよびドライブ制御装置
US9170934B2 (en) 2012-06-14 2015-10-27 Kabushiki Kaisha Toshiba Server and drive control device

Similar Documents

Publication Publication Date Title
US8650554B2 (en) Single thread performance in an in-order multi-threaded processor
US8195975B2 (en) Semiconductor integrated circuit device and clock control method
JP2005050208A (ja) マルチタスクシステムにおけるメモリ管理方式およびタスク制御装置
JP2008542949A (ja) パイプライン型マイクロプロセッサの節電システムおよび節電方法
JPH07105025A (ja) 選択的セーブ方法及びシステム
JP2007528549A (ja) 電子回路
JPH1185513A (ja) プロセッサ
JP4800582B2 (ja) 演算処理装置
JP2007334563A (ja) マスク付きベクトル演算処理装置
JP2002366351A (ja) スーパースカラ・プロセッサ
JP2006126893A (ja) クロック制御装置、情報処理装置およびクロック制御方法
US6981130B2 (en) Forwarding the results of operations to dependent instructions more quickly via multiplexers working in parallel
JP2003263313A (ja) デジタルプロセッサおよび命令の選択方法
EP0898226A2 (en) Data processor with register file and additional substitute result register
KR19980058221A (ko) 파이프라인 정지회로를 구비한 프로세서
JP2000231488A (ja) プロセッサ
JP4609702B2 (ja) データ処理システムおよびその制御方法
JPH03136136A (ja) 命令実行時刻制御方式
JP2007257477A (ja) 半導体装置及び命令制御方法
JP2002351658A (ja) 演算処理装置
JP3743155B2 (ja) パイプライン制御型計算機
JP2011150636A (ja) マイクロプロセッサ及びその制御方法
JP2002323983A (ja) 命令生成方法、命令生成方法及び情報処理装置
JP2001243065A (ja) プロセッサ
JPH09282165A (ja) 情報処理装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070403

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080108