JP3515018B2 - パイプライン形データ処理装置 - Google Patents

パイプライン形データ処理装置

Info

Publication number
JP3515018B2
JP3515018B2 JP20252799A JP20252799A JP3515018B2 JP 3515018 B2 JP3515018 B2 JP 3515018B2 JP 20252799 A JP20252799 A JP 20252799A JP 20252799 A JP20252799 A JP 20252799A JP 3515018 B2 JP3515018 B2 JP 3515018B2
Authority
JP
Japan
Prior art keywords
instruction
data
stage
processing
bypass
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
JP20252799A
Other languages
English (en)
Other versions
JP2001034473A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP20252799A priority Critical patent/JP3515018B2/ja
Publication of JP2001034473A publication Critical patent/JP2001034473A/ja
Application granted granted Critical
Publication of JP3515018B2 publication Critical patent/JP3515018B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、処理時間または実
行ステップを更に短縮したパイプライン構造を持つデー
タ処理装置に関するものである。
【0002】
【従来の技術】近年マイクロプロセッサは、動作時間の
短縮を図るためにパイプライン処理による命令実行が行
われている。パイプライン処理とは複数の命令を直列に
送り込み、処理を複数過程で順次分担する形式であり、
結果的に命令をオーバラップさせて同時実行する技術で
ある。詳細に述べると、1個の命令の処理過程を複数の
小さな処理過程(パイプライン・ステージ)に分割す
る。各ステージが順に接続されて1本のパイプラインを
形成し、命令がパイプの一端から入って複数のステージ
を進み、最後に処理結果がパイプのもう一方の端から出
て行く。このパイプラインの単位時間当りの処理性能
は、最も遅いステージの処理時間により決まる。そのた
め通常は各ステージの処理時間が均一になるように設計
されている。Nステージからなるパイプライン処理で
は、パイプライン処理されない場合に比較して、理想的
にはN倍の処理性能を達成することが可能である。
【0003】図6は、第1の従来例としての最も典型的
なパイプライン形式のデータ処理装置であるマイクロプ
ロセッサのブロック図である。このデータ処理装置は、
命令フェッチステージ(IFステージ)、解読及びレジ
スタ読出しステージ(DECステージ)、演算及びオペ
ランドアドレス計算ステージ(EXステージ)、メモリ
アクセスステージ(MEMステージ)、レジスタ書き戻
しステージ(WBステージ)の5つのステージから構成
される5段のパイプライン構造を成している。図におい
て、100は機械語プログラムを格納するROM、10
1はROM100から取り出した機械語命令を格納する
Iラッチ、102はIラッチ101に保持された命令を
解読しマイクロプロセッサの各部を制御する命令解読
器、103はオペランドまたはオペランドを指定するた
めのアドレスを格納するレジスタファイル、111はI
ラッチ101の内容の一部とレジスタファイル103の
出力との2入力から1つを選択するDセレクタ、104
はDセレクタ111の出力を格納するD1ラッチ、10
5はレジスタファイル103の出力を格納するD2ラッ
チ、106はD1ラッチ104及びD2ラッチ105の
内容を用いて算術論理演算等を行う演算器、107は演
算器106の出力を格納するEラッチ、108はEラッ
チ107の値をアドレス入力としてデータが読み出され
るRAM、112はEラッチ107の値とRAM108
の出力との2入力から1つを選択するMセレクタ、10
9はMセレクタ112の出力の下位8ビットまたは下位
16ビットを32ビットへゼロ拡張または符号拡張する
拡張器、110は拡張器109の出力を格納するMラッ
チである。ROM100とIラッチ101と命令解読器
102とを除く全ての構成要素の入出力は32ビット幅
を有する。
【0004】以上のように構成された従来のデータ処理
装置は、8ビットまたは16ビットのデータをロードし
て32ビットにゼロ拡張または符号拡張してレジスタに
格納するアセンブリ言語プログラム中の指示に対して、
それぞれ単一の機械語命令が割り当てられている。これ
ら命令は、命令解読器102で解読され、MEMステー
ジにおいて次のように実行される。すなわち、これら命
令で指定された8ビットまたは16ビットデータがRA
M108から読み出され、さらに拡張器109により3
2ビット長にゼロ拡張または符号拡張され、レジスタフ
ァイル103にその結果が格納される。前述したよう
に、パイプラインの単位時間当りの処理性能は、最も遅
いステージの処理時間により決まる。そのためマイクロ
プロセッサの処理性能を向上させるためには、パイプラ
インの各ステージの処理時間がほぼ均等でかつできるだ
け短いことが要求される。しかしながら図6に示す従来
のデータ処理装置では、MEMステージの処理時間が、
RAM108のアクセス時間と、Mセレクタ112の遅
延時間と、拡張器109の遅延時間と、Mラッチ110
のセットアップ時間と、それらの間の配線における伝播
遅延時間とにより、他のステージより処理時間が長くな
りがちである。即ち拡張器は内部の詳細構成として多段
のゲート構造を持ち従ってハードウェア縦続接続数が多
くなって遅延時間が長くなる。その結果、動作クロック
周波数の上限が、MEMステージの処理時間によって低
く抑えられて、性能向上のための足かせとなっている。
またMEMステージでの処理時間を他のステージの処理
時間とほぼ均等にするためには、アクセス時間の短い高
速RAMの実装が要求され、結果としてコストや消費電
力が増大するという問題点も有していた。
【0005】この問題を解決するために、第2の従来例
としての特開平9−269895号公報の『データ処理
装置』では、複数のパイプラインステージを並列にパイ
プライン処理するデータ処理装置が提案されている。こ
れは、レジスタ長より短いデータを記憶部から読み出す
第1処理と、このデータをレジスタ長にゼロ拡張または
符号拡張してレジスタに格納する第2処理とを指示する
拡張付きロード命令対して、第1処理が実行されるパイ
プラインステージと異なるパイプラインステージで、第
2処理を実行する構成となっている。図7に特開平9−
269895号公報の『データ処理装置』によるマイク
ロプロセッサの構成ブロック図を示す。図において、機
械語プログラムを格納するROM100、機械語命令を
格納するIラッチ101の他に、120のIラッチ10
1に保持された命令を解読しマイクロプロセッサの各部
を制御する命令解読器がある。オペランドまたはオペラ
ンドを指定するためのアドレスを格納する。レジスタフ
ァイル103は、主にオペランドデータを格納するデー
タレジスタD0〜3と、主にアドレスを格納するアドレ
スレジスタA0〜3から構成されている。123はIラ
ッチ101の内容の一部とレジスタファイル103の出
力と他の2つとの4入力から1つを選択するD1セレク
タ、124はレジスタファイル103の出力と他の2つ
との3入力から1つを選択するD2セレクタ、D1ラッ
チ104と、D2ラッチ105は図6と同じ要素であ
る。
【0006】算術論理演算等を行う演算器106も同様
要素である。122はD1ラッチ104の出力の最下位
から8ビット目もしくは16ビット目をそれぞれ上位側
の24ビット及び16ビットにコピーする符号拡張器で
あり、後で述べるようにMEMステージにおいて動作す
る。125は演算器106の出力と符号拡張器122の
出力との2入力から1つを選択するEセレクタである。
Eラッチ107と、RAM108と、Mセレクタ112
とMラッチ110と拡張器109は図6のそれと同じ要
素である。127は、Mセレクタ112の出力をD1セ
レクタ123とD2セレクタ124とに接続するMEバ
イパスで、WBステージにおいて動作する。126はW
Eバイパスで、ゼロ拡張器109の出力をD1セレクタ
123とD2セレクタ124とに接続する。121はフ
リップフロップであり、MEバイパス使用禁止フラグを
保持する。このフラグは動作クロック周波数が所定周波
数を越える場合にセットされ、所定周波数以下である場
合にリセットされる。図7に示すマイクロプロセッサの
構成のうち、Iラッチ101およびレジスタファイル1
03、D1ラッチ104及びD2ラッチ105、Eラッ
チ107、Mラッチ110は、それぞれステージ間で処
理結果を受け渡すパイプラインレジスタとして設けられ
ている。またROM100とIラッチ101と命令解読
器120とMEバイパス使用禁止フラグ121を除く全
ての構成要素の入出力は32ビット幅を有するものとす
る。上記MEバイパス127及びWEバイパス126
は、先行する命令のMEMステージ及びWBステージ
と、後続する命令のEXステージとの間でパイプライン
ステージの一部をパスするバイパス機能を実現するため
に設けられている。
【0007】命令解読器120は、図7の構成において
は、マイクロプロセッサの各部の制御に加えてバイパス
機能を禁止する機能を有する。即ち、命令解読器120
は、先行する命令がレジスタファイル103のレジスタ
への書込みを伴う命令である場合は、まず後続の命令で
同じレジスタからの読出しを行うか否か(データ依存関
係があるか否か)を検知する。そして、後続命令がこの
レジスタを読み出す命令と解読されると、先行命令のM
EMステージまたはWBステージの終了を待って後続命
令のEXステージを開始する。同時にD1セレクタ12
3及びD2セレクタ124に対してMEバイパス127
またはWEバイパス126を選択するように制御を行
う。但し先行命令が32ビットデータをロードする命令
でかつMEバイパス使用禁止フラグ121がセットされ
ている場合はMEバイパスを選択しない。さらに、命令
解読器120は、MEバイパス使用禁止フラグ121が
クリアされている場合は、データ依存関係を検知したと
きにMEバイパスを使用するが、セットされている場合
は、データ依存関係を検知したときでも通常通りにイン
ターロックを発生させて、MEバイパスを使用しない。
このようにMEバイパス使用を禁止することにより、バ
イパス処理による遅延時間(D1セレクタ123または
D2セレクタ124の遅延時間と配線遅延時間の合計)
の分だけMEMステージの処理時間が短くなり、結果的
にマイクロプロセッサのクロック周波数の向上が期待で
きる。そのかわり、拡張処理の命令は1ステージ以上余
分に時間がかかる。
【0008】図7のように構成されたデータ処理装置に
ついて以下その動作を説明する。図8はアセンブリ言語
プログラムと、アセンブラによる変換後の機械語プログ
ラムの一例を示す。機械語プログラムは本来0と1のビ
ット列であるが、意味を表すためにアセンブリ言語と同
じニモニック表記してある。矢印は両者の対応関係を示
している。アセンブリ言語プログラム中の指示1から指
示4までは一対一にそのまま機械語プログラムの命令1
から指示まで4に変換されるが、指示5は命令5−1と
命令5−2とに、指示6は命令6−1と命令6−2とに
変換される。指示1から指示6および命令1から命令6
−2の内容は以下の通りである。 <アセンブリ言語プログラム> 指示1: MOV @(A0),D0 (A0レジスタの値が示す番地にある32ビットデータ
をD0レジスタにロードする指示) 指示2: ADD #1,D0 (D0レジスタの値に1を加算して結果をD0レジスタ
に格納する指示) 指示3:MOVBU @(4,A),D1 (A0レジスタの値に4バイトを加えた番地にある8ビ
ットデータをロードして32ビットに拡張した結果をD
1レジスタに格納する指示) 指示4:SUB #1,D0 (D0レジスタ値から1を減算して結果をD0レジスタ
に格納する指示) 指示5:MOVB @(8,A0),D2 (A0レジスタの値に8バイトを加えた番地にある8ビ
ットデータをロードして32ビットに符号拡張した結果
をD2レジスタに格納する指示) 指示6:MOVH @(12,A0),D3 (A0レジスタの値に12バイトを加えた番地にある1
6ビットデータをロードして32ビットに符号拡張した
結果をD3レジスタに格納する指示)
【0009】<機械語プログラム(ニモニック表記)> 命令1: MOV @(A0),D0 (指示1と同じ内容の命令) 命令2: ADD #1,D0 (指示2と同じ内容の命令) 命令3:MOVBU @(4,A),D1 (指示3と同じ内容の命令) 命令4:SUB #1,D0 (指示4と同じ内容の命令) 命令5−1:MOVBU @(8,A0),D2 (A0レジスタの値に8バイトを加えた番地にある8ビ
ットデータをロードして32ビットにゼロ拡張した結果
をD2レジスタに格納する指示) 命令5−2:EXTB D2 (D2レジスタの値の下位8ビットを32ビットに符号
拡張した結果をD2レジスタに格納する命令) 命令6−1:MOVH @(12,A0),D3 (A0レジスタの値に12バイトを加えた番地にある1
6ビットデータをロードして32ビットにゼロ拡張した
結果をD2レジスタに格納する指示) 命令6−2:EXTH D3 (D3レジスタの値の下位16ビットを32ビットに符
号拡張した結果をD3レジスタに格納する命令) このように、アセンブリ言語プログラムにおける、8ビ
ットまたは16ビットのデータをロードして符号拡張す
る指示は、ロードしてゼロ拡張する命令と符号拡張する
命令とに変換される。
【0010】次にMEバイパス使用禁止フラグ121が
セットされている場合の図8に示す命令の動作タイミン
グを図9に示す。図9に示すように、命令1と命令2間
のレジスタD0のデータ依存は、MEバイパスが使用禁
止であるため、代わりにWEバイパスを使用することに
より1タイミング延びて(t51,t52と2タイミン
グかかる)いる。また命令2と命令4間のレジスタD0
のデータ依存は、命令2が32ビットデータをロードす
る命令でないためにMEバイパス使用禁止フラグ121
がセットされていてもMEバイパスの使用が可能であ
る。そのためタイミングt6,t7間でMEバイパスに
よるデータの受け渡しが行われ、パイプラインが乱れる
ことなく処理が進行する。また命令5−1と命令5−2
間と、命令6−1と命令6−2間のレジスタD2、D3
によるデータ依存は、命令5−1及び命令6−1のWB
ステージでゼロ拡張を行った後に、このデータをWEバ
イパスで次命令の命令5−2,6−2のEXステージに
それぞれバイパス処理している。この処理により2タイ
ミング期間分パイプライン処理が余分にかかっている。
【0011】このように図7の構成では、ゼロ拡張器1
09による拡張を、MEMステージではなくてWBステ
ージで行っている。WBステージはレジスタファイル1
03への格納を行っているだけなので、遅延時間が比較
的小さいゼロ拡張器が加わっても他のステージと比べて
処理時間が短く抑えられる。その上、RAM108から
読み出したデータを後続の命令で使う場合でも、レジス
タファイル103に格納された後にDECステージで読
み出すのと比べると、MEMステージまたはWEステー
ジの結果からMEバイパスとWEバイパス及びD1セレ
クタ123とD2セレクタ124を経由してこのデータ
を得るバイパス構造のために、8ビットまたは16ビッ
トデータの読出し後の使用については1タイミング、最
も使用頻度の高い32ビットデータの読出し後の使用に
ついては1または2タイミング分のパイプラインインタ
ーロックを短縮することができる。さらに、MEバイパ
ス使用禁止フラグ121をセットすることで、D1セレ
クタ123、D2セレクタ124の遅延時間がMEMス
テージに入り込まないように指定でき、MEMステージ
の処理時間を短縮して、従ってマイクロプロセッサの動
作周波数を高くできる。即ち、1タイミングの時間を短
縮するために拡張器の配置を移し、かつバイパスを設け
たかわりに命令の作成、最適化という他のやっかいな作
業が必要となってしまう。更に1タイミング(ステー
ジ)の処理時間は短くできても、命令を分割したために
命令の実行完了までのステージ数が増加し、少なくとも
2命令の実行、更にはインターロック等で図9では命令
5と6は4ステージかかっている。
【0012】さらに特開平9−269895号公報の
『データ処理装置』では、WBステージのゼロ拡張器の
機能をEXステージの符号拡張器に内蔵することも開示
している。またこのWBステージのゼロ拡張器を図6の
典型構成と同様に、MEMステージのMセレクタの直後
に配置することも開示している。前者はゼロ拡張を伴う
ロード命令をアセンブラによりロード命令とゼロ拡張命
令に分割し、RAMのアクセスと拡張器による拡張処理
を単一命令において直列に動作させる必要がなくなる。
後者はMEMステージで直列に動作させる必要があるの
はRAMのアクセスと遅延時間が比較的小さいゼロ拡張
器だけに限定される。
【0013】
【発明が解決しようとする課題】従来のパイプライン・
データ処理装置は上記のように構成されており、処理タ
イミングの短縮はできるが、ゼロ及び符号拡張処理付き
ロード命令をアセンブラ及びコンパイラで2命令に分割
する必要があるという課題があった。さらにパイプライ
ンの待ち時間を最小にするための命令列の最適化処理も
必要であるという課題があった。これらアセンブラ及び
コンパイラの機能改訂は、プロセッサ開発に影響が大き
く、また、命令の並びが最適化されずにこの分割された
2命令が連続する場合は、この2命令間で2タイミング
のパイプラインの待ち時間が図9の命令5、6のように
発生してしまうという課題があった。
【0014】本発明は上記の課題を解決するためになさ
れたもので、命令列の変更なしにゼロ及び符号拡張処理
付きロード命令の処理をハードウェアの構成の工夫のみ
で高速化した、パイプライン構造を有するデータ処理装
置を得ることを目的とする。
【0015】
【課題を解決するための手段】この発明に係るパイプラ
イン形データ処理装置は、処理ステージを縦続接続して
パイプライン処理する構成において、演算及びオペラン
ドアクセスを行うステージを同一ステージとし、かつ該
ステージに他ステージへも出力を帰還バイパス可能な拡
張器を備えて、命令がオペランドアクセスのステージ
読み出されたデータの拡張不要であることを示している
場合は、上記拡張器内に設けたバイパスを使用して必要
に応じて帰還するようにした。
【0016】また更に、命令実行が拡張を必要としない
場合、またはゼロ拡張のみの場合には、後続命令が必要
とするデータを帰還バイパスするようにした。
【0017】
【発明の実施の形態】実施の形態1.パイプライン形の
データ処理装置では、命令実行後にゼロ拡張または符号
拡張が必要であれば拡張を行う構成が最も自然であり、
従って完了までの実効ステージ数が少ない。一方、この
実行形式を素直にハードウェア構成で実現すると、拡張
器での遅れ時間が大きくなり、これを見込んだ1ステー
ジでの処理時間が長くなる。本実施の形態では、この矛
盾を拡張器内のバイパスと、ステージ間のバイパスとで
解決した構成を説明する。即ち必要なデータを記憶部か
ら読み出すロード処理と、読み出された短いデータをゼ
ロまたは符号拡張する拡張処理を同一のステージにする
素直な構成とし、しかし次命令以降にデータ依存性があ
れば処理済みのステージからインターロックを短縮する
バイパス経路を設けたハードウェア構成とした。図1に
本実施の形態におけるパイプライン形データ処理の構成
ブロック図を示す。このデータ処理装置は、命令フェッ
チステージ(IFステージ)、解読及びレジスタ読出し
ステージ及びオペランドアドレス生成を行うステージ
(D/Aステージ)、演算及びオペランドアクセスを行
うステージ(E/Mステージ)、レジスタ書き戻しステ
ージ(Wステージ)の4つのステージから構成される4
段のパイプライン構造としている。
【0018】図1において、1は機械語プログラムを格
納する命令RAM、20は命令RAM1の出力とI2ラ
ッチからのフィードバック経路の2入力から1つを選択
するセレクタ、2はセレクタ20の出力を格納するDラ
ッチ、3aはセレクタ20から出力される命令をIFス
テージのうちに解読してマイクロプロセッサの各部を制
御する命令先行解読器、3bはDラッチ2に保持された
命令を解読しマイクロプロセッサの各部を制御する命令
解読器、5はオペランドまたはオペランドを指定するた
めのアドレスを格納するレジスタファイルであり32ビ
ット幅のレジスタを64本内蔵している。4はDラッチ
2の出力を保持するラッチであり出力はセレクタ20に
接続されている。6はDラッチの内容の一部とレジスタ
ファイル5の出力からオペランドアドレスを生成するた
めのアドレス生成部、7はアドレス生成部6の出力を保
持するためのMラッチ、21はDラッチ2の内容の一部
とレジスタファイル5の出力と他の4つのバイパス入力
から1つを選択するセレクタ、22はレジスタファイル
5と他の4つのバイパス入力から1つを選択するセレク
タ、8はセレクタ21の出力を保持するE1ラッチ、9
はセレクタ22の出力を保持するE2ラッチである。1
0はMラッチの値をアドレス入力としてデータが読み出
されるRAM、11はRAM10の出力をゼロまたは符
号拡張する拡張器、12はE1ラッチ8及びE2ラッチ
9の内容を用いて演算を行う演算器である。13は拡張
器11の出力を格納するW1ラッチ、14は演算器12
の出力を格納するW2ラッチである。W1ラッチ13及
びW2ラッチ14の出力は、Wステージ中にレジスタフ
ァイル5に格納される。
【0019】30は演算器12の出力をセレクタ21及
び22とに接続するバイパスである。31は拡張器11
の出力をセレクタ21及び22に接続するバイパスであ
る。32はW1ラッチ13の出力をセレクタ21及び2
2に接続するバイパスである。33はW2ラッチの出力
をセレクタ21及び22に接続するバイパスである。図
1では演算器12を一つしか示していないが実際は複数
の演算器を内蔵しており、それぞれにセレクタ、ラッチ
及びバイパス経路が存在する。そして命令コードは2命
令並列演算に対応しており1つの演算器を動作させるサ
ブ命令が2つで一つの64ビット単一命令となってい
る。そのため命令RAM1の出力、セレクタ20、Dラ
ッチ及びI2ラッチは64ビットの命令長に対応してい
る。またデータRAM10の出力も64ビットデータに
対応しており、拡張器11、W1ラッチ、レジスタファ
イルのデータ書き戻し経路、バイパス31は64ビット
に対応している。64ビットデータ経路であるバイパス
31が接続されているセレクタ21,22では、この6
4ビットデータの上位32ビット及び下位32ビットの
いずれかが選択されるようになっている。また64ビッ
トデータ経路であるレジスタファイルへのデータ書き戻
し処理では、64ビットデータが32ビットの連続する
レジスタに格納される。
【0020】図2に命令フォーマットの概要を示す。図
2に示す演算命令フォーマットとロード命令フォーマッ
トは、サブ命令を示しており、これらサブ命令2個が1
セットで64ビットの単一命令となっている。まず演算
命令フォーマットでは上位側からOpecode,x,
Ra,Rb,srcの5つのフィールドに分割されてい
る。Opecodeは演算の種類を示すフィールド、x
はモードフィールド、Raはディスティネーションレジ
スタ指定フィールド、Rbはソース1レジスタ指定フィ
ールド、そしてsrcはソース2を指定するフィールド
でありモードフィールドxの値によってレジスタか即値
が指定される。実動作としてはRb,srcで指定され
るソースデータに対して、Opecodeで指定する演
算を実行し、Raで指定するディスティネーションに演
算結果を格納する。次にロード命令フォーマットでは、
演算命令フォーマットと同様に上位側からOpecod
e,x,Ra,Rb,srcの5つのフィールドに分割
されている。実動作としては、Rb,srcで指定する
ソースデータを加算しオペランドアドレスを生成し、こ
のオペランドアドレスでRAMのアクセスを行う。RA
Mから読み出されたデータはOpecodeの指定に従
って拡張処理を行い、Raで指定するディスティネーシ
ョンにロードデータを格納する。ロードデータの有効デ
ータが64ビットである場合には、Raと(Ra+1)
にデータが格納される。
【0021】図3に図1に示す本発明の実施の形態によ
るパイプライン処理と、ロード命令と演算命令間でデー
タ干渉が発生した場合のパイプライン処理を示す。図3
のA)は図1の実施の形態による4段のパイプラインで
ある。IF、D/A、E/M、Wの4段のパイプライン
ステージがシリアルに実行される。演算命令を実行する
場合はIF→D→E→Wであり、ロード命令を実行する
場合はIF→D/A→M→Wである。またレジスタファ
イルの読出しはIFステージの後半に実行され、レジス
タファイルの書込みはWステージの後半に実行される。
そのためもしバイパス経由がなければ、B)に示すよう
なデータ干渉が発生し、2ステージ分のパイプラインス
トール(パイプラインの待ち時間)が発生する。すなわ
ちB)の1)に示す拡張処理を伴わないロード命令LD
1のR10と、以下データ干渉が発生しているレジスタ
は大文字のRではじまるよう表示すると、2)に示す加
算命令ADDのR10間でデータ干渉が発生した場合、
バイパス経路がないため1)のWステージでレジスタフ
ァイルにデータを書込んだ後に2)のDステージでレジ
スタファイルからデータを読み出す必要がある。
【0022】図1のバイパス経由がある場合の動作を説
明する。拡張処理を伴わないロード命令LD1でデータ
干渉が発生し、これをバイパス経路で回避する場合をC
1),C2)に示す。C1)ではB)の1),2)と同
様なデータ干渉をバイパス経由でデータ転送することに
より、パイプラインストールすることなく処理可能であ
る。しかも先行命令のMステージの遅れが少ない(拡張
しないので)ので、2)ADD命令のDステージ時にバ
イパスできる。このバイパス経路は図1のバイパス31
であり、ロード命令C1)の1)のMステージから加算
命令2)のDステージへバイパス処理可能である。また
C2)では1)のロード命令と3)の加算命令間でデー
タ干渉が発生する場合である。この場合は図1のバイパ
ス33でロード命令1)のWステージから加算命令3)
が2つ前のパイプラインのデータが必要と判って拡張が
ないので2つ前のデータをDステージへバイパス処理可
能であり、C1)と同様にパイプラインストールが発生
しない。
【0023】次に拡張処理を伴うロード命令LD2のデ
ータ干渉発生時の処理をD1),D2)に示す。D1)
に示すように、ロード命令1)と加算命令2)とが続く
間のデータ干渉をW1ラッチに対するインターロックと
バイパス処理により回避している。すなわちロード命令
1)ではバイパス経路31を禁止する。従ってMステー
ジで拡張処理部の近くに配置されたW1ラッチへのデー
タ書込み処理までを実行するだけであり、時間がかかる
拡張器11を使用しても1タイミング内に十分収まる。
即ち、1タイミング時間の短縮が可能である。そして加
算命令2)では、先行命令のロード命令1)がW1ラッ
チにデータを書込むまで1ステージ分だけDステージを
インターロックし、その後バイパス33からこのロード
データを受け取る。このように拡張処理が必要なロード
命令に対してのみインターロックをかける。D2)にD
1)のさらに詳細なパイプライン図を示す。すなわちイ
ンターロック処理を行う際に本実施の形態では、インタ
ーロックによりデータを受け取る命令(この場合は2)
の加算命令)を図1に示すI2ラッチ4を用いたフィー
ドバック経路により2回命令解読器3a,3bに入力す
る。つまりD2)の2)は命令RAM1の出力をセレク
タ20で選択し、3)ではI2ラッチの出力をセレクタ
20で選択するようにする。そして2)の加算命令によ
る加算結果はWステージでレジスタファイルへ書込みを
行わないようにする。このような機構でインターロック
+バイパス処理を行うことにより、バイパス経路を選択
するための命令解読器の変更が不要となる。
【0024】図4にロード命令の種類と、ロードデータ
の拡張処理の概要について示す。ロード命令は以下の1
0種がある。 丸1 LD2W (2ワードデータのロード) 丸2 LDW (ワードデータのロード) 丸3 LDBU (ゼロ拡張処理を伴うバイトデータのロード) 丸4 LDHU (ゼロ拡張を伴うハーフワードデータのロード) 丸5 LDHH (上位16ビットへのハーフワードデータのロード ) 丸6 LD4BHU (4バイトから4ハーフワードへのゼロ拡張処理を 伴うロード) 丸7 LDB (符号拡張処理を伴うバイトデータのロード) 丸8 LDH (符号拡張処理を伴うハーフワードデータのロード ) 丸9 LD2H (2ハーフワードから2ワードへの符号拡張処理を 伴うロード) 丸10 LD4BH (4バイトから4ハーフワードへの符号拡張処理を 伴うロード) これら10種のロード命令実行後のレジスタファイルの
内容を図4に示してある。図の行には10種の命令と拡
張処理後のデータ(データ中のRb+srcはRAMに
格納されていた先頭アドレスを示している)が示してあ
り、列にはRaで指定されるディスティネーションレジ
スタRa及び(Ra+1)の上位ハーフワードRaH,
(Ra+1)Hと下位ハーフワードRaL,(Ra+
1)Lがそれぞれ示してある。これら10種のロード命
令丸1〜丸10のうち、丸1はRAMから読み出した6
4ビットデータをそのままレジスタRa,(Ra+1)
に格納する。丸2はRAMから読み出した64ビットデ
ータのうち上位または下位32ビットデータのいずれか
を選択しレジスタRaに格納する。丸3〜丸6は、RA
Mから読み出した64ビットデータうち必要なバイト、
ハーフワードをそれぞれゼロ拡張(ゼロ拡張した部分は
太線枠で示している)しRa,(Ra+1)に格納す
る。丸7〜丸10は、RAMから読み出した64ビット
データうち必要なバイト、ハーフワードをそれぞれ符号
拡張(符号拡張した部分は斜線で示している)し、R
a,(Ra+1)に格納する。
【0025】図5に拡張処理を行う拡張器のブロック図
を示す。OD[0:63]はRAMから読み出された6
4ビットデータ、SELAはOD[0:31]またはO
D[32:63]のいずれかを選択する32ビットセレ
クタである。40はセレクタSELAの出力データのイ
メージであり、上位バイトからそれぞれBD0,BD
1,BD2,BD3である。そして各バイトの最上位ビ
ットは符号ビットであり、それぞれBS0,BS1,B
S2,BS3である。41はOD[32:63]のデー
タイメージであり、上位バイトからそれぞれBD4,B
D5,BD6,BD7である。SEL0〜7は拡張処理
後のデータを選択するセレクタであり、拡張処理後の6
4ビットデータの上位バイトに順に対応している。SE
LBはOD[0:63]のバイパス経路42と拡張処理
後のSEL0〜7の出力のうちいずれかを選択する64
ビットセレクタであり、ロードデータLD[0:63]
を出力する。OD[0:63]のバイパス経路42は拡
張処理を伴わないデータ転送経路であり、高速転送のた
めに配線容量やファンアウト数等が最適化されている。
セレクタSL0〜7に接続されているデータ経路では拡
張処理が行われている。バイト、ハーフワードデータは
所定の位置にシフト処理を行うと共にゼロ及び符号拡張
処理を行っている。ゼロ拡張は図5の0入力に示すよう
に、セレクタSL0〜3,SL4,SL6で行ってい
る。また、符号拡張処理はデータイメージ40の各バイ
トの符号ビットBS0,BS1,BS2,BS3がコピ
ー処理される。そのため符号拡張はゼロ拡張に比較して
処理に時間がかかる。そしてこれらシフト処理とコピー
処理のために配線容量及びファンアウト数が増加し、拡
張処理自体に時間がかかる結果となっている。本発明で
は、拡張処理を行う拡張器に拡張処理の必要ないロード
命令LD2W,LDWのデータをバイパスする経路42
を設け、拡張器11を通りながら、ロードデータLD
[0:63]生成の高速化を図っている。
【0026】
【発明の効果】以上のように、本発明によれば、記憶部
からの読出しロードと拡張処理を同一パイプラインステ
ージで実行し、命令の種類によって異なるステージにお
いてバイパス経路により拡張器の出力を帰還するように
したので、命令の内容を変更しないで拡張器でのロード
データ生成を高速に行え、バイパス処理を行ってもマイ
クロプロセッサの処理時間を短縮できる効果がある。
【図面の簡単な説明】
【図1】 本発明の実施の形態1におけるパイプライン
形データ処理装置の構成ブロック図である。
【図2】 実施の形態1における命令フォーマットの例
を示す図である。
【図3】 実施の形態1におけるパイプライン処理とバ
イパス経路がない場合の処理を示すタイミング図であ
る。
【図4】 実施の形態1におけるロード命令対応の拡張
処理の説明図である。
【図5】 実施の形態1における拡張の構成ブロック図
である。
【図6】 第1の従来例であるデータ処理装置の構成ブ
ロック図である。
【図7】 第2の従来例であるデータ処理装置の構成ブ
ロック図である。
【図8】 第2の従来例におけるアセンブリ言語から機
械語への変換例を示す図である。
【図9】 第2の従来例におけるパイプライン処理のタ
イミング図である。
【符号の説明】
10 データRAM、11 拡張器、12 演算器、1
3 W1ラッチ、14W2ラッチ、30,31,32,
33 バイパス経路。
フロントページの続き (56)参考文献 特開 平9−269895(JP,A) 特開 平10−312280(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 処理ステージを縦続接続してパイプライ
    ン処理する構成において、 演算及びオペランドアクセスを行うステージを同一ステ
    ージとし、かつ該ステージに他ステージへも出力を帰還
    バイパス可能な拡張器を備えて、命令が オペランドアクセスのステージで読み出された
    ータの拡張不要であることを示している場合は、上記拡
    張器内に設けたバイパスを使用して必要に応じて帰還す
    るようにしたことを特徴とするパイプライン形データ処
    理装置。
  2. 【請求項2】 命令実行が拡張を必要としない場合、ま
    たはゼロ拡張のみの場合には、後続命令が必要とするデ
    ータを帰還バイパスするようにしたことを特徴とする請
    求項1記載のパイプライン形データ処理装置。
JP20252799A 1999-07-16 1999-07-16 パイプライン形データ処理装置 Expired - Fee Related JP3515018B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20252799A JP3515018B2 (ja) 1999-07-16 1999-07-16 パイプライン形データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20252799A JP3515018B2 (ja) 1999-07-16 1999-07-16 パイプライン形データ処理装置

Publications (2)

Publication Number Publication Date
JP2001034473A JP2001034473A (ja) 2001-02-09
JP3515018B2 true JP3515018B2 (ja) 2004-04-05

Family

ID=16458980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20252799A Expired - Fee Related JP3515018B2 (ja) 1999-07-16 1999-07-16 パイプライン形データ処理装置

Country Status (1)

Country Link
JP (1) JP3515018B2 (ja)

Also Published As

Publication number Publication date
JP2001034473A (ja) 2001-02-09

Similar Documents

Publication Publication Date Title
US4454578A (en) Data processing unit with pipelined operands
US4825355A (en) Instruction format for program control type data processing systems
JP3658101B2 (ja) データ処理装置
JP2816248B2 (ja) データプロセッサ
JPH06332792A (ja) データ処理装置及びそのデータ読み出し制御回路,データ書き込み制御回路
JP3546980B2 (ja) データ処理装置
JP2000222206A (ja) データ処理装置
JP3203401B2 (ja) データ処理装置
JPH09311786A (ja) データ処理装置
JP2001256105A (ja) 非整列循環アドレス指定を用いるマイクロプロセッサ
USRE32493E (en) Data processing unit with pipelined operands
JPS62197830A (ja) デ−タ処理システム
JPH0766324B2 (ja) データ処理装置
JPH0810428B2 (ja) データ処理装置
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
JPH07120278B2 (ja) データ処理装置
US5307300A (en) High speed processing unit
JP3578883B2 (ja) データ処理装置
JP2004086837A (ja) データ処理装置
JPH05197545A (ja) マイクロコンピュータ
US6209080B1 (en) Constant reconstruction processor that supports reductions in code size and processing time
JP2556182B2 (ja) デ−タ処理装置
JP3515018B2 (ja) パイプライン形データ処理装置
US5151993A (en) Data processor performing operation on data having length shorter than one-word length
JPH0769806B2 (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: 20031224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040114

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

Free format text: PAYMENT UNTIL: 20080123

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090123

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees