JP3202108B2 - パイプライン処理を用いたプロセッサ - Google Patents

パイプライン処理を用いたプロセッサ

Info

Publication number
JP3202108B2
JP3202108B2 JP21885093A JP21885093A JP3202108B2 JP 3202108 B2 JP3202108 B2 JP 3202108B2 JP 21885093 A JP21885093 A JP 21885093A JP 21885093 A JP21885093 A JP 21885093A JP 3202108 B2 JP3202108 B2 JP 3202108B2
Authority
JP
Japan
Prior art keywords
register
stage
unit
data
effective address
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
JP21885093A
Other languages
English (en)
Other versions
JPH06161744A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP21885093A priority Critical patent/JP3202108B2/ja
Priority to US08/121,507 priority patent/US5465334A/en
Publication of JPH06161744A publication Critical patent/JPH06161744A/ja
Application granted granted Critical
Publication of JP3202108B2 publication Critical patent/JP3202108B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、パイプライン処理を用
いたプロセッサに関し、特に、高速演算処理を行う1チ
ッププロセッサにおいてレジスタアクセスを行う技術に
関する。プロセッサに対しては、より高性能で且つより
低価格であることが要求されている。まず、高性能化の
ための処理方式としてはパイプライン処理が知られてお
り、パイプライン処理により大部分の命令を1サイクル
で実行可能なプロセッサが商品化されている。また、低
価格化のためには、回路規模すなわちチップ面積を小さ
くすることが重要である。
【0002】しかしながら、高性能化のためにパイプラ
イン処理を採用すると、各パイプラインステージ毎に独
立にレジスタにアクセスを行うためのポートを必要と
し、そのためにレジスタの回路規模が大きくなってしま
うという問題がある。また、レジスタの回路規模が大き
くなると、チップ面積の点で不利になると共に、配線長
が長くなることに起因して配線上の信号伝播遅延が大き
くなってしまうという不都合もある。レジスタアクセス
の時間はチップの動作速度を決定するクリチカル・パス
の一つであるため、レジスタアクセス時間が長くなると
チップの性能が最大限に発揮できない可能性がある。
【0003】そこで、パイプライン処理の性能を低下さ
せることなく、レジスタのアクセスポート数を削減して
その回路規模を縮小し、ひいては高速化を行うことが要
求されている。
【0004】
【従来の技術】パイプライン処理で命令実行を行うプロ
セッサでは、実効アドレス計算を行うステージと演算処
理を行うステージの2つのステージを持つパイプライン
方式を採用しているものが多い。図11には従来形の一
例としてのパイプライン処理を用いたプロセッサの構成
が示される。
【0005】図示の構成は、実効アドレス計算ステー
ジ、オペランド読み出しステージ、演算ステージおよび
オペランド書き込みステージを有するパイプライン処理
により命令実行を行うプロセッサの構成を示しており、
レジスタ部1、実効アドレス計算部2および演算部3を
備えている。レジスタ部1は、オペランドデータを一時
保持するためのもので、実効アドレス計算ステージにお
いて実効アドレス計算部2へデータを供給し、演算ステ
ージにおいて演算部3へデータを供給する。実効アドレ
ス計算部2は、実効アドレス計算ステージにおいてレジ
スタ部1からの読み出しデータに命令コード中から抽出
したディスプレイスメントを加算し、実効アドレスを計
算する。演算部3は、オペランドに対する演算を行うた
めのもので、演算ステージにおいてレジスタ部1から読
み出したデータに基づき演算を行い、その演算結果をレ
ジスタ部1に出力する。
【0006】この種のパイプライン処理を採用している
プロセッサでは、図11にも示すように、実効アドレス
計算用のレジスタアクセスと演算処理用のレジスタアク
セスをそれぞれ行わなければならず、それに応じてレジ
スタへのアクセスポートを多く設ける必要がある。ある
いは、レジスタへのアクセスポートを多く設けることが
回路設計上できない場合には、各ステージ毎に専用のレ
ジスタ回路を設ける必要がある。つまり、同じ内容を持
つレジスタ回路を複数個(ステージの数だけ)備えるこ
とにより、等価的にアクセスポートの数を増やしたこと
になる。
【0007】
【発明が解決しようとする課題】従来のパイプライン処
理方式では、実効アドレス指定でレジスタ直接を指定し
た場合には、実効アドレス計算ステージではレジスタ読
み出しを行わなくてもよいが、演算ステージではレジス
タ読み出しを行う必要がある。また、実効アドレス指定
でメモリ参照を指定した場合には、演算ステージでレジ
スタ読み出しを行わなくてもよいが、実効アドレス計算
ステージではレジスタ読み出しを行う必要がある。この
ため、同じ命令の中では、実効アドレス計算ステージま
たは演算ステージのどちらかでレジスタ読み出しを行え
ばよいので、問題は生じない。
【0008】しかしながら、パイプライン処理で行って
いる場合には、実効アドレス計算ステージで処理されて
いる命令と演算ステージで処理されている命令は、通
常、異なる命令である。このため、同時にレジスタ読み
出しを行う可能性がある。このような場合、従来の技術
では、各ステージ毎にレジスタ読み出しポートを設けた
り、あるいは、読み出しポートを一つにしていずれかの
ステージをウエイト状態とすることにより各ステージ毎
のレジスタ読み出しが互いに干渉するのを回避してい
た。
【0009】しかし前者(各パイプラインステージ毎に
レジスタ読み出しポートを設ける方式)の場合、レジス
タの回路規模ひいてはチップ面積が大きくなり、また配
線長が長くなることに起因して信号伝播遅延も大きくな
ってしまうという不都合があり、好ましくない。一方、
後者(読み出しポートを一つにする方式)の場合、ウエ
イト状態が入ることに起因してパイプライン処理の性能
が低下し、そのためにパイプライン処理の有効性が低下
して好ましくない。
【0010】本発明は、かかる従来技術における課題に
鑑み創作されたもので、パイプライン処理を行う際にそ
の性能を低下させることなく、レジスタ部のアクセスポ
ート数を削減してその回路規模を縮小し、ひいては高速
動作に寄与することができるプロセッサを提供すること
を目的とする。
【0011】
【課題を解決するための手段】上記課題を解決するた
め、本発明では、実効アドレス計算ステージにおいてレ
ジスタ読み出しされた結果を演算ステージで必要になる
タイミングまで保持しておくための手段を設け、この保
持された結果を演算ステージにおいて演算用データ(オ
ペランド)として供給するようにしている。
【0012】図1には本発明に係るパイプライン処理を
用いたプロセッサの原理構成が示される。図示の構成
は、少なくとも実効アドレス計算ステージと演算ステー
ジを有するパイプライン処理を用いて命令実行を行うプ
ロセッサの構成を示しており、該プロセッサは、レジス
タ部11、実効アドレス計算部12、演算部13および
パイプラインラッチ部14を備えている。
【0013】レジスタ部11は、オペランドデータを一
時保持するためのブロックであり、実効アドレス計算ス
テージにおいて実効アドレス計算部12へデータを供給
し、演算ステージにおいて演算部13へデータを供給す
る機能を有している。実効アドレス計算部12は、実効
アドレス計算ステージにおいて、レジスタ部11から読
み出したデータと命令コード中から抽出したディスプレ
イスメントを加算し、実効アドレスを計算する機能を有
している。
【0014】演算部13は、オペランドに対する演算を
行うためのブロックであり、演算ステージにおいてレジ
スタ部11から読み出したデータとパイプラインラッチ
部14における対応するラッチからのデータを演算用の
データとして取り込み、この演算結果をレジスタ部11
に出力する機能を有している。パイプラインラッチ部1
4は、本発明の特徴をなすブロックであり、実効アドレ
ス計算ステージと演算ステージの間の各パイプラインス
テージ(図1にはオペランド読み出しステージのみが例
示されている)毎にレジスタ部11から読み出したデー
タをそれぞれ保持するラッチを有し、実効アドレス計算
ステージにおいてレジスタ部11から読み出された結果
を前記演算ステージで必要になるタイミングまで保持
し、この保持された結果を前記演算部にオペランドデー
タとして供給する機能を有している。
【0015】
【作用】図1に示す構成によれば、実効アドレス計算ス
テージで読み出されたレジスタ部11からのデータ(レ
ジスタ値)がパイプラインラッチ部14の対応するラッ
チに取り込まれ、命令実行が次のパイプラインステージ
に進む毎に該レジスタ値が当該パイプラインステージに
対応するラッチへ転送される。そして、実効アドレス指
定がレジスタ直接指定を指示している場合には、命令実
行が演算ステージに進んだ時に該演算ステージに対応す
るラッチから前記レジスタ値が演算用のデータとして取
り出される(つまり演算部13に供給される)。
【0016】このように本発明のプロセッサによれば、
実効アドレス計算ステージで読み出したレジスタ値をパ
イプラインラッチ部14において演算ステージで必要に
なるタイミングまで保持しておき、この保持されたレジ
スタ値をオペランドデータとして演算部13に供給する
ようにしているので、パイプライン処理の性能を低下さ
せることなく、レジスタ部のアクセスポート数(つまり
読み出しポートの数)を削減することができる。これ
は、レジスタ部の回路規模の縮小化に寄与し、併せて高
速化にも寄与する。
【0017】なお、本発明の他の構成上の特徴および作
用の詳細については、添付図面を参照しつつ以下に記述
される実施例を用いて説明する。
【0018】
【実施例】図2には本発明の一実施例としてのパイプラ
イン処理を用いたプロセッサの全体構成が示される。図
中、100は演算実行部を示し、外部の主記憶へのアク
セスのためのアドレス計算と命令で指定された演算を行
うためのブロックである。演算実行部100は、前述し
たレジスタ部11、実効アドレス計算部12、演算部
(ALU)13およびパイプラインラッチ部14に加え
て、更にプログラムカウンタ部22、バイパス部23お
よびデータ入出力部24を有している。
【0019】また、200は命令制御部を示し、命令キ
ャッシュ28(後述)を経由して外部の主記憶から命令
を受け取り、その命令をデコードして演算実行部100
の制御を行うためのブロックである。命令制御部200
は、ディスプレイスメント/イミディエート値生成部2
1、命令レジスタ25、命令デコーダ26およびレジス
タ番号選択部27を有している。
【0020】また、28および29はそれぞれ命令キャ
ッシュおよびオペランドキャッシュを示し、それぞれ、
処理の高速化のために外部の主記憶のデータを一時的に
保持するためのブロックである。演算実行部100にお
いて、レジスタ部11は、命令で指定されるレジスタを
持つブロックであり、前述したように実効アドレス計算
用および演算用のデータを一時保持するためのものであ
る。実効アドレス計算部12は、主記憶アクセスのため
の実効アドレスを計算するためのブロックである。ここ
で、もし命令の種類が分岐命令の場合には分岐先アドレ
スがプログラムカウンタ部22へ転送される。また、実
効アドレスを演算データとして使用する命令の場合に
は、該実効アドレスがパイプラインラッチ部14内のオ
ペランド読み出しステージラッチ(図3のラッチ34)
にレジスタ値の代わりに転送される。演算部13は、レ
ジスタ部11およびパイプラインラッチ部14とデータ
入出力部24からデータを受け取り、命令で指定された
演算を行い、その結果をデータ入出力部24とレジスタ
部11およびパイプラインラッチ部14へ供給する機能
を有している。
【0021】また、パイプラインラッチ部14は、実効
アドレス計算ステージにおいてレジスタ部11から読み
出されたレジスタ値またはディスプレイスメント/イミ
ディエート値生成部21からのイミディエート値を取り
込み、この取り込んだデータを演算ステージにおいて演
算部13に供給する。もし、実効アドレス計算ステージ
から演算ステージに遷移する間に、保持しているレジス
タ値に対応するレジスタへの書き込みが発生した場合に
は、上記書き込みデータがレジスタ値として取り込ま
れ、演算ステージにおいて該書き込みデータが演算部1
3に供給される。また、実効アドレスを演算データとし
て使用する命令(例えば実効アドレスそれ自体をレジス
タまたはメモリへ転送する命令、実効アドレスを基に複
数のメモリをアクセスする命令等)を実行する場合に
は、実効アドレスがパイプラインラッチ部14内のオペ
ランド読み出しステージラッチにレジスタ値の代わりに
転送され、演算ステージにおいて上記実効アドレスが演
算部13に供給される。
【0022】また、プログラムカウンタ部22は、実行
中の命令の先頭アドレスをカウントアップするためのブ
ロックであり、各パイプラインステージで実行されてい
る命令の先頭アドレスを保持しておくためのものであ
る。バイパス部23は、同じレジスタに対して読み出し
と書き込みが重なった場合に、演算結果のデータをレジ
スタ読み出しデータの代わりに供給するためのブロック
である。データ入出力部24は、オペランドキャッシュ
29を経由して外部の主記憶との間で、演算で使用する
データの送受信を行うためのブロックである。
【0023】一方、命令制御部200において、命令レ
ジスタ25は、命令キャッシュ28を経由して主記憶か
ら命令コードを受け取り、その命令コードをディスプレ
イスメント/イミディエート値生成部21、命令デコー
ダ26およびレジスタ番号選択部27に供給する。ディ
スプレイスメント/イミディエート値生成部21は、入
力された命令コードからディスプレイスメントおよびイ
ミディエート値を抽出し生成するためのブロックであ
る。この生成されたディスプレイスメントは、実効アド
レス計算部12に供給され、実効アドレス計算に使用さ
れる。一方、生成されたイミディエート値は、パイプラ
インラッチ部14を経由して演算部13に供給され、演
算用のデータとして使用される。命令デコーダ26は、
入力された命令コードをデコードして、演算実行部10
0の制御を行うための各種制御信号CS(クロックφ
A,φB等を含む)を生成する。この生成された制御信
号CSは、後述するように、レジスタ部11、演算部1
3、パイプラインラッチ部14およびバイパス部23に
供給される。レジスタ番号選択部27は、入力された命
令コードからレジスタ番号指定情報を生成し、レジスタ
部11に対してアクセスするレジスタ番号を指定する。
【0024】図2の構成において、各回路ユニットは種
々のバスを介して互いに接続されている。図中、ICD
Bは命令キャッシュ28から命令レジスタ25へ命令を
供給するための命令キャッシュデータバス、ICABは
命令を読み出すためのアドレスを命令キャッシュ28へ
供給するための命令キャッシュアドレスバス、OCDB
はオペランドキャッシュ29と演算部13およびデータ
入出力部24との間でデータの授受を行うためのオペラ
ンドキャッシュデータバス、OCABはアクセスするた
めのアドレスをオペランドキャッシュ29へ供給するた
めのオペランドキャッシュアドレスバス、DSPBは実
効アドレス計算ステージにおいてディスプレイスメント
/イミディエート値生成部21から実効アドレス計算部
12およびパイプラインラッチ部14へそれぞれディス
プレイスメントおよびイミディエート値を供給するため
のバス、ASBは実効アドレス計算ステージにおいてレ
ジスタ部11およびバイパス部23から実効アドレス計
算部12およびパイプラインラッチ部14へレジスタ読
み出しデータを供給するためのバス、SDBは演算ステ
ージにおいてレジスタ部11およびバイパス部23から
演算部13へレジスタ読み出しデータを供給するための
バス、SSBは演算ステージにおいてパイプラインラッ
チ部14から演算部13へレジスタ読み出しデータおよ
びイミディエート値を供給するためのバス、そして、R
DBはオペランド書き込みステージにおいて演算部13
からレジスタ部11およびバイパス部23へレジスタ書
き込みデータを供給するためのバスを示す。また、DB
は本プロセッサと外部装置との間でデータの授受を行う
ためのデータバス、ABは命令を読み出すためのアドレ
スを外部の主記憶へ供給するためのアドレスバスを示
す。
【0025】図3にはパイプラインラッチ部14の構成
が示される。図中、31はレジスタ部(11)またはデ
ィスプレイスメント/イミディエート値生成部(21)
からのデータを選択入力する入力セレクタを示し、本実
施例では、命令の実効アドレス指定がレジスタ直接を指
示している場合にはレジスタ部からのデータを選択し、
命令の実効アドレス指定がイミディエート値を指示して
いる場合にはディスプレイスメント/イミディエート値
生成部からのイミディエート値を選択する。この選択制
御は、前述した命令デコーダ26からの制御信号に基づ
いて行われる。32は実効アドレス計算ステージで実行
中の命令に対応する実効アドレス指定で指定されたレジ
スタ値またはイミディエート値を保持するための実効ア
ドレス計算ステージラッチを示す。
【0026】また、33は第1の転送手段を示し、命令
実行のパイプライン処理が実効アドレス計算ステージか
らオペランド読み出しステージに遷移した時に、実効ア
ドレス計算ステージラッチ32から次のパイプラインス
テージのラッチ(オペランド読み出しステージラッチ3
4)への転送処理を制御する機能を有している。パイプ
ライン処理で同時に処理されている他の命令によるレジ
スタへの書き込みが、実効アドレス計算ステージラッチ
32で保持しているレジスタ値に対応するレジスタへの
書き込みであった場合には、その書き込みデータは、実
効アドレス計算ステージラッチ32のデータの代わりに
オペランド読み出しステージラッチ34へ転送される。
また、実効アドレスそれ自体をレジスタまたはメモリへ
転送する命令、あるいは実効アドレスを基に複数のメモ
リをアクセスする命令を実行する場合には、該実効アド
レスがオペランド読み出しステージラッチ34へ転送さ
れる。第1の転送手段33に対する各種制御は、前述し
た命令デコーダ26からの制御信号に基づいて行われ
る。オペランド読み出しステージラッチ34は、オペラ
ンド読み出しステージで実行中の命令に対応する実効ア
ドレス指定で指定されたレジスタ値またはイミディエー
ト値を保持するためのものである。
【0027】また、35は第2の転送手段を示し、命令
実行のパイプライン処理がオペランド読み出しステージ
から演算ステージに遷移した時に、オペランド読み出し
ステージラッチ34から次のパイプラインステージのラ
ッチ(演算ステージラッチ36)への転送処理を制御す
る機能を有している。第2の転送手段35に対する制御
は、前述した命令デコーダ26からの制御信号に基づい
て行われる。演算ステージラッチ36は、演算ステージ
で実行中の命令に対応する実効アドレス指定で指定され
たレジスタ値またはイミディエート値を保持するための
ものである。また、37は演算ステージラッチ36から
出力されたデータを演算部(13)へ供給するための出
力手段を示す。
【0028】なお、前述したバイパス部23(図2参
照)は、レジスタ部11への書き込みとレジスタ部11
からの読み出しが同時である場合またはオーバーラップ
するパイプライン構成の場合に必要なハードウエアであ
り、レジスタ部11への書き込み後にレジスタ部11か
らの読み出しを行うようなパイプライン構成の場合には
必要でない。ただしこの場合には、パイプラインラッチ
部14の第2の転送手段35に、第1の転送手段33と
同様にレジスタ部11への書き込みデータをレジスタ値
の代わりに転送する機能を備える必要がある。
【0029】図4にはレジスタ部11のデータ部の回路
構成が示される。図示のデータ部は、32ビット分のレ
ジスタR##/00〜R##/31を16個(##=0
0〜15)備えた回路構成と、命令デコーダ26から供
給される各種制御信号(後述)に基づいて各レジスタを
選択するためのナンドゲートG01/00〜G01/1
5,G11/00〜G11/15,G21/00〜G2
1/15および入力反転型インバータG02/00〜G
02/15,G12/00〜G12/15,G22/0
0〜G22/15とを有している。
【0030】R1SEL00〜R1SEL15は、それ
ぞれ、実効アドレス計算ステージにおいて実効アドレス
計算を行うためのレジスタ読み出しを行うレジスタ番号
を指定する制御信号を示す。例えば制御信号R1SEL
00がアサートされた場合には、ナンドゲートG11/
00およびインバータG12/00を通して1個の32
ビット分のレジスタR00/00〜R00/31が選択
され、該レジスタのデータが読み出され、読み出しデー
タ線R1/00〜R1/31にそれぞれ出力される。
【0031】また、R2SEL00〜R2SEL15
は、それぞれ、演算ステージにおいて演算処理を行うた
めのレジスタ読み出しを行うレジスタ番号を指定する制
御信号を示す。例えば制御信号R2SEL00がアサー
トされた場合には、ナンドゲートG21/00およびイ
ンバータG22/00を通して1個の32ビット分のレ
ジスタR00/00〜R00/31が選択され、該レジ
スタのデータが読み出され、読み出しデータ線R2/0
0〜R2/31にそれぞれ出力される。
【0032】また、WSEL00〜WSEL15は、オ
ペランド書き込みステージにおいて演算処理結果をレジ
スタに書き込むためのレジスタ番号を指定する制御信号
を示す。例えば制御信号WSEL00がアサートされた
場合には、ナンドゲートG01/00およびインバータ
G02/00を通して1個の32ビット分のレジスタR
00/00〜R00/31が選択され、書き込みデータ
線WP/00〜WP/31およびWN/00〜WN/3
1から当該レジスタにデータの書き込みが行われる。
【0033】図5にはレジスタ部11の入出力部および
バイパス部23の回路構成が示される。レジスタ部11
の入出力部は、全体として、命令デコーダ26から供給
される各種制御信号(後述)に基づいて、上記データ部
から読み出しデータ線R1/00〜R1/31およびR
2/00〜R2/31を介して読み出されたデータをバ
スAS00〜AS31およびSD00〜SD31へ出力
すると共に、バスRD00〜RD31からの書き込みデ
ータを書き込みデータ線WP/00〜WP/31および
WN/00〜WN/31へ取り込む機能を有している。
一方、バイパス部23は全体として、命令デコーダ26
から供給される各種制御信号(後述)に基づいて、レジ
スタ部11への書き込みとレジスタ部11からの読み出
しの対象となるレジスタの指定が同じ場合に、バスRD
00〜RD31から当該レジスタへの書き込みデータを
直接読み出しデータとしてバスAS00〜AS31およ
びSD00〜SD31へ出力する機能を有している。
【0034】具体的には、図示の入出力部は、レジスタ
読み出しデータの出力制御を行うためにナンドゲートG
05,G07、入力反転型インバータG06,G08、
2入力制御型インバータN1/00〜N1/31,N2
/00〜N2/31、およびインバータG1/00〜G
1/31,G2/00〜G2/31を有し、レジスタ書
き込みデータの入力制御を行うためにナンドゲートG0
9、入力反転型インバータG10,G4/00〜G4/
31,G5/00〜G5/31、インバータG3/00
〜G3/31,G6/00〜G6/31、およびNチャ
ネルトランジスタQ3/00〜Q3/31,Q4/00
〜Q4/31を有し、レジスタ読み出しデータの有効/
無効を制御するためにインバータG11、およびPチャ
ネルトランジスタQ1/00〜Q1/31,Q2/00
〜Q2/31を有している。
【0035】一方、図示のバイパス部は、書き込みデー
タを読み出しデータとしてバイパス制御するためにナン
ドゲートG01,G03、入力反転型インバータG0
2,G04、および2入力制御型インバータN3/00
〜N3/31,N4/00〜N4/31を有している。
なお、図6に2入力制御型インバータN#/00〜N#
/31(#=1〜4)の回路構成が示される。図示の回
路は、電源ラインVccおよびVssの間に直列に接続され
たPチャネルトランジスタQP2,QP1およびNチャ
ネルトランジスタQN1,QN2から構成されており、
PチャネルトランジスタQP2とNチャネルトランジス
タQN2がそれぞれの制御入力に応答してオンオフする
ことにより、データ入力がCMOSインバータ(QP
1,QN1)を介して出力されるようになっている。
【0036】図5において、RGASOENは、実効ア
ドレス計算ステージにおいて実効アドレス計算を行うた
めのレジスタ読み出しデータをバスAS00〜AS31
に出力することを制御する制御信号を示す。この制御信
号RGASOENがアサートされた場合には、ナンドゲ
ートG05およびインバータG06を通して2入力制御
型インバータN1/00〜N1/31がイネーブル状態
となり、読み出しデータ線R1/00〜R1/31上の
データがバスAS00〜AS31にそれぞれ出力され
る。
【0037】また、RGSDOENは、演算ステージに
おいて演算処理を行うためのレジスタ読み出しデータを
バスSD00〜SD31に出力することを制御する制御
信号を示す。この制御信号RGSDOENがアサートさ
れた場合には、ナンドゲートG07およびインバータG
08を通して2入力制御型インバータN2/00〜N2
/31がイネーブル状態となり、読み出しデータ線R2
/00〜R2/31上のデータがバスSD00〜SD3
1にそれぞれ出力される。
【0038】また、RGWRENは、オペランド書き込
みステージにおいて演算処理結果をレジスタに書き込む
ためにバスRD00〜RD31上の書き込みデータを書
き込みデータ線WP/00〜WP/31およびWN/0
0〜WN/31に出力することを制御する制御信号を示
す。この制御信号RGWRENがアサートされた場合に
は、ナンドゲートG09およびインバータG10を通し
てNチャネルトランジスタQ3/00〜Q3/31およ
びQ4/00〜Q4/31がオンとなり、バスRD00
〜RD31上のデータが書き込みデータ線WP/00〜
WP/31およびWN/00〜WN/31に出力され
る。
【0039】また、RDASOENは、実効アドレス計
算ステージにおいて実効アドレス計算を行うためのデー
タをバスRD00〜RD31からバイパスさせてバスA
S00〜AS31に供給することを制御する制御信号を
示す。この制御信号RDASOENがアサートされた場
合には、ナンドゲートG01およびインバータG02を
通して2入力制御型インバータN3/00〜N3/31
がイネーブル状態となり、バスRD00〜RD31上の
データがバスAS00〜AS31にそれぞれ出力され
る。
【0040】また、RDSDOENは、演算ステージに
おいて演算処理を行うためのデータをバスRD00〜R
D31からバイパスさせてバスSD00〜SD31に供
給することを制御する制御信号を示す。この制御信号R
DSDOENがアサートされた場合には、ナンドゲート
G03およびインバータG04を通して2入力制御型イ
ンバータN4/00〜N4/31がイネーブル状態とな
り、バスRD00〜RD31上のデータがバスSD00
〜SD31にそれぞれ出力される。
【0041】図7には演算部13の回路構成が示され
る。図中、SSLT/00〜SSLT/31は、演算ス
テージにおいてバスSS00〜SS31上のデータをそ
れぞれ受け取り、ALU部に演算用のデータとしてそれ
ぞれ供給するラッチを示す。命令デコーダ26から供給
される制御信号ALUSSINがアサートされた場合に
は、ナンドゲートG1およびインバータG2を通して各
ラッチSSLT/00〜SSLT/31がイネーブル状
態となり、バスSS00〜SS31上のデータがそれぞ
れALU部に入力される。
【0042】また、SDLT/00〜SDLT/31
は、演算ステージにおいてバスSD00〜SD31上の
データをそれぞれ受け取り、ALU部に演算用のデータ
としてそれぞれ供給するラッチを示す。同様に命令デコ
ーダ26から供給される制御信号ALUSDINがアサ
ートされた場合には、ナンドゲートG3およびインバー
タG4を通して各ラッチSDLT/00〜SDLT/3
1がイネーブル状態となり、バスSD00〜SD31上
のデータがそれぞれALU部に入力される。
【0043】また、N00〜N31は、オペランド書き
込みステージにおいてALU部から演算結果をそれぞれ
受け取り、バスRD00〜RD31に出力する2入力制
御型インバータを示す。同様に命令デコーダ26から供
給される制御信号ALUOUTENがアサートされた場
合には、ナンドゲートG5およびインバータG6を通し
て各インバータN00〜N31がイネーブル状態とな
り、バスRD00〜RD31にデータが出力される。な
お、2入力制御型インバータN00〜N31の回路構成
は図6に示されるものと同じである。図8には命令デコ
ーダ26の実効アドレス指示部の回路構成が示される。
【0044】図示の回路は全体として、7ビットの命令
コード(オペコード)IR6〜IR0と、デコーダ内部
で生成された命令デコード有効を指示する制御信号ID
CENと、同じくデコーダ内部で生成された実効アドレ
ス指定有効を指示する制御信号EAFENとに応答し
て、レジスタ部のデータをパイプラインラッチ部14ま
たは実効アドレス計算部12のいずれに供給するかを指
示する制御信号(パイプラインラッチ有効を指示する制
御信号PLLTENおよび実効アドレス計算有効を指示
する制御信号EACLEN)を出力する。
【0045】具体的には、図示の実効アドレス指示部
は、命令コードIR6およびIR5に応答する入力反転
型アンドゲートLG1と、命令コードIR4,IR1お
よびIR0に応答する入力反転型アンドゲートLG2
と、該アンドゲートLG2の出力と命令コードIR3お
よびIR2に応答するアンドゲートLG3と、該アンド
ゲートLG3の出力および命令コードIR4に応答する
オアゲートLG4と、該オアゲートLG4の出力および
アンドゲートLG1の出力に応答するナンドゲートLG
5と、該ナンドゲートLG5の出力に応答する入力反転
型インバータLG6と、該インバータLG6の出力と制
御信号IDCENおよびEAFENに応答するナンドゲ
ートLG7と、ナンドゲートLG5の出力と制御信号I
DCENおよびEAFENに応答するナンドゲートLG
8と、ナンドゲートLG7の出力に応答して制御信号P
LLTENを生成する入力反転型インバータLG9と、
ナンドゲートLG8の出力に応答して制御信号EACL
ENを生成する入力反転型インバータLG10とを有し
ている。
【0046】参考として図9には図8の回路の動作形態
の一例が示される。図10には本実施例のプロセッサに
より行われるパイプライン処理の一例が時系列的に示さ
れる。図中、〜は処理されるべき命令、DCは命令
デコードステージで命令実行が行われている状態、AC
は実効アドレス計算ステージで命令実行が行われている
状態、OFはオペランド読み出しステージで命令実行が
行われている状態、EXは演算ステージで命令実行が行
われている状態、そして、OWはオペランド書き込みス
テージで命令実行が行われている状態を示す。
【0047】また、t1,t2,………は命令デコーダ
26から供給されるクロックφA,φBによって規定さ
れるタイムスロット(サイクル)を示し、このサイクル
に同期して本実施例のパイプライン処理が行われる。例
えば第1サイクルt1では、の命令は命令デコードス
テージ(DC)で処理されていることになる。また、各
バスASB,SSB,SDBおよびRDBに関しては、
どの命令が各バスを使用しているかを示している。例え
ば第4サイクルt4では、バスSDBはの命令が使用
していることになる。
【0048】以上説明したように本実施例の構成によれ
ば、実効アドレス計算ステージにおいて演算ステージの
ためのレジスタ読み出しを行い、該レジスタ読み出しさ
れたデータを命令実行が進む毎に実効アドレス計算ステ
ージラッチ32からオペランド読み出しステージラッチ
34を介して演算ステージラッチ36へ転送し、命令実
行が演算ステージに進んだ時に演算ステージラッチ36
から当該レジスタ値を演算用のデータとして取り出すよ
うにしている。
【0049】つまり、実効アドレス計算ステージで読み
出したレジスタ値をパイプラインラッチ部14において
演算ステージで必要になるタイミングまで保持してお
き、この保持されたレジスタ値をオペランドデータとし
て演算部13に供給するようにしている。従って、パイ
プライン処理の性能を低下させることなく、レジスタ部
11の読み出しポートの数を従来形(図11参照)に比
して削減し、レジスタ部の回路規模を縮小することがで
きる。また、レジスタ部11の回路規模が小さくなれ
ば、従来形に見られたような配線長に起因する不都合、
つまり信号伝播遅延が大きくなって高速化が損なわれる
といった問題、を解消することもできる。
【0050】
【発明の効果】以上説明したように本発明によれば、パ
イプライン処理の性能を低下させることなく、レジスタ
のアクセスポート数を削減することができる。これは、
レジスタ部の回路規模ひいてはチップ面積の縮小化に寄
与し、併せてパイプライン処理の性能向上に大いに寄与
する。
【図面の簡単な説明】
【図1】本発明に係るパイプライン処理を用いたプロセ
ッサの原理構成図である。
【図2】本発明の一実施例としてのパイプライン処理を
用いたプロセッサの全体構成を示すブロック図である。
【図3】図2におけるパイプラインラッチ部の構成を示
すブロック図である。
【図4】図2におけるレジスタ部のデータ部の一構成例
を示す回路図である。
【図5】図2におけるレジスタ部の入出力部およびバイ
パス部の一構成例を示す回路図である。
【図6】図5における2入力制御型インバータの構成を
示す回路図である。
【図7】図2における演算部(ALU)の一構成例を示
す回路図である。
【図8】図2における命令デコーダの実効アドレス指示
部の一構成例を示す回路図である。
【図9】図8の回路の動作説明図である。
【図10】図2のプロセッサによるパイプライン処理の
一例を示す動作タイミング図である。
【図11】従来形の一例としてのパイプライン処理を用
いたプロセッサの構成を示す図である。
【符号の説明】
11…レジスタ部 12…実効アドレス計算部 13…演算部 14…パイプラインラッチ部 31…入力セレクタ 32…実効アドレス計算ステージラッチ 33…第1の転送手段 34…オペランド読み出しステージラッチ 35…第2の転送手段 36…演算ステージラッチ 37…出力手段
フロントページの続き (56)参考文献 特開 昭64−53235(JP,A) 特開 昭64−88845(JP,A) 特開 平1−288924(JP,A) 特開 昭59−177655(JP,A) 特開 昭50−38433(JP,A) 特開 平5−143328(JP,A) 特開 平5−165639(JP,A) 特開 平5−313854(JP,A) 米国特許5465334(US,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 少なくとも実効アドレス計算ステージと
    演算ステージを有するパイプライン処理を用いて命令実
    行を行うプロセッサであって、オペランドデータを一時
    保持するためのレジスタ部(11)と、前記実効アドレ
    ス計算ステージと演算ステージの間の各パイプラインス
    テージ毎に前記レジスタ部から読み出したデータをそれ
    ぞれ保持するラッチを有するパイプラインラッチ部(1
    4)と、前記実効アドレス計算ステージにおいて前記レ
    ジスタ部から読み出したデータと命令コード中から抽出
    したディスプレイスメントを加算して実効アドレスを計
    算する実効アドレス計算部(12)と、前記演算ステー
    ジにおいて前記レジスタ部から読み出したデータと前記
    パイプラインラッチ部における対応するラッチからのデ
    ータを演算用のデータとして取り込み、この演算結果を
    該レジスタ部に出力する演算部(13)とを具備し、前
    記パイプラインラッチ部は、前記実効アドレス計算ステ
    ージにおいて前記レジスタ部から読み出された結果を前
    記演算ステージで必要になるタイミングまで保持し、こ
    の保持された結果を前記演算部にオペランドデータとし
    て供給することを特徴とするパイプライン処理を用いた
    プロセッサ。
  2. 【請求項2】 前記パイプラインラッチ部(14)は、
    前記実効アドレス計算ステージで前記レジスタ部から読
    み出されたレジスタ値を取り込む手段(31)と、命令
    実行が次のパイプラインステージに進む毎に該レジスタ
    値を当該パイプラインステージに対応するラッチへ転送
    する転送手段(33,35)と、実効アドレス指定がレ
    ジスタ直接指定を指示している場合には命令実行が前記
    演算ステージに進んだ時に該演算ステージに対応するラ
    ッチから前記レジスタ値をオペランドデータとして出力
    する手段(37)と、を具備することを特徴とする請求
    項1に記載のプロセッサ。
  3. 【請求項3】 前記実効アドレス計算ステージと演算ス
    テージの間のパイプラインステージとしてオペランド読
    み出しステージを有する場合に、前記転送手段は、命令
    実行によりレジスタ書き込みが行われたレジスタに対応
    するレジスタ値を前記実効アドレス計算ステージに対応
    するラッチ(32)が保持している場合には、該ラッチ
    のデータの代わりに該レジスタ書き込みのデータを前記
    オペランド読み出しステージに対応するラッチ(34)
    へ転送する第1の転送手段(33)を有することを特徴
    とする請求項2に記載のプロセッサ。
  4. 【請求項4】 前記第1の転送手段は、実効アドレス計
    算の結果をレジスタまたはメモリへ転送する命令の場合
    には、前記レジスタ値の代わりに該実効アドレス計算の
    結果を前記オペランド読み出しステージに対応するラッ
    チへ転送することを特徴とする請求項3に記載のプロセ
    ッサ。
  5. 【請求項5】 前記実効アドレス計算ステージと演算ス
    テージの間のパイプラインステージとしてオペランド読
    み出しステージを有する場合に、前記転送手段は、命令
    実行によりレジスタ書き込みが行われたレジスタに対応
    するレジスタ値を前記オペランド読み出しステージに対
    応するラッチ(34)が保持している場合には、該ラッ
    チのデータの代わりに該レジスタ書き込みのデータを前
    記演算ステージに対応するラッチ(36)へ転送する第
    2の転送手段(35)を有することを特徴とする請求項
    2に記載のプロセッサ。
  6. 【請求項6】 前記パイプラインラッチ部における前記
    実効アドレス計算ステージに対応するラッチ(32)
    は、命令実行によりレジスタ書き込みが行われたレジス
    タに対応するレジスタ値を取り込む場合には、前記レジ
    スタ値の代わりに該レジスタ書き込みのデータを入力す
    ることを特徴とする請求項2に記載のプロセッサ。
  7. 【請求項7】 前記パイプラインラッチ部における前記
    実効アドレス計算ステージに対応するラッチ(32)
    は、実効アドレス指定がイミディエート値指定を指示し
    ている場合には、前記レジスタ値の代わりにイミディエ
    ート値を入力することを特徴とする請求項2に記載のプ
    ロセッサ。
  8. 【請求項8】 1チップの形態で構成されることを特徴
    とする請求項1に記載のプロセッサ。
JP21885093A 1992-09-16 1993-09-02 パイプライン処理を用いたプロセッサ Expired - Fee Related JP3202108B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP21885093A JP3202108B2 (ja) 1992-09-16 1993-09-02 パイプライン処理を用いたプロセッサ
US08/121,507 US5465334A (en) 1992-09-16 1993-09-16 Processor with a respective latch provided for each pipelined stage to transfer data to the pipeland stages

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP24669192 1992-09-16
JP4-246691 1992-09-16
JP21885093A JP3202108B2 (ja) 1992-09-16 1993-09-02 パイプライン処理を用いたプロセッサ

Publications (2)

Publication Number Publication Date
JPH06161744A JPH06161744A (ja) 1994-06-10
JP3202108B2 true JP3202108B2 (ja) 2001-08-27

Family

ID=26522780

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21885093A Expired - Fee Related JP3202108B2 (ja) 1992-09-16 1993-09-02 パイプライン処理を用いたプロセッサ

Country Status (2)

Country Link
US (1) US5465334A (ja)
JP (1) JP3202108B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991181B2 (en) 2004-09-27 2011-08-02 Panasonic Corporation Loudspeaker system

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761475A (en) * 1994-12-15 1998-06-02 Sun Microsystems, Inc. Computer processor having a register file with reduced read and/or write port bandwidth
US6061755A (en) * 1997-04-14 2000-05-09 International Business Machines Corporation Method of layering cache and architectural specific functions to promote operation symmetry
US5872986A (en) * 1997-09-30 1999-02-16 Intel Corporation Pre-arbitrated bypassing in a speculative execution microprocessor
US5970241A (en) * 1997-11-19 1999-10-19 Texas Instruments Incorporated Maintaining synchronism between a processor pipeline and subsystem pipelines during debugging of a data processing system
US20020078328A1 (en) * 2000-12-14 2002-06-20 International Business Machines Corporation Pulse-controlled micropipeline architecture
KR100495917B1 (ko) * 2002-11-20 2005-06-17 주식회사 하이닉스반도체 고속 데이터 출력을 위한 파이프래치 회로
JP3867804B2 (ja) * 2005-03-22 2007-01-17 セイコーエプソン株式会社 集積回路装置
US8165864B2 (en) * 2008-02-08 2012-04-24 International Business Machines Corporation Method, system and computer program product for verifying address generation, interlocks and bypasses

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS617969A (ja) * 1984-06-22 1986-01-14 Fujitsu Ltd メモリ・アクセスのパイプライン制御方式
US5185868A (en) * 1990-01-16 1993-02-09 Advanced Micro Devices, Inc. Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991181B2 (en) 2004-09-27 2011-08-02 Panasonic Corporation Loudspeaker system

Also Published As

Publication number Publication date
US5465334A (en) 1995-11-07
JPH06161744A (ja) 1994-06-10

Similar Documents

Publication Publication Date Title
US5511173A (en) Programmable logic array and data processing unit using the same
US4774688A (en) Data processing system for determining min/max in a single operation cycle as a result of a single instruction
TWI541658B (zh) 資料處理裝置及半導體積體電路裝置
US5381360A (en) Modulo arithmetic addressing circuit
JPH06149545A (ja) Cpuと乗算器とを有する半導体集積回路
EP0601715A1 (en) Bus of CPU core optimized for accessing on-chip memory devices
JPS6044699B2 (ja) 特殊アドレス発生装置
JPS60142743A (ja) 内部母線システム
JP3202108B2 (ja) パイプライン処理を用いたプロセッサ
JPH0769791B2 (ja) マイクロプロセッサ
JPH0570180B2 (ja)
JPH0736691A (ja) 拡張可能な中央処理装置
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
JP2779557B2 (ja) 並列演算処理装置
JPS6014338A (ja) 計算機システムにおける分岐機構
US5384724A (en) Electronic circuit and method for half adder logic
US5742842A (en) Data processing apparatus for executing a vector operation under control of a master processor
JPS6042966B2 (ja) デ−タ処理システム
Sherburne et al. A 32-bit NMOS microprocessor with a large register file
JP2567134B2 (ja) ビットフィールド論理演算処理装置およびそれを具備するモノリシックマイクロプロセッサ
EP0136699B1 (en) Programmable controller
JPS6161416B2 (ja)
EP0573071A2 (en) A microprocessor
US5784634A (en) Pipelined CPU with instruction fetch, execution and write back stages
JP3669984B2 (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010515

LAPS Cancellation because of no payment of annual fees