JPH10312222A - マイクロコンピュータ及び電子機器 - Google Patents

マイクロコンピュータ及び電子機器

Info

Publication number
JPH10312222A
JPH10312222A JP9137710A JP13771097A JPH10312222A JP H10312222 A JPH10312222 A JP H10312222A JP 9137710 A JP9137710 A JP 9137710A JP 13771097 A JP13771097 A JP 13771097A JP H10312222 A JPH10312222 A JP H10312222A
Authority
JP
Japan
Prior art keywords
clock
circuit
data
bus
control circuit
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.)
Granted
Application number
JP9137710A
Other languages
English (en)
Other versions
JP3562215B2 (ja
Inventor
Satoru Kubota
哲 久保田
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 JP13771097A priority Critical patent/JP3562215B2/ja
Publication of JPH10312222A publication Critical patent/JPH10312222A/ja
Application granted granted Critical
Publication of JP3562215B2 publication Critical patent/JP3562215B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 ストールが発生した場合にも簡易にパイプラ
イン制御できると共に省電力を実現できるマイクロコン
ピュータ及び電子機器を提供すること。 【解決手段】 CPUはパイプラインにより命令を並列
処理しクロック制御回路はCPUの大部分を動作させる
CLK1を制御する。パイプラインのストール時にCL
K1を停止することで、パイプライン制御の適正化、省
電力化を図る。バスアクセスに対するアクノリッジ信号
やバリッド信号の遅延、インターロックの発生によりパ
イプラインがストールする。CPUの一部は、ストール
時に停止しないクロックCLK2により動作する。積和
演算回路を動作させるCLK3は、CLK1の停止時、
積和演算以外の命令実行時に停止する。BCUの応答の
ウェイトサイクル数を制御することで、CPUの実行速
度及び消費電力を制御する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロコンピュ
ータ及び電子機器に関する。
【0002】
【背景技術及び発明が解決しようとする課題】近年、家
庭用のゲーム装置、カーナビゲーションシステム、プリ
ンタ、携帯情報端末などの電子機器に組み込まれ、高度
な情報処理を実現できるマイクロコンピュータに対する
需要が高まっている。
【0003】このようなマイクロコンピュータでは、処
理の高速化を図ることが重要な課題となっており、これ
を達成するものとしてパイプライン処理と呼ばれる技術
が知られている。パイプライン処理では、命令の処理を
複数のステージ(パイプラインステージ)に分け各命令
のステージを並列処理する。即ち命令の処理を、例えば
命令フェッチ、命令デコード、レジスタリード、アドレ
ス計算、命令実行、レジスタライトのステージに分け
る。そして例えば第1の命令によるレジスターリードや
アドレス計算を行っている際に、第2の命令のデコード
やフェッチを行う。このように命令をパイプラインによ
り処理することで、命令の処理のスループットを格段に
向上できる。
【0004】しかしながら、このパイプライン処理にお
いては、データの依存関係等に起因するストールの問題
がある。この問題は例えば、第1の命令でメモリからロ
ードしたデータを直後の第2の命令で使用する場合等に
生じる。パイプラインを採用して処理の高速化を図りな
がらも、回路の小規模化を図るためには、ストール発生
時におけるパイプライン制御をできる限り簡易化するこ
とが望まれる。
【0005】一方、マイクロコンピュータは携帯用の電
子機器などに使用されることが多く、このような電子機
器においては電池駆動による長時間動作への要求が高ま
っている。従って、このような電子機器に組み込まれる
マイクロコンピュータは、できる限り低消費電力である
ことが望まれる。
【0006】本発明は、以上のような技術的課題に鑑み
てなされたものであり、その目的とするところは、スト
ールが発生した場合にも簡易にパイプライン制御できる
と共に、省電力を実現できるマイクロコンピュータ及び
電子機器を提供することにある。
【0007】
【課題を解決するための手段】上記課題を解決するため
に本発明に係るマイクロコンピュータは、発行された各
命令のパイプラインステージをパイプライン制御により
並列処理する中央処理ユニットと、前記中央処理ユニッ
トを動作させる第1のクロックを制御するクロック制御
回路とを含み、前記クロック制御回路が、並列処理され
るパイプラインステージの中の少なくとも1つが所与の
要因によりストールした場合に、前記第1のクロックを
停止する制御を行うことを特徴とする。
【0008】本発明によれば、パイプラインが所与の要
因によりストールした場合に、中央処理ユニットを動作
させる第1のクロックが停止する。そしてストールの解
消後に第1のクロックの停止が解除され、中央処理ユニ
ットの動作が再開する。本発明によれば、パイプライン
制御される回路間の同期を保つことができるため、スト
ール時のパイプライン制御を簡易化できる。またストー
ル時に中央処理ユニットの大部分の動作を停止できるた
め、省電力化を図れる。
【0009】また本発明は、前記クロック制御回路が、
命令のフェッチ要求に対する第1のアクノリッジ信号が
少なくとも1クロックサイクル遅延した場合、命令デー
タの第1のバリッド信号が少なくとも1クロックサイク
ル遅延した場合、データのアクセス要求に対する第2の
アクノリッジ信号が少なくとも1クロックサイクル遅延
した場合、データの第2のバリッド信号が少なくとも1
クロックサイクル遅延した場合、前記中央処理ユニット
が内蔵する汎用レジスタのインターロックが発生した場
合、前記中央処理ユニットのバスアクセス要求よりも高
い優先順位を持つバスアクセス要求が発生した場合の少
なくとも1つの場合に、前記第1のクロックを停止する
制御を行うことを特徴とする。例えば命令フェッチ要求
に対する第1のアクノリッジ信号が遅延した場合には、
第1のクロックを停止し、第1のアクノリッジ信号がア
クティブになるのを待つことでストールを解消できる。
またレジスタ・インターロックが生じた場合には、第1
のクロックを停止し、レジスタ・インターロックが解除
されるのを待つことでストールを解消できる。またDM
Aリクエストや外部バスマスタによるリクエストなどの
高い優先順位を持つバスアクセス要求が発生した場合に
は、第1のクロックを停止し、そのバスアクセス要求の
処理が完了するのを待つことでストールを解消できる。
【0010】また本発明は、前記クロック制御回路が、
前記第1のアクノリッジ信号の未返却数が0であること
を表すステート、1であることを表すステート及び2で
あることを表すステートを有する第1のステートマシー
ン、前記第1のバリッド信号の未返却数が0であること
を表すステート、1であることを表すステート及び2で
あることを表すステートを有する第2のステートマシー
ン、前記第2のアクノリッジ信号の未返却数が0である
ことを表すステート、1であることを表すステート及び
2であることを表すステートを有する第3のステートマ
シーン、前記第2のバリッド信号の未返却数が0である
ことを表すステート、1であることを表すステート及び
2であることを表すステートを有する第4のステートマ
シーンの少なくとも1つを含むことを特徴とする。この
ように未返却数が0、1、2であることを表すステート
を持たせることで、例えばリクエスト信号が連続して出
され且つアクノリッジ信号の返却が遅延した場合にも、
正常な動作を保証できることになる。
【0011】また本発明は、前記クロック制御回路が、
前記中央処理ユニットを動作させる第2のクロックを、
パイプラインステージが前記所与の要因によりストール
した場合にも停止しないように制御することを特徴とす
る。このような第2のクロックを、ストール時にも動作
する必要がある回路ユニットに供給することで、マイク
ロコンピュータの正常動作を保証できる。
【0012】また本発明は、前記第2のクロックが、前
記中央処理ユニットが内蔵する汎用レジスタへのデータ
アクセスを制御するレジスタ制御回路及び前記クロック
制御回路の少なくとも一方を動作させるクロックである
ことを特徴とする。このようにレジスタ制御回路を第2
のクロックにより動作させることで、レジスタへのデー
タ書き込み時の誤動作等を防止できる。またクロック制
御回路を第2のクロックにより動作させることで、第1
のクロックの停止処理を適正に行うことが可能となる。
【0013】また本発明は、前記中央処理ユニットが、
前記クロック制御回路に出力され且つ1つのバスアクセ
ス要求について1クロックサイクル期間だけアクティブ
になる第1のリクエスト信号と、前記中央処理ユニット
からのバスアクセス要求を受け付けるバス制御ユニット
に対して出力され且つ前記第1のリクエスト信号がアク
ティブになってから前記バス制御ユニットからのアクノ
リッジ信号がアクティブになるまでの期間アクティブに
なる第2のリクエスト信号とを生成するインターフェー
ス回路を含むことを特徴とする。このようにすること
で、クロック制御回路は、パイプラインがストールした
か否かを第1のリクエスト信号を用いて判断できる。ま
たバス制御ユニットは、中央処理ユニットからバスアク
セス要求があったか否かを第2のリクエスト信号を用い
て判断できる。このように2種類のリクエスト信号を用
意することで、クロック制御回路を正常に動作させるこ
とができる共に、バス制御ユニットとのインターフェー
ス処理を適正化できる。
【0014】また本発明は、前記クロック制御回路が、
前記中央処理ユニットの制御の下で動作する所与の回路
ユニットを動作させる第3のクロックを、パイプライン
ステージが前記所与の要因によりストールした場合及び
前記回路ユニットを使用しない命令を処理する場合のい
ずれかの場合に停止する制御を行うことを特徴とする。
このようにすることで、中央処理ユニットと所与の回路
ユニットとの同期関係を維持できると共に、この回路ユ
ニットの無駄な電力の消費を解消できる。
【0015】また本発明は、前記回路ユニットが、積和
演算回路、乗算器、加算器、除算器及びバレルシフタの
少なくとも1つであることを特徴とする。これらの回路
ユニットは回路規模が大きく高速度で動作する。従っ
て、ストール時や、これらの回路ユニットを使用しない
命令の処理時に、これらの回路ユニットの動作を停止す
ることで、消費電力の大幅な低減化を期待できる。
【0016】また本発明は、前記中央処理ユニットから
のバスアクセス要求を受け付けるバス制御ユニットと、
前記バスアクセス要求に対する前記バス制御ユニットの
応答のウェイトサイクル数を制御するウェイト制御回路
とを含むことを特徴とする。
【0017】本発明によれば、バス制御ユニットの応答
のウェイトサイクル数を制御することで、第1のクロッ
クの停止期間が制御される。これにより中央処理ユニッ
トの実行速度や消費電力を自動的に制御できることにな
る。
【0018】また本発明は、前記ウェイト制御回路が、
所与の設定値に基づき決定される周期でアクティブにな
る周期信号を生成する回路と、前記中央処理ユニットか
らのリクエスト信号がアクティブとなり且つ前記周期信
号がアクティブとなった場合にアクティブになるアクノ
リッジ信号を生成する回路とを含むことを特徴とする。
このような周期信号を用いてアクノリッジ信号を生成す
れば、少ない回路規模で簡易にウェイトサイクル数を制
御できるようになり、中央処理ユニットの実行速度や消
費電力を制御できるようになる。
【0019】また本発明に係る電子機器は、上記のいず
れかのマイクロコンピュータと、前記マイクロコンピュ
ータの処理対象となるデータの入力源と、前記マイクロ
コンピュータにより処理されたデータを出力するための
出力装置とを含むことを特徴とする。このようにすれ
ば、小規模で省電力のマイクロコンピュータを電子機器
に組み込むことが可能となり、電子機器の低コスト化、
コンパクト化、低消費電力化を図ることができる。
【0020】
【発明の実施の形態】以下、本発明の好適な実施形態に
ついて図面を用いて詳細に説明する。
【0021】(実施例1) 1.構成 実施例1は、パイプラインステージがストールした場合
に、CPU(中央処理ユニット)の動作クロックを停止
する実施例である。
【0022】図1にマイクロコンピュータ100のブロ
ック図の例を示す。このブロック図は、実施例1、2、
3に共通に使用されるブロック図である。
【0023】ここでマイクロコンピュータ100は、発
行された命令を処理するCPU102、バスの制御を行
うBCU(バス制御ユニット)108、命令やデータを
記憶する内部メモリ110を含む。なおマイクロコンピ
ュータ100の外部には外部アドレスバス、外部データ
バスが設けられており、これらの外部アドレスバス、外
部データバスには、外部メモリ114などの各種の周辺
装置が接続される。
【0024】BCU(バス制御ユニット)108は、各
種のバスの制御を行うものであり、これにより、例えば
CPU102と、内部メモリ110、外部メモリ114
との間でのデータ転送等が可能となる。
【0025】I_ADDR_BUSは命令アドレスバス
であり、I_DATA_BUSは命令データバスであ
る。これらのバスを用いて内部メモリ110や外部メモ
リ114から命令が読み出される。またD_ADDR_
BUSはデータアドレスバスであり、D_DATA_B
USはデータバスである。これらのバスを用いて内部メ
モリ110や外部メモリ114から命令処理に必要なデ
ータが読み出される。このように本実施例のマイクロコ
ンピュータではいわゆるハーバードアーキテクチャのバ
ス構成を採用している。
【0026】CPU102は、命令デコーダ120、P
C(プログラムカウンタ)126、汎用レジスタ13
0、レジスタ制御回路131、ALU136、積和演算
回路140、クロック制御回路10、インターフェース
回路30などを含む。
【0027】ここで命令デコーダ120は、I_DAT
A_BUSからIRINを介して入力された命令を受け
付けると共に解析し、命令の実行に必要な種々の制御信
号を出力する。例えば命令に応じた種々の指示を、即値
生成器122を介してCPU102の各部に与える。
【0028】即値生成器122は、命令に含まれる即値
に基づき、命令の実行時に使用する32ビットの即値デ
ータを生成したり、各命令の実行に必要な0、±1、±
2、±4のconstantデータを生成したりする。PCイン
クリメンタ124は、1つの命令を実行する毎にPC1
26の値をインクリメントする処理を行う。アドレス加
算器128は、各種レジスタに格納されている情報や即
値生成器122で生成される即値データを用いて加算処
理を行い、内部メモリ110や外部メモリ114からの
読み出し処理に必要なアドレスを生成する。
【0029】汎用レジスタ130は、16本の32ビッ
トのレジスタR0〜R15を含んでおり、読み出しポー
ト118、119を有する。レジスタ制御回路131
は、汎用レジスタ130へのデータアクセス(データ書
き込み・読み出し)を制御する。SP132は、スタッ
クポインタ専用の32ビットのレジスタであり、スタッ
クの先頭番地を指すスタックポインタを格納する。PS
R(プロセッサステータスレジスタ)134は、各種の
フラグを格納する32ビットのレジスタである。
【0030】ALU(算術論理演算ユニット)136
は、CPU102の制御の下で、加減演算などの算術演
算や論理和、論理積、論理シフトなどの論理演算を行う
ものである。ゼロディテクタ138は、ALU136の
演算結果が零か否かを検出するものである。積和演算回
路140は、バスマルチプレクサ139、AUX_BU
Sを介して入力されるデータに基づき、CPU102の
制御の下で積和演算を実行するものであり、図示しない
乗算器、加算器、積和結果レジスタを含む。この積和演
算回路140は乗算器や除算器としても機能する。バス
バイバス142は、所与の期間にバスのバイパスを行う
回路である。
【0031】クロック制御回路10は、CPU102を
動作させるクロックCLK1、CLK2の制御を行う。
インターフェース回路30は、各種のインターフェース
信号(リクエスト信号、アクノリッジ信号、データバリ
ッド信号等)を用いて、BCU108との間のデータ転
送のインターフェースを行う。
【0032】なおPA_BUS、PB_BUS、WW_
BUS、XA_BUSは、CPU102の内部バスであ
る。IA、DAは、各々、CPU102からI_ADD
R_BUS、D_ADDR_BUSにアドレスを出力す
るためのものである。DINは、D_DATA_BUS
からのデータをCPU102に入力するためのものであ
り、DOUTは、CPU102からのデータをD_DA
TA_BUSに出力するためのものである。
【0033】2.本実施例の特徴及びパイプラインのス
トール さて本実施例の特徴は、パイプラインステージがストー
ルした場合に、CPU102の一部を除く大部分を動作
させるクロックであるCLK1(第1のクロック)を停
止する点にある。CLK1を停止する制御は図1のクロ
ック制御回路10が行う。クロック制御回路10には、
マイクロコンピュータ100の内部に設けられる図示し
ない発振回路或いは外部から、クロックCLKが供給さ
れる。そしてパイプラインが後述する所与の要因により
ストールした場合にCLKを所与の期間だけマスクし
て、これをCLK1として出力する。これによりストー
ルが生じた場合にもパイプラインを適正に制御できる。
またCLK1が停止することにより無駄な電力の消費を
回避できる。
【0034】なお本実施例のクロック制御回路10は、
ストールが発生した場合にも停止しないクロックである
CLK2(第2のクロック)も出力する。CPU102
の回路ユニットの中で、ストールが発生した場合にも動
作させる必要がある回路ユニットは、このCLK2によ
り動作させる。
【0035】次にパイプラインのストールについて説明
する。ストールは、CPU102のバスアクセス(メモ
リアクセス)要求が待たされた場合(図2(A))や、
レジスタのインターロック(データ・ハザード)が生じ
た場合(図2(B))などに発生する。なお図2
(A)、(B)に示すように本実施例では、各命令の処
理は、F(命令フェッチ)、D(命令デコード)、R
(レジスタリード)、A(アドレス計算)、E(命令実
行)、W(レジスタライト)というように6段のステー
ジに分けられる。また各命令の処理は3クロックサイク
ルで完了する。
【0036】図2(A)のパイプライン処理では、レジ
スタR8の内容で指定されるアドレス[%R8]により
メモリからデータを読み出しレジスタR0に書き込む第
1のロード命令が、まず処理される。次にレジスタR9
の内容で指定されるアドレス[%R9]によりメモリか
らデータを読み出しレジスタR1に書き込む第2のロー
ド命令が処理される。次に上記第1、第2のロード命令
によりレジスタR0、R1に書き込まれたデータを加算
し、加算結果をレジスタR0に書き込む加算命令が処理
される。この時、アドレス[%R8]は外部メモリ11
4のアドレスであるため、上記第2のロード命令と異な
り上記第1のロード命令によるバスアクセス要求は例え
ば1クロックサイクルだけ待たされる。
【0037】本実施例では、このようにバスアクセス要
求が待たされパイプラインがストールした場合に、図2
(A)のD1に示すようにCPU102の大部分を動作
させるクロックであるCLK1を停止する。このように
することで、アドレス[%R8]から読み出されたデー
タをレジスタR0に適正に書き込めると共に(D2)、
第2のロード命令や加算命令を適正に実行できるように
なる(D3)。即ち、ストールが生じた場合にもパイプ
ラインを適正に制御できる。またCPU102の大部分
を動作させるクロックであるCLK1が停止すること
で、無駄な電力の消費を回避できる。またパイプライン
がストールした場合に、自動的に省電力モードにするこ
とが可能となる。
【0038】図2(B)のパイプライン処理では、レジ
スタR3の内容で指定されるアドレス[%R3]により
メモリからデータを読み出しレジスタR1に書き込むロ
ード命令が、まず処理される。次にレジスタR5に書き
込まれたデータと上記ロード命令によりレジスタR1に
書き込まれたデータを加算して、加算結果をレジスタR
5に書き込む加算命令が処理される。このように第1の
命令でメモリからレジスタにデータをロードし、その直
後の第2の命令でそのレジスタのデータを使用すると、
いわゆるレジスタ・インタロックが発生する。即ち加算
命令を適正に実行するためにはD4の時点でレジスタR
1にデータが書き込まれている必要があるが、図2
(B)ではD5の時点でデータが書き込まれるため加算
命令を適正に実行できない。
【0039】そこで本実施例では、このようなレジスタ
・インタロックが生じパイプラインがストールした場合
に、D6に示すようにCLK1を停止する。これにより
加算命令のEステージがD7に示す位置にシフトするた
め、加算命令を適正に実行できると共に、省電力化も図
れる。
【0040】バスアクセス要求が待たされた場合のパイ
プライン制御について図3(A)、(B)、(C)を用
いて更に詳しく説明する。図3(A)に示すように、C
PU102(インターフェース回路30)とBCU10
8は、CPU_IR_REQ_1L、CPU_IR_A
CK_1L、CPU_IR_VLD_1L、CPU_D
ATA_REQ_1L、CPU_DATA_ACK_1
L及びCPU_DATA_VLD_1Lを用いてデータ
転送を制御している。なお上記の”1L”の表記は、ク
ロックの立ち上がりで信号がアクティブになることを意
味する。
【0041】図3(B)に、命令のフェッチ要求の際の
タイミングチャートを示す。命令フェッチを要求する場
合には、CPU102(インターフェース回路30)
は、CPU_IR_REQ_1L(命令リクエスト)を
アクティブ(=1)にし(図3(B)のE1)、その1
/2クロックサイクル後にIA及びI_ADDR_BU
Sを介してBCU108に命令アドレスを出力する(E
2)。
【0042】ノーウェイトで命令フェッチ要求をアクノ
リッジできる場合には、BCU108は、CPU_IR
_REQ_1Lがアクティブになってから1クロックサ
イクル後にCPU_IR_ACK_1L(命令アクノリ
ッジ)をアクティブにする(E3)。更にノーウェイト
で命令データをバリッドにできる場合には、BCU10
8は、CPU_IR_VLD_1L(命令バリッド)を
CPU_IR_ACK_1Lと同時にアクティブにし
(E4)、その1/2クロックサイクル後にI_DAT
A_BUS及びIRINを介してCPU102に命令デ
ータを出力する(E5)。
【0043】CPU102が、内部メモリ110に対し
てハーバードアーキテクチャのバスを用いてアクセスで
きる時には、このようにノーウェイトで命令をフェッチ
できる。そしてこの時にはCLK1は停止しない。
【0044】一方、BCU108が、優先度の高いバス
要求を処理している場合等には、例えばDMAリクエス
トやDRAMリフレッシュを処理している場合には、命
令フェッチ要求に対するアクノリッジ信号が遅延する。
即ちCPU_IR_REQ_1Lがアクティブになって
から例えば2クロックサイクル後にCPU_IR_AC
K_1Lがアクティブになる(E6)。このようにCP
U_IR_ACK_1Lがアクティブになるのが遅延す
ると、クロック制御回路10は、CLK1を例えば1ク
ロックサイクルだけ停止する(E7)。これにより、ア
クノリッジ信号が遅延した場合にもパイプラインを適正
に制御することが可能となる。なおCPU102は、C
PU_IR_ACK_1Lがアクティブになるまで、C
PU_IR_REQ_1Lのレベル及びIAの値を保持
する。
【0045】図3(C)に、データのリード要求の際の
タイミングチャートを示す。CPU102は、CPU_
DATA_REQ_1L(データリクエスト)をアクテ
ィブにしてデータのリード要求を行い、DA及びD_A
DDR_BUSを介してアドレスを出力する。BCU1
08は、CPU_DATA_ACK_1L(データアク
ノリッジ)、CPU_DATA_VLD_1L(データ
バリッド)をアクティブにして、バスアクセスのアクノ
リッジ信号やデータのバリッド信号をCPU102に出
力し、D_DATA_BUS及びDINを介してデータ
をCPU102に出力する。そしてアクノリッジ信号や
バリッド信号が遅延した場合には、クロック制御回路1
0がCLK1を停止し、これに対処する。
【0046】なおデータライトを行う場合には、CPU
102は、図3(C)のDAと同じタイミングでDOU
Tにデータを出力する。またデータライト時には、CP
U_DATA_VLD_1Lは使用されない。
【0047】BCU108が、メモリアクセスに時間を
要する外部メモリ114にアクセスする場合や、16ビ
ットのデータバスを用いバスサイクルを2回起動し32
ビットのデータをリードする場合(16ビットの外部デ
ータバスを用いてマイクロコンピュータの周辺装置にア
クセスする場合)等には、データのバリッド信号が遅延
する。即ちCPU_DATA_ACK_1Lがアクティ
ブになってから(E8)、例えば1クロックサイクル後
にCPU_DATA_VLD_1Lがアクティブになる
(E9)。このようにCPU_DATA_VLD_1L
がアクティブになるのが遅延すると、クロック制御回路
10は、CLK1を例えば1クロックサイクルだけ停止
する(E10)。これにより、データのバリッド信号が
遅延した場合にもパイプラインを適正に制御できること
になる。
【0048】さてストール時にパイプラインを適正に制
御する手法の1つとして、各ステージの処理に必要な各
種の制御信号(フェッチ信号、デコード信号、レジスタ
リード信号、メモリリード信号、演算開始信号、レジス
タライト信号等)の状態をパイプラインレジスタに格納
し、ストールが解消するまでこれらの制御信号の状態が
変化しないように保持しておく手法が考えられる。
【0049】しかしながら、この手法によると、上記制
御信号を格納するためにパイプラインレジスタが大規模
化し、消費電力の増加を招く。また制御信号の状態が変
化しないように、各ステージ毎に制御回路(ステートマ
シーン)を設ける必要があり、回路設計が複雑化する。
また、CPUを動作させるクロック、特にCPU内のパ
イプラインレジスタや各ステージ毎に設けられた上記制
御回路を動作させるクロックは、パイプラインのストー
ル時にも停止していないため、電力が無駄に消費されて
しまう。
【0050】本実施例によれば、CPUを動作させるク
ロックをストール時に停止することでストール時のパイ
プライン制御の適正化を図っている。従って、上記手法
で問題となった回路規模や消費電力の増加、回路設計の
複雑化、電力の無駄な消費などの問題を解消できること
になる。
【0051】3.クロック制御回路 図4にクロック制御回路10の回路図の例を示す。命令
アクノリッジウェイト回路12(第1のステートマシー
ン)、命令バリッドウェイト回路14(第2のステート
マシーン)、データアクノリッジウェイト回路16(第
3のステートマシーン)、データバリッドウェイト回路
18(第4のステートマシーン)、インターロックウェ
イト回路20及び外部リクエストウェイト回路22の出
力のいずれかがアクティブになると、CPU_STOP
_0Lがアクティブになる。するとこのCPU_STO
P_0LによりCLKがマスクされ、CPU_STOP
_0Lがアクティブになる期間、CLK1が停止する。
一方、パイプラインのストール時にも動作させる回路ユ
ニットに対しては、CLKをバッファリングした第2の
クロックCLK2が供給される。
【0052】各回路12〜22の出力は、以下に示す要
因FC1〜FC6が生じた場合にアクティブになる。
【0053】FC1 CPUからBCUへの命令フェッチ要求に対するアクノ
リッジ信号が遅延した場合(アクノリッジ信号がアクテ
ィブになるのを待つ場合) FC2 命令フェッチ要求に対するアクノリッジ信号をBCUが
CPUに返したが命令データのバリッド信号が遅延した
場合(バリッド信号がアクティブになるのを待つ場合) FC3 CPUからBCUへのデータアクセス要求に対するアク
ノリッジ信号が遅延した場合(リード及びライト時) FC4 データアクセス要求に対するアクノリッジ信号をBCU
がCPUに返したがデータのバリッド信号が遅延した場
合(リード時のみ) FC5 データリード時にレジスタ・インタロックが生じた場合 FC6 CPU以外のバスアクセス要求にBCUが応答するため
にCPUのメモリアクセスが待たされた場合(周辺装置
が外部バスマスタになる場合等) 3.1 命令アクノリッジウェイト回路(第1のステー
トマシーン) 図5(A)、(B)に、命令アクノリッジウェイト回路
12の状態遷移図及びこの回路の動作を説明するための
タイミングチャートを示す。
【0054】図5(A)に示すように、命令アクノリッ
ジウェイト回路12は、”00”、”01”、”11”
の3つのステート(STATE_WAIT_IR_AC
K)を持ち、これらの”00”、”01”、”11”
は、各々、アクノリッジ信号の未返却数が0、1、2で
あることを示す。また命令アクノリッジウェイト回路1
2の入力信号はREQ(=PRIME_IR_REQ)
及びACK(=CPU_IR_ACK_1L)であり、
出力信号はWAIT_IR_ACK_0Lである。な
お”0L”の表記は、クロックの立ち下がりで変化する
信号であることを意味する。
【0055】ここでCPU_IR_REQ_1Lは、C
PUがBCUに命令のフェッチ要求をした時にアクティ
ブになる信号であり、CPU_IR_ACK_1Lは、
CPUからの命令フェッチ要求をBCUが受け付けた時
にアクティブになる信号である。またPRIME_IR
_REQは、1つの命令の実行を終了した場合に次の命
令をフェッチするための信号である。PRIME_IR
_REQは、CPU_IR_ACK_1Lがアクティブ
になったか否かに関わらず、1つの命令の実行に対して
1クロックサイクルのみアクティブになるのに対し、C
PU_IR_REQ_1Lは図5(B)のF1、F2に
示すように、対応するCPU_IR_ACK_1Lがア
クティブになるまでアクティブ状態を保持する。命令ア
クノリッジウェイト回路12の状態を変化させる信号と
して、CPU_IR_REQ_1LではなくPRIME
_IR_REQを使用することで、必要な数だけの命令
リクエストをステートマシーンに入力できるため、回路
を正常動作させることができる。
【0056】図5(A)の状態遷移図について説明す
る。REQが1(アクティブ)になると(F3)、ステ
ート(STATE_WAIT_IR_ACK)が”0
1”に移行する(F4)。そして次にACKが1になる
と”00”に戻る(F5、F6)。
【0057】一方、REQが1になり”01”に移行し
た後(F7、F8)、REQ及びACKが共に0である
とステートが”01”に留まり、ウェイト状態になる
(F9、F10)。そして次にREQが0のままでAC
Kが1になると”00”に戻る(F11、F12)。
【0058】REQ3が出された後、ACK3が返され
る前にREQ4が出された場合には(F13、F1
4)、ステートは、”01”、”11”、”01”、”
00”というように変化する(F15)。REQ3が出
された後にCLK1はすぐに停止しないため(F1
6)、次のREQ4が出されてしまう。従って、これら
のREQ3、REQ4に対応するACK3、ACK4が
返されるのを待つ必要がある。本実施例によれば、アク
ノリッジ信号の未返却数が2であることを表すステー
ト”11”を用意することで、このような場合にも適正
に対処できる。即ちACK3及びACK4が返された後
に、CPU_IR_REQ_1Lがインアクティブにな
るように制御できる(F2)。
【0059】なおREQに対してACKがノーウェイト
で返されない場合には、REQ4が出された後にCLK
1は停止する(F18)。これによりCPUの動作も停
止するため、REQ4の次のリクエストがCPUから連
続して出ることはない。従って、アクノリッジ信号の未
返却数が3以上あることを表すステートを用意する必要
はない。
【0060】命令アクノリッジウェイト回路12は、ス
テートが”01”又は”11”で且つACK(CPU_
IR_ACK_1L)がインアクティブの時にアクティ
ブになる信号WAIT_IR_ACK_1Lを生成し、
このWAIT_IR_ACK_1Lを1/2クロックサ
イクル遅延させた信号であるWAIT_IR_ACK_
0Lを出力する。WAIT_IR_ACK_0Lがアク
ティブになると、そのアクティブ期間にCLKがマスク
されるため(図4参照)、CLK1が停止することにな
る(F17〜F20)。
【0061】3.2 命令バリッドウェイト回路(第2
のステートマシーン) 図6(A)、(B)に、命令バリッドウェイト回路14
の状態遷移図及びこの回路の動作を説明するためのタイ
ミングチャートを示す。
【0062】図6(A)に示すように命令バリッドウェ
イト回路14は、前述の命令アクノリッジウェイト回路
12と同様に”00”、”01”、”11”の3つのス
テート(STATE_WAIT_IR_VLD)を持
つ。これらのステートは、各々、バリッド信号の未返却
数が0、1、2であることを表すものである。また命令
バリッドウェイト回路14の入力信号はACK(=CP
U_IR_ACK_1L)及びVLD(=CPU_IR
_VLD_1L)であり、出力信号はWAIT_IR_
VLD_0Lである。ここでCPU_IR_VLD_1
Lは、BCUがCPUに対して命令データを出力する時
にアクティブになる信号である。
【0063】図6(A)の状態遷移図について説明す
る。ACKが1(アクティブ)になった時に、VLDも
ノーウェイトで1になるとステートは”00”に留まる
(G1、G2、G3)。
【0064】一方、ACKは1になったがVLDが0
(インアクティブ)のままであるとステートは”01”
に移行する(G4、G5、G6)。即ちVLDがアクテ
ィブになるのを待つ状態になる。その後、ACK及びV
LDが共に0のままである場合にはステートは”01”
に留まり(G7、G8、G9)、VLDが1になると、
ステートは”00”に戻る(G10、G11、G1
2)。
【0065】ACK3を受け付けた後、VLD3を受け
付ける前にACK4を受け付けた場合には(G13、G
14、G15)、ステートは、”01”、”11”、”
01”、”00”というように変化する(G16)。R
EQ3が出された後にCLK1はすぐに停止しないた
め、次のREQ4が出されてしまい、これらのREQ
3、REQ4に対応するVLD3、VLD4がアクティ
ブになるのを待つ必要がある。本実施例によれば、バリ
ッド信号の未返却数が2であることを表すステート”1
1”を用意することで、このような場合にも適正に対処
できる。
【0066】命令バリッドウェイト回路14は、ステー
ト(STATE_WAIT_IR_VLD)が”01”
又は”11”で且つCPU_IR_VLD_0L(CP
U_IR_VLD_1Lを1/2クロックサイクル遅延
させた信号)がインアクティブの時にアクティブになる
信号WAIT_IR_VLD_0Lを出力する。WAI
T_IR_VLD_0Lがアクティブになると、そのア
クティブ期間にCLKがマスクされるため(図4参
照)、CLK1が停止することになる(G17〜G2
2)。
【0067】3.3 データアクノリッジウエイト回路
(第3のステートマシン)、データバリッドウェイト回
路(第4のステートマシーン) データアクノリッジウェイト回路16の状態遷移図及び
タイミングチャートは、図5(A)、(B)とほぼ同様
であり、データバリッドウェイト回路18の状態遷移図
及びタイミングチャートは図6(A)、(B)とほぼ同
様にあるため、詳しい説明を省略する。
【0068】なおデータアクノリッジウェイト回路16
の入力信号はREQ(=PRIME_DATA_RE
Q)及びACK(=CPU_DATA_ACK_1L)
であり、出力信号はWAIT_DATA_ACK_0L
である。またデータバリッドウェイト回路18の入力信
号はACK(=CPU_DATA_ACK_1L)及び
VLD(=CPU_DATA_VLD_1L)であり、
出力信号はWAIT_DATA_VLD_0Lである。
ここでCPU_DATA_REQ_1Lは、CPUがB
CUにデータのアクセス要求をした時にアクティブにな
る信号であり、CPU_DATA_ACK_1Lは、C
PUからのデータアクセス要求をBCUが受け付けた時
にアクティブになる信号である。またPRIME_DA
TA_REQは、CPUがメモリアクセスをする命令を
実行した時にRAフェーズでアクティブになる信号であ
る。またCPU_DATA_VLD_1Lは、BCUが
CPUに対しデータを出力する時にアクティブになる信
号である。
【0069】3.4 インターロックウェイト回路 まずレジスタ・インタロックについて詳細に説明する。
レジスタ・インタロックは、第1の命令でメモリからレ
ジスタにデータをロードし、その直後の第2の命令でそ
のレジスタのデータを使用する場合に発生する。例えば
第1、第2の命令が下記に示すものである場合を考え
る。
【0070】 LD %R1,[%R3]・・・(第1の命令) ADD %R5,%R1 ・・・(第2の命令) 上記の命令の実行前にレジスタR1、R3、R5及びア
ドレス[K]で指定されるメモリ領域に格納されている
データ、並びに上記の命令実行後にこれらのレジスタ及
びメモリ領域に格納されるべきデータを、図7(A)に
示す。図中の”−”はドントケアである事を表し、ここ
ではレジスタR1にデータJが格納されていたとする。
【0071】図7(B)に、クロック停止及びバスバイ
パスを行わない場合のタイミングチャートを示す。まず
第1の命令のRAフェーズにより、汎用レジスタ130
の読み出しポート118(図1参照)からデータKが読
み出される(H1)。このデータKは、DAを介してD
_ADDR_BUSに出力され(H2)、これによりメ
モリからデータMが読み出され、D_DATA_BU
S、DINを介してCPUにデータMが入力される(H
3)。
【0072】一方、第2の命令のRAフェーズにより、
読み出しポート118、119からデータJ、Lが読み
出され、PA_BUS、PB_BUSに出力される(H
4、H5)。次に第2の命令のEWフェーズにより、P
A_BUS、PB_BUS上のデータJ、Lが加算され
(H6)、レジスタR5に加算結果データJ+Lが書き
込まれる(H7)。
【0073】このように、クロック停止及びバスバイパ
スを行わない図7(B)の例では、レジスタR5に誤っ
たデータJ+L(正しいデータはM+L)が書き込まれ
てしまう。加算処理のオペランドが、メモリから読み出
したデータMではなくJになってしまうからである。
【0074】そこで本実施例では、図8に示すように、
レジスタ・インタロックが発生した場合にクロックCL
K1を停止すると共にバスのバイパスを行うことで、こ
の問題を解消している。
【0075】まず第1、第2の命令のFDフェーズ(I
1、I2)で得られたデコード情報に基づいて、レジス
タ・インタロックが発生するか否かを命令デコーダ12
0が判断する。即ち第1の命令でメモリからレジスタに
データをロードし、第2の命令でそのレジスタのデータ
を使用する場合にレジスタ・インタロックが発生すると
判断する。レジスタ・インタロックが発生すると判断す
ると、命令デコーダ120はDIN_INT_1Lをア
クティブにする(I3)。するとクロック制御回路10
の中のインタロックウェイト回路20(図4)がこのD
IN_INT_1Lを受け、これを1/2クロックサイ
クル遅延させた信号DIN_INT_0Lを出力する。
このDIN_INT_0LによりCLKがマスクされ、
CLK1が停止する(I4)。これにより第1の命令の
EWフェーズ、第2の命令のRAフェーズの期間が延長
され(I5、I6)、第2の命令のEWフェーズが1ク
ロックサイクルだけ遅延する。即ち加算処理の実行を1
クロックサイクルだけ遅延できる。
【0076】一方、この時、図1のバスバイパス142
が、WW_BUSとPA_BUSの間をバイパスする。
これにより、D_DATA_BUS、DINを介してW
W_BUSに入力されたデータMが(I8)、PA_B
USに出力される(I9)。この結果、PA_BUS、
PB_BUS上のデータM、Lが、第2の命令のEWフ
ェーズで加算され(I10)、レジスタR5に正しいデ
ータM+Lが書き込まれることになる(I11)。
【0077】以上のように本実施例によれば、レジスタ
・インタロックが生じた場合にも、パイプラインを適正
に制御でき、正しい結果を得ることができる。
【0078】3.5 外部リクエストウェイト回路 BCU108は、バスのアクセス要求に対してバスの使
用権の調停を行っている。そして例えばDMAリクエス
ト、外部バスマスタからのリクエスト、DRAMリフレ
ッシュのリクエスト等は、CPU102のバスアクセス
リクエストよりも優先順位が高い。従って、このように
BCU108が優先順位の高いリクエストに応答してい
る場合には、図4の外部リクエストウェイト回路22が
EX_REQ_0Lをアクティブにする。これによりE
X_REQ_0Lがアクティブとなる期間、CLK1が
停止することになり、CPU102の動作が停止する。
【0079】4.停止しないクロックCLK2 上述したように、例えばパイプラインレジスタなど、C
PU102の大部分の回路ユニットは、パイプラインの
ストール時に停止するクロックCLK1により動作す
る。しかしながら、回路ユニットによっては、パイプラ
インのストール時に停止しないクロックCLK2により
動作させることが望ましいものもある。
【0080】本実施例では第1に、クロック制御回路1
0については、CLK1ではなくCLK2により動作さ
せている。クロック制御回路10は、CLK1を停止さ
せるか否かを判断する回路だからである。
【0081】また本実施例では第2に、DINを介して
CPU102に入力されるデータを汎用レジスタ130
に書き込むための制御等を行うレジスタ制御回路131
(図1参照)を、CLK2により動作させている。図9
に、レジスタ制御回路131の構成例(書き込み回路の
部分のみ)を示し、図10、図11にそのタイミングチ
ャートを示す。
【0082】図9において、REG_WR_SELはレ
ジスタR0〜R15のいずれかを選択するための4ビッ
トの信号であり、この信号はレジスタセレクトデコーダ
40によりデコードされる。
【0083】DIN2WW_1Lは、命令をデコードし
た結果、メモリから読み出したデータを汎用レジスタ1
30に書き込む命令であると判断された場合に、アクテ
ィブになる信号である。REG_WR_1Lは、命令を
デコードした結果、ALU136などのメモリ以外の回
路ユニットからのデータを汎用レジスタ130に書き込
む命令であると判断された場合に、その命令のEWフェ
ーズの期間にアクティブになる信号である。
【0084】汎用レジスタ130のラッチ信号であるR
EG_LATCH_SIGは、REG_WR_1L、D
IN2WW_1L、CPU_DATA_VLD_1L及
びストール時に停止しないクロックCLK2に基づき論
理回路42が生成する。またDINからのデータをWW
_BUSに伝える3ステートバッファ42のイネーブル
信号DIN_ENBは、DIN2WW_1L、CLK2
に基づきAND回路44が生成する。
【0085】図10は、ノーウェイトでメモリアクセス
する場合のタイミングチャートである。まず第1の命令
のWステージで、REG_LATCH_SIGがアクテ
ィブになりデータ0x74がレジスタR1に書き込まれ
る(J1)。この際、REG_WR_SELに基づき、
データを書き込むレジスタが決められる(J2)。次
に、レジスタR1に格納されるデータ0x74が、メモ
リの読み出しアドレスとしてDAに出力され(J3)、
これによりメモリからDINを介してデータ0x123
4が読み出される(J4)。そしてこのデータ0x12
34は第2の命令のWステージでレジスタR2に書き込
まれる(J5)。次に、データ0x04と、レジスタR
1に格納されるデータ0x74とが第3の命令により加
算され、加算結果がレジスタR1に書き込まれる(J
6)。
【0086】一方、図11は、メモリアクセスにウェイ
トがある場合のタイミングチャートである。図11で
は、アクノリッジ信号CPU_DATA_ACK_1L
が1クロックサイクル遅延し(K1)、バリッド信号C
PU_DATA_VLD_1Lが2クロックサイクル遅
延している(K2)。まず第1の命令のWステージでデ
ータ0x74がレジスタR1に書き込まれる(K3)。
次にアクノリッジ信号の遅延によりWAIT_DATA
_ACK_0Lがアクティブになり(K4)、バリッド
信号の遅延によりWAIT_DATA_VLD_0Lが
アクティブになる(K5)。これによりCPU_STO
P_0Lがアクティブになり(K6)、CLK1が停止
する(K7)。
【0087】さて、第2の命令によりメモリから読み出
されたデータ0x1234をレジスタR2に書き込むた
めには、図11のK8においてREG_LATCH_S
IGをアクティブにすることが望ましい。DIN上のデ
ータ0x1234が有効になるのは、CPU_DATA
_VLD_1Lがアクティブになってから1/2クロッ
クサイクル後を起点として1クロックサイクル期間だけ
だからである(K9)。
【0088】しかしながら、例えば図9に示すラッチ信
号REG_LATCH_SIGやイネーブル信号DIN
_ENBを、ストール時に停止するクロックCLK1に
基づき生成すると、データ0x1234をレジスタR2
に適正に書き込めないという問題が発生する。
【0089】そこで本実施例では、これらのREG_L
ATCH_SIGやDIN_ENBを、ストール時に停
止しないクロックCLK2に基づき生成することで、上
記問題を解決している。
【0090】5.リクエスト信号の生成 本実施例のインターフェース回路30は、クロック制御
回路10に出力され1つのバスアクセス要求について1
クロックサイクル期間だけアクティブになる第1のリク
エスト信号(PRIME_IR_REQ、PRIME_
DATA_REQ)と、BCU108に出力され第1の
リクエスト信号がアクティブになってからBCU108
からのアクノリッジ信号がアクティブになるまでの期間
アクティブになる第2のリクエスト信号(CPU_IR
_REQ_1L、CPU_DATA_REQ_1L)と
を生成している。このように2種類のアクノリッジ信号
を用意することで、パイプラインにストールが生じた場
合にも、BCU108との間のデータ転送を適正に制御
できると共にクロック制御回路10が含むステートマシ
ーンを適正に動作させることが可能になる。
【0091】図12に、PRIME_IR_REQ(第
1のリクエスト信号)、CPU_IR_REQ_1L
(第2のリクエスト信号)を生成する回路の例を示し、
図13にその動作を説明するためのタイミングチャート
を示す。この回路は、図1のインターフェース回路30
に含まれるものである。
【0092】IR_REQ_1Lは、1つの命令の実行
を終了した時に次の命令をフェッチするための信号であ
る。IR_REQ_1Lは命令の最後のRAフェーズで
アクティブになる(L1、L2)。このIR_REQ_
1LとCPU_STOP_1L(CPU_STOP_0
Lを1/2クロックサイクル遅延させた信号)の反転信
号の論理積をとることで、PRIME_IR_REQが
得られる。このPRIME_IR_REQは、クロック
制御回路10に含まれる命令アクノリッジウェイト回路
12(第1のステートマシーン)に出力され、命令アク
ノリッジウェイト回路12は、このPRIME_IR_
REQに基づいてステートを変化させる。この時、PR
IME_IR_REQは、1つのバスアクセス要求(1
つの命令の実行)について1クロックサイクル期間だけ
アクティブになる(L3〜L6)。このようなPRIM
E_IR_REQを使用することで、命令アクノリッジ
ウェイト回路12が1つのリクエストを2つ以上のリク
エストと誤認することを防止できる。即ちPRIME_
IR_REQの代わりにCPU_IR_REQ_1Lを
使用すると、命令アクノリッジウェイト回路12に入力
されるリクエスト信号が例えば図13のL7の期間にお
いてもアクティブであると判断されてしまい、命令アク
ノリッジウェイト回路12が誤動作するが、PRIME
_IR_REQを使用することでこの問題を解消でき
る。
【0093】論理回路46は、CPU_IR_ACK_
1L、STATE_WAIT_IR_ACK(図5参
照)に基づいて、EXTEND_IR_REQ_1Lを
生成する。このEXTEND_IR_REQ_1Lは、
STATE_WAIT_IR_ACKが”01”又
は”11”且つCPU_IR_ACK_1Lが0の場合
或いはSTATE_WAIT_IR_ACKが”1
1”の場合に、アクティブになる。このEXTEND_
IR_REQ_1LとPRIME_IR_REQの論理
和をとることで、CPU_IR_REQ_1Lが得られ
る。即ちPRIME_IR_REQのアクティブ期間
を、EXTEND_IR_REQ_1Lにより延長した
ものがCPU_IR_REQ_1Lになる。そして、こ
のCPU_IR_REQ_1Lは、対応するアクノリッ
ジ信号がアクティブになるまでの期間、アクティブにな
る(L8〜L11)。これにより、パイプラインがスト
ールした場合にも、BCU108との間の適正なデータ
転送制御が可能となる。即ちCPU_IR_REQ_1
Lの代わりにPRIME_IR_REQを使用すると、
BCU108からのアクノリッジ信号が返される前(例
えばL12)にBCU108に出力されるリクエスト信
号がインアクティブになってしまうが、CPU_IR_
REQ_1Lを使用することでこの問題を解消できる。
【0094】(実施例2)実施例2は、積和演算回路1
40(所与の回路ユニット)を動作させる第3のクロッ
クCLK3を、パイプラインステージがストールした場
合又は積和演算回路140を使用しない命令を処理する
場合に停止する実施例である。
【0095】図14(A)に実施例2のマイクロコンピ
ュータに使用されるクロック制御回路の構成例を示す。
図4との相違点は、第3のクロックCLK3を生成する
ための論理回路50を新たに設けた点である。ここでM
AC_INSTは、積和演算命令を処理するときにアク
ティブになる信号であり、命令デコーダ120から入力
される。このMAC_INSTは、ラッチ52によりラ
ッチされ、インバータ回路54により反転される。そし
て、この反転された信号とCPU_STOP_0LがO
R回路56に入力され、MAC_STOP_0Lが生成
される。このMAC_STOP_0Lがアクティブにな
るとCLK3は停止する。
【0096】図14(B)のタイミングチャートに示す
ように、CLK3は、CPU_STOP_0Lがアクテ
ィブになった場合、即ちパイプラインがストールした場
合に停止する(M1、M2)。また積和演算命令以外の
命令が処理されている場合にも停止する(M3〜M
6)。
【0097】積和演算回路140はCPU102の制御
の下で動作しており、例えば積和演算回路140の入力
データはCPU102の制御の下で供給される。従っ
て、積和演算回路140は、CPU102の動作と同期
をとる必要がある。しかしながら、パイプラインがスト
ールした場合には、実施例1で説明したようにCPU1
02の大部分を動作させるクロックCLK1も停止す
る。これによりCPU102の動作との同期がとれなく
なってしまう。
【0098】そこで本実施例では、パイプラインがスト
ールした場合にCLK1のみならずCLK3も停止す
る。これにより、CPU102の動作と同期をとること
が可能となり、パイプラインの適正な制御が可能とな
る。
【0099】また積和演算命令以外の命令が処理されて
いる場合に、積和演算回路140を動作させると無駄な
電力を消費することになる。特に積和演算回路140は
高速動作すると共に回路規模が大きいため、積和演算回
路140の無駄な動作に起因する電力の消費は非常に大
きなものとなる。
【0100】そこで本実施例では、積和演算命令以外の
命令が処理されている場合に、積和演算回路140を動
作させるCLK3を停止する。これにより、消費電力を
格段に低減できる。
【0101】なおCLK3により動作する回路ユニット
としては、積和演算回路のみならず、乗算器、加算器、
除算器、或いはALUに含まれるバレルシフタ等、種々
のものを考えることができる。
【0102】(実施例3)実施例3は、CPUからのバ
スアクセス要求に対するBCUの応答のウェイトサイク
ル数を制御することで、CPUのクロック周波数を変更
することなく、CPUの命令実行速度及び消費電力を制
御する実施例である。
【0103】図15に実施例3のマイクロコンピュータ
のブロック図の例を示す。ここでBCU108が含むバ
スインターフェース回路60は、バスのインターフェー
スを行う回路であり、各種のバス(I_ADDR_BU
S等)や各種のインターフェース信号(CPU_IR_
REQ_1L等)が接続される。そしてバスインターフ
ェース回路60は、バスアクセス要求に対するBCUの
応答のウェイトサイクル数を制御するウェイト制御回路
68を含む。
【0104】第1のウェイト制御レジスタ62は、メモ
リマップの各エリア毎にウェイトサイクル数を設定する
ためのレジスタである。例えば内部メモリ110はメモ
リアクセスに時間をあまり要しないため、内部メモリ1
10が割り当てられるエリアには小さなウェイトサイク
ル数が設定される。一方、外部メモリ114はメモリア
クセスに時間を要するため、外部メモリ114が割り当
てられるエリアには大きなウェイトサイクル数が設定さ
れる。
【0105】第2のウェイト制御レジスタ64は、ウェ
イトサイクル数の制御により消費電力を制御するための
レジスタであり、本実施例では2ビットのレジスタにな
っている。第2のウェイト制御レジスタ64に”0
0”、”01”、”10”、”11”が設定されると、
図16(A)、(B)、(C)に示す信号REQ_WI
N(周期信号)のデューティが、各々、1/1デューテ
ィ、1/2ディーティ、1/4デューテイ、1/8デュ
ーティに設定される。この信号REQ_WINの生成
は、ウェイト制御回路68が行う。
【0106】REQ_WINが1/1デューティに設定
されている場合には、図16(A)に示すように、RE
Q_WINは常にアクティブになり、CPU_IR_R
EQ_1Lに対してノーウェイトでCPU_IR_AC
K_1Lが返されることになる。
【0107】REQ_WINが1/2デューティに設定
されている場合には、図16(B)に示すように、RE
Q_WINは2クロックサイクルに1回アクティブにな
る。そしてアクノリッジ信号CPU_IR_ACK_1
Lは、CPU102からのリクエスト信号CPU_IR
_REQ_1Lがアクティブであり且つ周期信号REQ
_WINがアクティブとなった場合に、アクティブにな
る(N1、N2、N3)。これによりCPU_IR_A
CK_1Lのウェイトサイクル数が、ほぼ1に設定され
ることになる。
【0108】REQ_WINが1/4デューティに設定
されている場合には、図16(C)に示すように、RE
Q_WINは4クロックサイクルに1回アクティブにな
る。そしてアクノリッジ信号CPU_IR_ACK_1
Lは、CPU_IR_REQ_1Lがアクティブであり
且つREQ_WINがアクティブとなった場合に、アク
ティブになる(N4、N5、N6)。これによりCPU
_IR_ACK_1Lのウェイトサイクル数が、ほぼ3
に設定されることになる。
【0109】このように本実施例では、第2のウェイト
制御レジスタ64の設定により、アクノリッジ信号CP
U_IR_ACK_1Lのウェイトサイクル数を制御で
きる。そしてアクノリッジ信号にウェイトサイクルが挿
入されると、実施例1で説明したように、CPU102
の大部分を動作させるクロックであるCLK1がウェイ
トサイクルの期間停止する。従って、ウェイトサイクル
数を大きくすると、CLK1の停止期間も長くなる。こ
れにより、クロック周波数を低くすることなく、CPU
102の実行速度を低くし、省電力化を図ることができ
る。
【0110】CPUの消費電力を制御する1つの手法と
して、CPUのクロック周波数を制御する手法がある。
しかしながら、この手法を採用すると、クロックを分周
する回路が必要となり回路規模が増加する。また高速で
動作する分周回路の付加は消費電力の増加を招く。更に
分周比の切り替えタイミングの制御が難しいという問題
もある。
【0111】本実施例によれば、ウェイトサイクル数を
制御することで、CLK1の停止期間が制御され、CP
Uの実行速度及び消費電力が自動的に制御されるため、
分周回路の付加に伴い生じる上記問題点を解消できる。
特に本実施例は、パイプラインのストール時にCLK1
を停止するために設けられたハードウェア資源を利用し
て、CPUの実行速度及び消費電力の制御を実現してい
る点に特徴がある。
【0112】なおウェイトサイクル数を制御する手法と
しては、図16(A)〜(C)で説明したREQ_WI
Nを利用する手法が、回路及び制御の簡易性の観点から
特に望ましいが、これに限られるものではない。
【0113】(実施例4)実施例4は、本発明のマイク
ロコンピュータの詳細例を示す実施例である。
【0114】図17に示すように実施例4のマイクロコ
ンピュータ700は、32ビットのマイクロコンピュー
タであり、CPU710、ROM720、RAM73
0、高周波発振回路910、低周波発振回路920、リ
セット回路930、プリスケーラ940、16ビットプ
ログラマブルタイマ950や8ビットプログラマブルタ
イマ960やクロックタイマ970などのタイマ回路、
インテリジェントDMA980や高速DMA990など
のデータ転送制御回路、割り込みコントローラ800、
シリアルインターフェース810、BCU740、A/
D変換器830やD/A変換器840などのアナログイ
ンターフェース回路、入力ポート850や出力ポート8
60やI/Oポート870などのI/O回路、及びそれ
らを接続する各種バス750、760、各種端子890
を含む。
【0115】1チップの半導体基板上に形成されるこの
マイクロコンピュータ700は、32ビットのデータを
処理できるRISC方式のマイクロコンピュータであ
る。そしてパイプライン方式及びロード・ストア方式の
アーキテクチャーを採用し、ほとんど全ての命令を1ク
ロックの期間で実行する。全ての命令は16ビットの固
定長で記述されており、これにより極めて小さい命令コ
ードサイズを実現している。
【0116】(実施例5)実施例5は、実施例1〜4で
説明したマイクロコンピュータを含む電子機器に関する
実施例である。実施例1〜4のマイクロコンピュータに
よれば、適正なパイプライン制御を行いながら、マイク
ロコンピュータの小規模化、省電力化を実現できる。こ
れによりこのマイクロコンピュータが組み込まれる電子
機器の低コスト化、コンパクト化、低消費電力化を図る
ことが可能となる。
【0117】例えば図18(A)に電子機器の1つであ
るカーナビゲーションシステムの内部ブロック図を示
し、図19(A)にその外観図を示す。カーナビゲーシ
ョンシステムの操作はリモコン510を用いて行われ、
GPSやジャイロからの情報に基づいて位置検出部52
0が車の位置を検出する。地図などの情報はCDROM
530(情報記憶媒体)に格納されている。画像メモリ
540は画像処理の際の作業領域になるメモリであり、
生成された画像は画像出力部550を用いてドライバー
に表示される。マイクロコンピュータ500は、リモコ
ン510、位置検出部520、CDROM530などの
データ入力源からデータを入力し、種々の処理を行い、
処理後のデータを画像出力部550などの出力装置を用
いて出力する。
【0118】図18(B)に電子機器の1つであるゲー
ム装置の内部ブロック図を示し、図19(B)にその外
観図を示す。このゲーム装置では、ゲームコントローラ
560からのプレーヤの操作情報、CDROM570か
らのゲームプログラム、ICカード580からのプレー
ヤ情報等に基づいて、画像メモリ590を作業領域とし
てゲーム画像やゲーム音を生成し、画像出力部610、
音出力部600を用いて出力する。
【0119】図18(C)に電子機器の1つであるプリ
ンタの内部ブロック図を示し、図19(C)にその外観
図を示す。このプリンタでは、操作パネル620からの
操作情報、コードメモリ630及びフォントメモリ64
0から文字情報に基づいて、ビットマップメモリ650
を作業領域として、印刷画像を生成し、プリント出力部
660を用いて出力する。またプリンタの状態やモード
を表示パネル670を用いてユーザに伝える。
【0120】なお本発明のマイクロコンピュータを適用
できる電子機器としては、上記以外にも例えば、携帯電
話(セルラーフォン)、PHS、ページャ、オーディオ
機器、電子手帳、電子卓上計算機、POS端末、タッチ
パネルを備えた装置、プロジェクタ、ワードプロセッ
サ、パーソナルコンピュータ、テレビ、ビューファイン
ダ型又はモニタ直視型のビデオテープレコーダなど種々
のものを考えることができる。
【0121】なお、本発明は上記実施例1〜5に限定さ
れるものではなく、本発明の要旨の範囲内で種々の変形
実施が可能である。
【0122】例えばマイクロコンピュータの構成、バス
や命令やデータのビット数、使用する汎用レジスタの
数、パイプラインステージの構成等は、上記実施例で説
明したものに限らず種々の変形実施が可能である。
【0123】またパイプラインのストール要因も上記実
施例で説明したものに限られるものではない。またクロ
ック制御回路、インターフェース回路、バス制御回路の
構成も上記実施例で説明したものに限られるものではな
い。
【0124】また上記実施例3は実施例1との組み合わ
せにおいて特に効果を奏するが、これに限られるもので
はない。
【0125】
【図面の簡単な説明】
【図1】マイクロコンピュータの構成例を示す図であ
る。
【図2】図2(A)、(B)は、パイプラインのストー
ル及びストール時のクロック停止について説明するため
の図である。
【図3】図3(A)、(B)、(C)は、バスアクセス
要求が待たされた場合のパイプライン制御について説明
するための図である。
【図4】クロック制御回路の構成例を示す図である。
【図5】図5(A)、(B)は、命令アクノリッジウェ
イト回路の状態遷移図及びその動作を説明するためのタ
イミングチャートである。
【図6】図6(A)、(B)は、命令バリッドウェイト
回路の状態遷移図及びその動作を説明するためのタイミ
ングチャートである。
【図7】図7(A)、(B)は、レジスタ・インターロ
ック時のパイプライン制御について説明するための図で
ある。
【図8】レジスタ・インターロック時のパイプライン制
御について説明するための図である。
【図9】レジスタ制御回路の構成例を示す図である。
【図10】パイプラインのストール時に停止しないクロ
ックについて説明するための図である。
【図11】パイプラインのストール時に停止しないクロ
ックについて説明するための図である。
【図12】リクエスト信号を生成回路の構成例を示す図
である。
【図13】2種類のリクエスト信号の生成について説明
するための図である。
【図14】実施例2に係るクロック制御回路の構成例を
示す図である。
【図15】実施例3に係るマイクロコンピュータの構成
例を示す図である。
【図16】実施例3の動作について説明するための図で
ある。
【図17】実施例4に係るマイクロコンピュータの構成
例である。
【図18】図18(A)、(B)、(C)は、種々の電
子機器の内部ブロック図の例である。
【図19】図19(A)、(B)、(C)は、種々の電
子機器の外観図の例である。
【符号の説明】
10 クロック制御回路 30 インターフェース回路 60 バスインターフェース回路 62 第1のウェイト制御レジスタ 64 第2のウェイト制御レジスタ 68 ウェイト制御回路 100 マイクロコンピュータ 102 CPU 108 BCU 110 内部メモリ 114 外部メモリ 120 命令デコーダ 122 即値生成器 124 PCインクリメント 126 PC 130 汎用レジスタ 131 レジスタ制御回路 132 SP 134 PSR 136 ALU 138 ゼロディテクタ 139 バスマルチプレクサ 140 積和演算回路

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 発行された各命令のパイプラインステー
    ジをパイプライン制御により並列処理する中央処理ユニ
    ットと、 前記中央処理ユニットを動作させる第1のクロックを制
    御するクロック制御回路とを含み、 前記クロック制御回路が、 並列処理されるパイプラインステージの中の少なくとも
    1つが所与の要因によりストールした場合に、前記第1
    のクロックを停止する制御を行うことを特徴とするマイ
    クロコンピュータ。
  2. 【請求項2】 請求項1において、 前記クロック制御回路が、 命令のフェッチ要求に対する第1のアクノリッジ信号が
    少なくとも1クロックサイクル遅延した場合、命令デー
    タの第1のバリッド信号が少なくとも1クロックサイク
    ル遅延した場合、データのアクセス要求に対する第2の
    アクノリッジ信号が少なくとも1クロックサイクル遅延
    した場合、データの第2のバリッド信号が少なくとも1
    クロックサイクル遅延した場合、前記中央処理ユニット
    が内蔵する汎用レジスタのインターロックが発生した場
    合、前記中央処理ユニットのバスアクセス要求よりも高
    い優先順位を持つバスアクセス要求が発生した場合の少
    なくとも1つの場合に、前記第1のクロックを停止する
    制御を行うことを特徴とするマイクロコンピュータ。
  3. 【請求項3】 請求項2において、 前記クロック制御回路が、 前記第1のアクノリッジ信号の未返却数が0であること
    を表すステート、1であることを表すステート及び2で
    あることを表すステートを有する第1のステートマシー
    ン、前記第1のバリッド信号の未返却数が0であること
    を表すステート、1であることを表すステート及び2で
    あることを表すステートを有する第2のステートマシー
    ン、前記第2のアクノリッジ信号の未返却数が0である
    ことを表すステート、1であることを表すステート及び
    2であることを表すステートを有する第3のステートマ
    シーン、前記第2のバリッド信号の未返却数が0である
    ことを表すステート、1であることを表すステート及び
    2であることを表すステートを有する第4のステートマ
    シーンの少なくとも1つを含むことを特徴とするマイク
    ロコンピュータ。
  4. 【請求項4】 請求項1乃至3のいずれかにおいて、 前記クロック制御回路が、 前記中央処理ユニットを動作させる第2のクロックを、
    パイプラインステージが前記所与の要因によりストール
    した場合にも停止しないように制御することを特徴とす
    るマイクロコンピュータ。
  5. 【請求項5】 請求項4において、 前記第2のクロックが、 前記中央処理ユニットが内蔵する汎用レジスタへのデー
    タアクセスを制御するレジスタ制御回路及び前記クロッ
    ク制御回路の少なくとも一方を動作させるクロックであ
    ることを特徴とするマイクロコンピュータ。
  6. 【請求項6】 請求項1乃至5のいずれかにおいて、 前記中央処理ユニットが、 前記クロック制御回路に出力され且つ1つのバスアクセ
    ス要求について1クロックサイクル期間だけアクティブ
    になる第1のリクエスト信号と、前記中央処理ユニット
    からのバスアクセス要求を受け付けるバス制御ユニット
    に対して出力され且つ前記第1のリクエスト信号がアク
    ティブになってから前記バス制御ユニットからのアクノ
    リッジ信号がアクティブになるまでの期間アクティブに
    なる第2のリクエスト信号とを生成するインターフェー
    ス回路を含むことを特徴とするマイクロコンピュータ。
  7. 【請求項7】 請求項1乃至6のいずれかにおいて、 前記クロック制御回路が、 前記中央処理ユニットの制御の下で動作する所与の回路
    ユニットを動作させる第3のクロックを、パイプライン
    ステージが前記所与の要因によりストールした場合及び
    前記回路ユニットを使用しない命令を処理する場合のい
    ずれかの場合に停止する制御を行うことを特徴とするマ
    イクロコンピュータ。
  8. 【請求項8】 請求項7において、 前記回路ユニットが、積和演算回路、乗算器、加算器、
    除算器及びバレルシフタの少なくとも1つであることを
    特徴とするマイクロコンピュータ。
  9. 【請求項9】 請求項1乃至8のいずれかにおいて、 前記中央処理ユニットからのバスアクセス要求を受け付
    けるバス制御ユニットと、 前記バスアクセス要求に対する前記バス制御ユニットの
    応答のウェイトサイクル数を制御するウェイト制御回路
    とを含むことを特徴とするマイクロコンピュータ。
  10. 【請求項10】 発行された命令を処理する中央処理ユ
    ニットと、 前記中央処理ユニットからのバスアクセス要求を受け付
    けるバス制御ユニットと、 前記バスアクセス要求に対する前記バス制御ユニットの
    応答のウェイトサイクル数を制御するウェイト制御回路
    と、 前記バス制御ユニットの応答が遅延した場合に、前記中
    央処理ユニットを動作させる第1のクロックを停止する
    制御を行うクロック制御回路とを含むことを特徴とする
    マイクロコンピュータ。
  11. 【請求項11】 請求項9又は10において、 前記ウェイト制御回路が、 所与の設定値に基づき決定される周期でアクティブにな
    る周期信号を生成する回路と、 前記中央処理ユニットからのリクエスト信号がアクティ
    ブとなり且つ前記周期信号がアクティブとなった場合に
    アクティブになるアクノリッジ信号を生成する回路とを
    含むことを特徴とするマイクロコンピュータ。
  12. 【請求項12】 請求項1乃至11のいずれかのマイク
    ロコンピュータと、 前記マイクロコンピュータの処理対象となるデータの入
    力源と、 前記マイクロコンピュータにより処理されたデータを出
    力するための出力装置とを含むことを特徴とする電子機
    器。
JP13771097A 1997-05-13 1997-05-13 マイクロコンピュータ及び電子機器 Expired - Fee Related JP3562215B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13771097A JP3562215B2 (ja) 1997-05-13 1997-05-13 マイクロコンピュータ及び電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13771097A JP3562215B2 (ja) 1997-05-13 1997-05-13 マイクロコンピュータ及び電子機器

Publications (2)

Publication Number Publication Date
JPH10312222A true JPH10312222A (ja) 1998-11-24
JP3562215B2 JP3562215B2 (ja) 2004-09-08

Family

ID=15205023

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13771097A Expired - Fee Related JP3562215B2 (ja) 1997-05-13 1997-05-13 マイクロコンピュータ及び電子機器

Country Status (1)

Country Link
JP (1) JP3562215B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002019113A1 (fr) * 2000-08-30 2002-03-07 Matsushita Electric Industrial Co., Ltd. Controleur d'acces de memoire
JP2007521538A (ja) * 2003-08-26 2007-08-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求駆動型クロック・スロットリング電力低減を用いるプロセッサ
WO2008120274A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 演算能力を制御する処理装置
WO2011024330A1 (ja) * 2009-08-24 2011-03-03 パナソニック株式会社 アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002019113A1 (fr) * 2000-08-30 2002-03-07 Matsushita Electric Industrial Co., Ltd. Controleur d'acces de memoire
JP2007521538A (ja) * 2003-08-26 2007-08-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求駆動型クロック・スロットリング電力低減を用いるプロセッサ
WO2008120274A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 演算能力を制御する処理装置
WO2011024330A1 (ja) * 2009-08-24 2011-03-03 パナソニック株式会社 アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法

Also Published As

Publication number Publication date
JP3562215B2 (ja) 2004-09-08

Similar Documents

Publication Publication Date Title
US7958333B2 (en) Processor with memory access stage adapted to fetch an instruction of a thread when no memory access operation is detected
JP3206704B2 (ja) 複数のオンチップメモリバスを備えたデータ処理装置
US5584031A (en) System and method for executing a low power delay instruction
US20070271441A1 (en) Availability of space in a RISC microprocessor architecture
US5440747A (en) Data processor with control logic for storing operation mode status and associated method
US20020049894A1 (en) Method and apparatus for interfacing a processor to a coprocessor
JPH06139189A (ja) 共有バス調停機構
JPH09212358A (ja) データ処理装置及びマイクロプロセッサ
JPH10134008A (ja) 半導体装置およびコンピュータシステム
JPH06150023A (ja) マイクロコンピュータ及びマイクロコンピュータシステム
JP2003196084A (ja) リードモディファイライトユニットを有するシステム
US6233596B1 (en) Multiple sum-of-products circuit and its use in electronic equipment and microcomputers
JP2001092662A (ja) プロセッサコア及びこれを用いたプロセッサ
WO2008023427A1 (fr) Dispositif de traitement de tâche
JP3510729B2 (ja) 命令実行方法および命令実行装置
JP3562215B2 (ja) マイクロコンピュータ及び電子機器
JP2002229779A (ja) 情報処理装置
JPH0916409A (ja) マイクロコンピュータ
CN108628639B (zh) 处理器和指令调度方法
US20210089305A1 (en) Instruction executing method and apparatus
US5677859A (en) Central processing unit and an arithmetic operation processing unit
JP2976850B2 (ja) データ処理装置
JPS6161416B2 (ja)
EP0333231B1 (en) Microcomputer system capable of accessing to memory at high speed
JP2002278753A (ja) データ処理システム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040524

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

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100611

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110611

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110611

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120611

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees