JPH10312280A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH10312280A
JPH10312280A JP9122491A JP12249197A JPH10312280A JP H10312280 A JPH10312280 A JP H10312280A JP 9122491 A JP9122491 A JP 9122491A JP 12249197 A JP12249197 A JP 12249197A JP H10312280 A JPH10312280 A JP H10312280A
Authority
JP
Japan
Prior art keywords
bit
stage
result
bypass circuit
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.)
Pending
Application number
JP9122491A
Other languages
English (en)
Inventor
Katsuhisa Kondo
勝久 近藤
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP9122491A priority Critical patent/JPH10312280A/ja
Publication of JPH10312280A publication Critical patent/JPH10312280A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 この発明は、演算内容に応じて演算結果を符
号拡張回路を介さずに後続の演算に供与し、各ステージ
のサイクルタイムを短縮し、全体の処理の高速化を達成
することを課題とする。 【解決手段】 この発明は、2n ビットの演算に続いて
(n+1) ビットの演算を同一の演算器3で行う場合に、
符号拡張回路6により符号拡張された先行する演算の演
算結果を後続の演算に使用できるようにし、他の演算の
場合には演算器3から直接バイパス回路16に与えられ
る演算結果を後続の演算に使用できるように構成され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、異なるビット幅
の演算を同一の演算器で行うマイクロプロセッサに関す
る。
【0002】
【従来の技術】最近の多くの高性能マイクロプロセッサ
は、いわゆるRISCと呼ばれるアーキテクチャを採用
している。その多くは80年代を起源とする。80年代
では、アドレス空間が32ビットのアドレスで十分表現
できたので、演算のデータ長は32ビットを基本として
いた。しかし、90年代にはいりメモリの集積化が進
み、かつマイクロプロセッサ自身の高性能化が進むにつ
れて、より大きなアドレス空間を処理する必要が出てき
た。そのため、多くのマイクロプロセッサでは、64ビ
ット化が進みつつある。すなわち、演算のデータ長は6
4ビットを基本にするようになってきている。しかし、
既存のソフトウエア資源を生かすために32ビットの演
算も継続してサポートしている。そのため、32ビット
の演算の演算結果は符号拡張されて64ビットで保持さ
れていた。このようにすることにより32ビットの演算
と64ビットの演算を混在させたプログラムを実行する
ことが可能になっていた。
【0003】このように、32ビットの演算と64ビッ
トの演算の双方を1つの演算器で行うマイクロプロセッ
サの従来の構成を図5に示す。
【0004】図5において、マイクロプロセッサは、5
段のパイプライン構成を採用している。第1ステージで
命令キャッシュ1からの命令フェッチ、第2ステージ
(Dステージ)で命令デコード及びレジスタファイル2
からのオペランドの読み出し、第3ステージ(Eステー
ジ)で演算器3による演算の実行、第4ステージ(Mス
テージ)でアドレス生成回路4により生成されたアドレ
スによるデータキャッシュ5のアクセス、そして第5ス
テージ(Wステージ)で演算結果のレジスタファイル2
への書き込みを行う。演算器3による32ビットの演算
結果はEステージで符号拡張回路6により符号拡張され
る。64ビット演算の結果はこの符号拡張回路6をスル
ーする。先行する演算の演算結果を後続の演算で使用す
るために、Dステージにおいてバイパス回路7が設けら
れており、各ステージにある演算結果をダイレクトに転
送している。すなわち、Eステージにおける符号拡張回
路6の出力、Mステージにおけるセレクタ8の出力、W
ステージにおけるレジスタ9の出力がバイパスされてバ
イパス回路7に与えられている。これらの各ステージの
動作はDステージ制御回路10、Eステージ制御回路1
1、Mステージ制御回路12、Wステージ制御回路13
から出力される各ステージ制御信号により制御されてい
る。
【0005】このようなステージにおいて、Eステージ
が関わるクリティカルパスは、演算器3の入力のレジス
タ14,15からはじまり、演算器3から符号拡張回路
6を通りバイパス回路7を経てレジスタ14,15に戻
るパスとなる。したがって、32ビット演算もサポート
する64ビットのアーキテクチャでは、32ビットのア
ーキテクチャにはなかった符号拡張回路6がクリティカ
ルパスに入ることになる。
【0006】
【発明が解決しようとする課題】以上説明したように、
32ビットの演算と64ビットの演算を同一の演算器で
行う従来のマイクロプロセッサにあっては、32ビット
の演算結果を64ビットに拡張して保存するために、実
行ステージのパスに32ビットの演算結果を符号拡張す
るための符号拡張回路6が挿入されていた。このため、
64ビットの演算を行う場合にあっても、演算結果がこ
の符号拡張回路6をスルーしていた。これは、64ビッ
トの演算では本来必要のないことであり、64ビットの
演算においては演算結果が符号拡張回路6をスルーする
不要な時間を費やしていた。したがって、実行ステージ
の動作サイクルタイムが長くなり、他のステージのサイ
クルタイムも実行ステージのサイクルタイムに合わせて
長くなり、全体の処理の高速化が妨げられるといった不
具合を招いていた。
【0007】そこで、この発明は、上記に鑑みてなされ
たものであり、その目的とするところは、演算内容に応
じて演算結果を符号拡張回路を介さずに後続の演算に供
与し、各ステージのサイクルタイムを短縮し、全体の処
理の高速化を達成するマイクロプロセッサを提供するこ
とにある。
【0008】
【課題を解決するための手段】上記目的を達成するため
に、請求項1記載の発明は、複数のステージを経てパイ
プライン制御方式により命令を実行処理するマイクロプ
ロセッサにおいて、2n ビットの演算ならびに2(n+1)
ビットの演算を行う演算器と、前記演算器における2n
ビットの演算結果を2(n+1) ビットに符号拡張する符号
拡張回路と、前記演算器の演算結果又は前記符号拡張回
路により符号拡張された演算結果を受けて、前記演算器
の演算結果又は符号拡張された演算結果を選択して前記
演算器に与えるバイパス回路と、2n ビットの演算に続
いて2(n+1) ビットの演算が行われる場合は、2(n+1)
ビットの演算の命令フェッチステージとデコードステー
ジをストールし、前記符号拡張回路により2(n+1) ビッ
トに符号拡張された2n ビットの演算結果が前記バイパ
ス回路に与えられ、前記バイパス回路に与えられた演算
結果が2n ビットの演算に続いて行われる2(n+1) ビッ
トの演算で使用される場合には前記バイパス回路に与え
られた演算結果が前記バイパス回路により選択されて2
(n+1) ビットの演算の実行ステージ前に前記演算器に与
えられ、2nビットの演算に続いて2n ビットの演算が
行われる場合、あるいは2(n+1) ビットの演算に続いて
n 又2(n+1) ビットの演算が行われる場合には、先行
する演算の前記演算器で得られた演算結果が前記バイパ
ス回路に与えられ、前記バイパス回路に与えられた演算
結果が後続の演算で使用される場合には前記バイパス回
路に与えられた演算結果が前記バイパス回路により選択
されて後続の演算の実行ステージ前に前記演算器に与え
られるように前記バイパス回路を制御するステージ制御
回路を有することを特徴とする。
【0009】請求項2記載の発明は、2n ビットの演算
に続いて行われる2(n+1) ビットの演算に2n ビットの
演算結果が使用されるか否かを判別する判別手段を備
え、前記判別手段により2n ビットの演算結果が2
(n+1) ビットの演算に使用される旨が判別されると、前
記ステージ制御回路は2n ビットの演算に続いて2
(n+1) ビットの演算が行われる場合の前記制御を行うこ
とを特徴とする。
【0010】
【発明の実施の形態】以下、図面を用いてこの発明の一
実施形態を説明する。
【0011】図1は請求項1又は2記載の発明の一実施
形態に係るマイクロプロセッサの構成を示す図である。
【0012】図1において、この実施形態の特徴とする
ところは、図5に示す構成に比べて、図5に示すバイパ
ス回路7が符号拡張回路6の出力を受けるのに対して演
算器3の演算結果を符号拡張回路6を介さずに直接受け
るバイパス回路16を設け、図5に示すDステージ制御
回路10に代えて新たに設けたバイパス回路16を演算
内容に応じて制御するDステージ制御回路17を設けた
ことにあり、他は図5と同様である。
【0013】バイパス回路16は、演算器3の演算結
果、符号拡張回路6により符号拡張された演算器3の演
算結果又はデータキャッシュ5の出力の内セレクタ8に
より選択された内容、セレクタ8により選択されてレジ
スタ9に保持された内容を受け、いずれかを選択して演
算器3の入力側のレジスタ14,15の一方に与える。
【0014】Dステージ制御回路17は、図2に示すフ
ローにしたがってDステージを制御する。図2におい
て、命令フェッチステージでフェッチされた命令のデコ
ードが開始されて(ステップS1)、デコード中の命令
が64ビットの演算であるか否かが例えば命令のオペレ
ーションフィールドを参照することにより判別され(ス
テップS2)、64ビットの演算でない場合にはオペラ
ンドをリードする通常のDステージ動作が行われる(ス
テージS3)。64ビットの演算である場合には直前の
命令が32ビットの演算であるか否かが、例えば直前の
命令が32ビットの演算であるか否かを記憶するステー
タスレジスタ(図示せず)の内容を参照し、あるいはデ
コードされてレジスタ18に保持された命令のオペレー
ションフィールドを参照することにより判別される(ス
テージS4)、32ビットの演算でない場合はオペラン
ドをリードする通常のDステージ動作が行われる(ステ
ージS3)。一方、32ビットの演算である場合には、
図3のパイプラインの流れに示すように、64ビット演
算の命令フェッチ動作及びDステージ動作を1サイクル
ストールする(ステップS5)。なお、図3において、
図3に示すストールのサイクルの前半では前ステージで
フェッチされた命令のデコードが行われて命令の内容が
判別されるため、64ビット演算のDステージ前に命令
の内容が判別されてストールが行われる。
【0015】このように、64ビット演算の命令フェッ
チ動作及びDステージ動作を1サイクルストールした
後、32ビット演算のMステージならびに64ビット演
算のDステージにおいて、32ビット演算のEステージ
で符号拡張回路6により64ビットに符号拡張された3
2ビット演算の演算結果がセレクタ8を介してバイパス
回路16に与えられる。このように制御することで、3
2ビット演算に続いて64ビット演算を実行した場合
に、図3に示すように先行する32ビット演算の演算結
果が後続の64ビット演算で使用される場合でも、先行
する32ビット演算の64ビットに拡張された演算結果
がバイパス回路16に与えられているので、この演算結
果をDステージ制御回路17の制御の下でバイパス回路
16により選択してレジスタ14,15の一方に与える
ことができる。これにより、先行する32ビット演算に
続いて行われる64ビット演算で32ビット演算の演算
結果を使用する場合は、64ビット演算の実行ステージ
の前に32ビット演算の64ビットに拡張された演算結
果を演算器3に供給することができる。
【0016】一方、32ビットの演算に続いて32ビッ
トの演算が行われる場合、あるいは64ビットの演算に
続いて32ビットの演算又は64ビットの演算が行われ
る場合は、バイパス回路16に直接与えられる演算器3
の演算結果が選択できるようにバイパス回路16がDス
テージ制御回路17により制御され、図3に示すような
ストール動作は行われない。すなわち、連続する演算に
おいて先行する演算の演算結果を符号拡張することなく
後続の演算に使用できる場合には、演算器3から直接バ
イパス回路16に与えられた演算結果を使用するように
している。例えば、先行する32ビット演算の演算結果
を後続の32ビット演算が使用するといった演算動作が
連続して行われる場合は、符号拡張回路6により符号拡
張された演算結果を用いることなく演算を進めていった
としても、最終の演算結果がレジスタファイル2に書き
込まれる前に符号拡張回路6により符号拡張されるの
で、演算結果が64ビットとしてレジスタファイル2に
格納される。
【0017】このような構成をとることにより、Eステ
ージに関わるクリティカルパスは、オペランドがセット
されるレジスタ14,15からはじまり、演算器3から
バイパス回路16を経てレジスタ14,15に戻るパス
ということになる。したがって、前述した従来例に比べ
て符号拡張回路6がEステージにおけるクリティカルパ
スから外れるため、演算結果が符号拡張回路6をスルー
する時間分だけEステージの動作サイクルタイムが削減
できる。これにより、Eステージの動作サイクルタイム
を短縮することができ、他のステージの動作サイクルタ
イムも同様に短縮できる。なお、全体の処理の中で32
ビット演算に続いて64ビット演算を行うケースはさほ
ど多くはないので、全体の処理の中でストールが発生す
る頻度は少ない。したがって、図3に示すようにパイプ
ラインの流れにストール動作が挿入されて後続の64ビ
ット演算の終了が1サイクル遅れるデメリットに比べ
て、全体のサイクルタイムが短縮されることによって得
られるメリットの方が大きく、全体として処理が高速化
され、処理能力を向上させることができる。
【0018】なお、符号拡張回路6に要する時間はバイ
パス回路16に要する時間に比べて短いので、Eステー
ジのサイクルタイムが短縮されても短縮されたサイクル
タイムのEステージにおいて演算結果を符号拡張回路1
6により符号拡張することができなるということはな
い。
【0019】図4は請求項2記載の発明の一実施形態に
係るDステージ制御回路の動作のフローを示す図であ
る。
【0020】図4において、この実施形態の特徴とする
ところは、32ビット演算に続いて64ビット演算を行
う場合に、64ビット演算において先行する32ビット
の演算結果をオペランドとして使用するか否かを判別し
(ステップS6)、使用する場合にのみ命令フェッチス
テージ及びDステージをストールし、符号拡張回路6に
より64ビットに符号拡張された32ビット演算の演算
結果をバイパス回路16が選択するようにしたことにあ
る。上記判別は、32ビット演算命令において演算結果
が格納されるレジスタを示すフィールドと、64ビット
演算命令において演算で使用するレジスタを示すフィー
ルドを比較する比較器を判別手段として設けることによ
り容易に実現することができる。
【0021】このような実施形態にあっては、連続した
演算のデータ依存関係をチェックすることにより、スト
ールの回数を大幅に減らすことができ、全体としての処
理時間が短縮され、より高性能なマイクロプロセッサを
実現することができる。
【0022】なお、上記実施形態では、32ビットの演
算と64ビットの演算を一例として説明したが、これに
限らず同一の演算器により2n ビット(n≧1)の演算
ならびに2(n+1) ビットの演算を行う場合に、上記実施
形態と同様に適用して同様の効果を得ることができる。
【0023】
【発明の効果】以上説明したように、請求項1記載の発
明によれば、2n ビットの演算に続いて2(n+1) ビット
の演算を行う場合は、先行する演算の符号拡張された演
算結果を後続の演算に使用できるようにし、他の演算の
場合には演算器から直接与えられる演算結果を後続の演
算に使用できるようにしたので、実行ステージのクリテ
ィカルパスに含まれる構成を削減することができる。こ
れにより、実行ステージのサイクルタイムが短縮されて
全体のサイクルタイムが短縮され、全体の処理が高速化
され、処理能力を向上させることができる。
【0024】請求項2記載の発明によれば、先行する演
算の演算結果を後続の演算が使用する場合にのみ先行す
る演算の符号拡張された演算結果を後続の演算で使用で
きるようにしたので、ストールが発生する頻度を少なく
することができ、より一層処理能力を向上させることが
できる。
【図面の簡単な説明】
【図1】請求項1又は2記載の発明の一実施形態に係る
マイクロプロセッサの構成を示す図である。
【図2】図1に示すDステージ制御回路の制御フローを
示す図である。
【図3】図1に示すマイクロプロセッサにおける実行パ
イプラインの制御フローを示す図である。
【図4】請求項2記載の発明の一実施形態に係るDステ
ージ制御回路の制御フローを示す図である。
【図5】従来のマイクロプロセッサの構成を示す図であ
る。
【符号の説明】
1 命令キャッシュ 2 レジスタファイル 3 演算器 4 アドレス生成回路 5 データキャッシュ 6 符号拡張回路 7,16 バイパス回路 8 セレクタ 9,14,15,18 レジスタ 10,17 Dステージ制御回路 11 Eステージ制御回路 12 Mステージ制御回路 13 Wステージ制御回路

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数のステージを経てパイプライン制御
    方式により命令を実行処理するマイクロプロセッサにお
    いて、 2n ビットの演算ならびに2(n+1) ビットの演算を行う
    演算器と、 前記演算器における2n ビットの演算結果を2(n+1)
    ットに符号拡張する符号拡張回路と、 前記演算器の演算結果又は前記符号拡張回路により符号
    拡張された演算結果を受けて、前記演算器の演算結果又
    は符号拡張された演算結果を選択して前記演算器に与え
    るバイパス回路と、 2n ビットの演算に続いて2(n+1) ビットの演算が行わ
    れる場合は、2(n+1)ビットの演算の命令フェッチステ
    ージとデコードステージをストールし、前記符号拡張回
    路により2(n+1) ビットに符号拡張された2n ビットの
    演算結果が前記バイパス回路に与えられ、前記バイパス
    回路に与えられた演算結果が2n ビットの演算に続いて
    行われる2(n+1) ビットの演算で使用される場合には前
    記バイパス回路に与えられた演算結果が前記バイパス回
    路により選択されて2(n+1) ビットの演算の実行ステー
    ジ前に前記演算器に与えられ、2n ビットの演算に続い
    て2n ビットの演算が行われる場合、あるいは2(n+1)
    ビットの演算に続いて2n又2(n+1) ビットの演算が行
    われる場合には、先行する演算の前記演算器で得られた
    演算結果が前記バイパス回路に与えられ、前記バイパス
    回路に与えられた演算結果が後続の演算で使用される場
    合には前記バイパス回路に与えられた演算結果が前記バ
    イパス回路により選択されて後続の演算の実行ステージ
    前に前記演算器に与えられるように前記バイパス回路を
    制御するステージ制御回路とを有することを特徴とする
    マイクロプロセッサ。
  2. 【請求項2】 2n ビットの演算に続いて行われる2
    (n+1) ビットの演算に2n ビットの演算結果が使用され
    るか否かを判別する判別手段を備え、 前記判別手段により2n ビットの演算結果が2(n+1)
    ットの演算に使用される旨が判別されると、前記ステー
    ジ制御回路は2n ビットの演算に続いて2(n+1) ビット
    の演算が行われる場合の前記制御を行うことを特徴とす
    る請求項1記載のマイクロプロセッサ。
JP9122491A 1997-05-13 1997-05-13 マイクロプロセッサ Pending JPH10312280A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9122491A JPH10312280A (ja) 1997-05-13 1997-05-13 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9122491A JPH10312280A (ja) 1997-05-13 1997-05-13 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH10312280A true JPH10312280A (ja) 1998-11-24

Family

ID=14837167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9122491A Pending JPH10312280A (ja) 1997-05-13 1997-05-13 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH10312280A (ja)

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5764943A (en) Data path circuitry for processor having multiple instruction pipelines
US6823448B2 (en) Exception handling using an exception pipeline in a pipelined processor
JP2010532063A (ja) 条件命令を無条件命令および選択命令へと拡張する方法およびシステム
JPH03116233A (ja) データプロセッサの命令処理システム
JP2000222206A (ja) データ処理装置
JP2000330787A (ja) 命令ループを実行するコンピュータシステムおよび命令ループ実行方法
US5761467A (en) System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field
JP2009508180A (ja) マイクロプロセッサにおける効率的なサブプログラムリターン
US5815420A (en) Microprocessor arithmetic logic unit using multiple number representations
JP3578883B2 (ja) データ処理装置
US20070079076A1 (en) Data processing apparatus and data processing method for performing pipeline processing based on RISC architecture
JP2006517322A (ja) パイプライン化ディジタルプロセッサにおけるハザード検出および管理のための方法および装置
US6092184A (en) Parallel processing of pipelined instructions having register dependencies
US7237096B1 (en) Storing results of producer instructions to facilitate consumer instruction dependency tracking
JP3599499B2 (ja) 中央処理装置
JP3619343B2 (ja) データ処理装置と方法
JPH10312280A (ja) マイクロプロセッサ
US6976049B2 (en) Method and apparatus for implementing single/dual packed multi-way addition instructions having accumulation options
US6308262B1 (en) System and method for efficient processing of instructions using control unit to select operations
JP2503223B2 (ja) 先行制御方式
JP2004516572A (ja) スペキュレーティブ・レジスタの調整
JP2925842B2 (ja) パイプライン処理装置
JP2924735B2 (ja) パイプライン演算装置及びデコーダ装置
JP3558481B2 (ja) データ処理装置