JP2000029696A - プロセッサおよびパイプライン処理制御方法 - Google Patents

プロセッサおよびパイプライン処理制御方法

Info

Publication number
JP2000029696A
JP2000029696A JP10193076A JP19307698A JP2000029696A JP 2000029696 A JP2000029696 A JP 2000029696A JP 10193076 A JP10193076 A JP 10193076A JP 19307698 A JP19307698 A JP 19307698A JP 2000029696 A JP2000029696 A JP 2000029696A
Authority
JP
Japan
Prior art keywords
instruction
stage
address
stages
external memory
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
JP10193076A
Other languages
English (en)
Inventor
Masaru Goto
後藤  勝
Masanori Osawa
正紀 大澤
Yukihiro Sakamoto
幸弘 阪本
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP10193076A priority Critical patent/JP2000029696A/ja
Publication of JP2000029696A publication Critical patent/JP2000029696A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 所定の段数の命令パイプライン処理向けに開
発されたプログラムを、より段数の多い命令パイプライ
ン処理で実行する場合にも、正確な動作を実現できるプ
ロセッサを提供する。 【解決手段】 4段命令パイプライン方式のプロセッサ
向けに開発されたプログラムの分岐命令60を実行する
ときに、分岐命令60のRFステージで、ディレイスロ
ット61の直後にハードウェアNOP命令62を自動的
に挿入する。ハードウェアNOP命令62のIFステー
ジでは、プログラムカウンタのインクリメントも命令の
フェッチも行われない。また、ハードウェアNOP命令
62のRF,EX,MEMおよびWBステージでも何も
処理は行われない。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、命令パイプライン
処理を行うプロセッサおよびパイプライン処理制御方法
に関する。
【0002】
【従来の技術】近年のプロセッサでは、RISC(Reduc
ed Instruction Set Computer)型のアーキテクチャが主
流になっている。RISC型のプロセッサは、CISC
(Complex Instruction Set Computer)型のプロセッサが
命令機能レベルを上げて実行命令数を滅らして高速化を
図るのに対して、命令パイプラインを駆使して、1命令
当たりの平均所要クロックサイクル数を可能な限り1に
近づけることで高速化を図っている。そのため、RIS
C型のプロセッサでは、命令パイプライン処理に適する
ように命令の機能を単純化すると共に、命令パイプラン
が滞らないようにコンパイラによる静的コードスケジュ
ーリングを行っている。
【0003】命令パイプライン処理は、命令実行を複数
のステージ(段)に分割し、当該複数のステージをオー
バーラップさせて実行することで、全体としてのスルー
プットを上げる手法である。ところで、命令パイプライ
ン処理では、1命令の実行を何段に分割して行うかにつ
いては種々の方式がある。例えば、図13に示すよう
に、1命令を4段に分割して行う4段命令パイプライン
方式がある。この4段命令パイプライン方式では、1命
令の実行を、IF(Instruction Fetch) 、RF(Regist
er Fetch) /EX(EXecution) 、MEM(MEMory acces
s)およびWB(Write Back)の4ステージに分割し、各ス
テージを1クロックサイクルで実行する。このとき、例
えば、動作周波数は27(MHz)であり、1クロック
サイクルの周期は1/(27×106 )(sec)であ
る。
【0004】各ステージの処理を簡単に説明すると、I
Fステージでは、プログラムカウンタが指し示す外部メ
モリ上のアドレスを更新した後に、当該更新したアドレ
スから命令を読み込む(フェッチする)。RF/EXス
テージでは、読み込んだ命令のデコードを行い、必要に
応じて、データレジスタからデータの読み出しおよび当
該データを用いた演算を行う。MEMステージでは、必
要に応じて外部メモリにアクセスを行う。WBステージ
では、RF/EXステージで演算が行われた場合に、当
該演算の結果をレジスタに書き込む。
【0005】上述した4段命令パイプライン処理では、
図13に示すようにクロックサイクル「4」では、I
F、RF/EX、MEMおよびWBステージが並到に実
行され、命令パイプライン処理を採用しない場合に比べ
て、見かけ上の演算速度を4倍にできる。しかしなが
ら、図13に示す4段命令パイプライン方式では、RF
/EXステージが、1クロックサイクルの時問を決定す
る上でのクリティカルパスとなり、動作速度を向上する
上でのボトルネックとなっていた。
【0006】このようなボトルネックを緩和するため
に、図14に示すように、図13に示すRF/EXステ
ージをRFステージとEXステージとに分割した5段命
令パイプライン方式がある。この5段命令パイプライン
方式によれば、1クロックサイクルの時間を図13に示
す4段命令パイプライン方式に比べて短縮できる。図1
4に示すように5段命令パイプライン方式では、クロッ
クサイクル「5」では、IF、RF、EX、MEMおよ
びWBステージが並列に実行される。
【0007】上述したような図13および図14に示す
ような命令パイプライン方式を採用したプロセッサで
は、例えば、分岐命令を実行する場合に、当該分岐命令
をフェッチしてから分岐先の命令のアドレスが決まるま
でに1クロックサイクル以上必要となり、分岐命令の直
後にディレイスロット命令を挿入する必要がある。ま
た、メモリからデータをロードするロード命令を実行す
る場合にも、当該ロードしたデータを使用できるのは、
当該ロード処理が完了した後であり、ロード命令の直後
の命令では当該ロードするデータを使用できないため、
ロード命令の直後にディレイスロット命令を挿入する必
要がある。また、分岐命令の実行に応じて分岐先の命令
を実行した後に、分岐先から復帰先に復帰させる復帰
(リターン)命令を実行する場合には、スタックポイン
タで指し示される外部メモリのアドレスに保存しておい
た復帰先のアドレスをロードし、当該ロードしたアドレ
スをプログラムカウンタに設定可能な状態にする必要が
ある。そのため、復帰命令のフェッチサイクルと復帰後
の命令のフェッチサイクルとは1クロックサイクル以上
空ける必要があり、復帰命令の直後にディレイスロット
命令を挿入する必要がある。
【0008】このように、分岐命令、ロード命令および
復帰命令の後にはディレイスロット命令を適切な数だけ
挿入する必要がある。このようなディレイスロット命令
は、プログラマがプログラム作成時に明示するか、ある
いは、コンパイラがコンパイル時に自動的に挿入するこ
とで、プログラム中に記述される。ディレイスロット命
令としては、例えば、プログラムカウンタを更新させる
こと以外にプロセッサ内の主な内部状態に変更を加えな
いNOP(Non OPeration:無操件)命令や、分岐命令、
ロード命令および復帰命令の実行によって影響を受けな
い命令が用いられる。
【0009】ところで、分岐命令おおび復帰命令の後に
挿入すべきディレイスロット命令の数は、命令パイプラ
インの段数に依存する。従って、図13に示す4段命令
パイプライン方式と図14に示す5段命令パイプライン
方式とでは、分岐命令および復帰命令の後に挿入するデ
ィレイスロット命令の数が相互に異なる。従って、ユー
ザやコンパイラは、命令パイプライン処理の段数を考慮
して、分岐命令および復帰命令の後にディレイスロット
命令を記述する必要がある。
【0010】
【発明が解決しようとする課題】ところで、ソフトウェ
ア資源の有効利用という観点から、例えば、図13に示
す4段命令パイプライン方式のプロセッサ向けに開発さ
れたプログラムを、図14に示す5段命令パイプライン
方式のプロセッサでも動作させたいという要請がある。
しかしながら、前述したように、図13に示す4段命令
パイプライン方式と図14に示す5段命令パイプライン
方式とでは、分岐命令および復帰命令の後に必要とされ
るディレイスロット命令の数が異なることから、図13
に示す4段命令パイプライン方式のプロセッサ向けに開
発されたプログラムを、図14に示す5段命令パイプラ
イン方式のプロセッサでそのまま動作させると、正確な
結果を得ることができない。従って、図14に示す5段
命令パイプライン方式のプロセッサで正確に動作させる
ために、図13に示す4段命令パイプライン方式のプロ
セッサ向けに開発されたソースプログラムあるいはコン
パイラに変更を加える必要があり、パグが生じる可能性
があり、しかも、手間がかかるという問題がある。
【0011】本発明は上述した従来技術の問題点に鑑み
てなされ、所定の段数の命令パイプライン処理向けに開
発されたプログラムを、より段数の多い命令パイプライ
ン処理で実行する場合にも、正確な動作を実現できるプ
ロセッサおよびパイプライン処理制御方法を提供するこ
とを目的とする。
【0012】
【課題を解決するための手段】上述した従来技術の問題
点を解決し、上述した自的を達成するために、本発明の
プロセッサは、命令実行をn(n≧3)個のステージに
分割して順次に行い、連続した複数の命令の異なるステ
ージを並列に実行してパイプライン処埋を行うプロセッ
サであって、1≦m≦n−1とした場合に、(n−m)
個のステージを持つパイプライン処理で実行したとき
に、第1の命令の所定のステージの実行に応じて内部状
態が確定した後に、第2の命令の所定のステージが実行
されるように、前記第1の命令と前記第2の命令との間
に単数または複数の第1の遅延用命令が挿入されたプロ
グラムを実行する場合に、前記第1の命令と前記第2の
命令との間に前記第1の遅延用命令に加えてm個の第2
の遅延用命令が挿入されている場合と同等の処理を前記
n個のステージが行うように、前記n個のステージにお
ける処理を制御するパイプライン処理制御手段を有す
る。
【0013】本発明のプロセッサでは、(n−m)個の
ステージを持つパイプライン処理を行うプロセッサ向け
に作成されたプログラムを実行するときに、パイプライ
ン処理制御手段によって、当該プログラムに含まれる第
1の命令と第2の命令との間に、第1の遅延用命令に加
えてm個の第2の遅延用命令が挿入されている場合と同
等の処理をn個のステージで行うように、前記n個のス
テージにおける処理が制御される。これにより、当該プ
ログラムを、n個のステージのパイプライン処理で実行
した場合でも、前記第1の命令の所定のステージの実行
に応じて内部状態が確定した後に、前記第2の命令の所
定のステージが実行されることが保証される。
【0014】また、本発明のプロセッサは、特定的に
は、前記第1の命令は、パイプライン処理のステージの
数に応じて、必要とされる前記第1の遅延用命令の数が
異なる命令である。
【0015】また、本発明のプロセッサは、好ましく
は、外部メモリから読み込もうとする命令が記憶されて
いる前記外部メモリのアドレスを指し示すプログラムカ
ウンタと、前記読み込んだ命令をデコードするデコード
手段と、前記デコード手段のデコード結果に応じて演算
を行う演算手段と、データを記憶する複数のデータレジ
スタとを有し、前記複数のステージは、前記プログラム
カウンタが指し示す前記外部メモリのアドレスから命令
を読み込む命令フェッチステージと、前記読み込んだ命
令を前記デコード手段でデコードするデコードステージ
と、前記デコード手段のデコード結果に基づいて、必要
に応じて前記演算手段で演算を行う演算ステージと、必
要に応じて前記外部メモリにアクセスを行うメモリアク
セスステージと、必要に応じて前記演算の結果を前記デ
ータレジスタに書き込むライトバックステージとを少な
くとも有する。
【0016】また、本発明のパイプライン処理制御方法
は、命令実行をn(n≧3)個のステージに分割して順
次に行い、連続した複数の命令の異なるステージを並列
に実行するパイプライン処理を制御するパイプライン処
理制御方法であって、1≦m≦n−1とした場合に、
(n−m)個のステージを持つパイプライン処理で実行
したときに、第1の命令の所定のステージの実行に応じ
て内部状態が確定した後に、第2の命令の所定のステー
ジが実行されるように、前記第1の命令と前記第2の命
令との間に単数または複数の第1の遅延用命令が挿入さ
れたプログラムを実行する場含に、前記第1の命令と前
記第2の命令との問に前記第1の遅廷用命令に加えてm
個の第2の遅延用命令が挿入されている場合と同等の処
理を前記n個のステージが行うように、前記n個のステ
ージにおける処理を制御する。
【0017】
【発明の実施の形態】以下、本発明の実施形態に係わる
プロセッサについて説明する。図1は、本実施形態のプ
ロセッサ1および外部メモリ2との接続関係を説明する
ための図である。図1に示すように、プロセッサ1は、
命令バス3およびデータバス1を介して外部メモリ2と
接続されている。外部メモリ2は、プロセッサ1で処理
される命令およびデータを記憶し、当該命令およびデー
タをそれぞれ命令バス3およびデータバス4を介してプ
ロセッサ1に供給する。
【0018】図2は、プロセッサ1の構成図である。図
2に示すように、プロセッサ1は、汎用レジスタ群1
0、バイパスロジックモジュール11、ALUモジュー
ル12、乗算モジュール13、除算モジュール14、プ
ログラムカウンタ15、アドレス演算モジュール16、
命令デコーダ17、制御レジスタ群18、割り込みコン
トローラ19およびクロックコントローラ20を有す
る。
【0019】ここで、命令デコーダ17が、本発明のパ
イプライン処理制御手段およびデコード手段に対応す
る。また、ALUモジュール12、乗算モジュール13
および除算モジュール14が、本発明の演算手段に対応
する。また、汎用レジスタ群10を構成する汎用レジス
タが、本発明のデータレジスタに対応する。
【0020】プロセッサ1は、動作周波数が54(MH
z)であり、1クロックサイクルの時間は、1/(54
×106 )(sec)である。すなわち、前述した4段
命令パイプライン方式のプロセッサに比べて2倍の動作
速度を持つ。プロセッサ1は、RISC型のプロセッサ
であり、16ビットの固定長命令を実行し、汎用レジス
タ群10の汎用レジスタに対してのロード(読み出し)
命令およびストア(書き込み)命令を基本とするスタッ
クマシーンアーキテクチャを採用している。また、CI
SC型のプロセッサと同程度の多様な分岐条件を持つ分
岐命令を備えている。
【0021】汎用レジスタ群10には、32ビットの汎
用レジスタを32本備えている。バイパスロジックモジ
ュール11は、図3に示すように、命令実行が、IFス
テージ30、RFステージ31、EXステージ32、M
EMステージ33およびWBステージ31の順で命令パ
イプライン方式で行われる場合に、EXステージ32の
結果をMEMステージ33およびWBステージ34を介
さずに再びEXステージ32およびRFステージ31に
供給するバイパスと、MEMステージ33を終了したデ
ータをWBステージ34を介さずに再びRFステージ3
1に供給するバイパスとを提供する。バイパスロジック
モジュール11によれば、先の命令のEXステージの演
算結果を、後の命令のEXステージで使用する場合に
は、例えば、先の命令のEXステージで得られた演算結
果をWBステージでレジスタに書き込んでから後の命令
のRFステージでレジスタから読み出すのではなく、先
の命令のEXステージおよびMEMステージを終えた段
階の演算結果を、バイパスを使って、図1に示すALU
モジュール12、乗算モジュール13および除算モジュ
ール14に供給することで、後の命令のEXステージを
早いタイミングで実行できる。
【0022】ALUモジュール12は、算術演算モジュ
ール12a、論理演算モジュール12bおよびシフト演
算モジュール12Cを有する。算術演算モジュール12
aは、数値データに対する加算を行う加算器、減算を行
う減算器および比較演算を行う比較演算器などを備えて
いる。論理演算モジュール12bは、非数値データに対
する論理演算を行う論理演算器、ビット・フィールド操
作器およびデータ変換器などを備えている。シフト演算
モジュール12cは、算術シフト器および論理シフト器
などを備えている。乗算モジュール13は、乗算器を備
えている。除算モジュール14は、除算器を備えてい
る。
【0023】プロセッサ1では、算術演算モジュール1
2a、論理演算モジュール12b、シフト演算モジュー
ル12c、乗算モジュール13および除算モジュール1
4は、それぞれ個別に、例えばverilog一HDL
(Hardware Description Language) などのハードウェア
記述言語を用いて設計されている。従って、算術演算モ
ジュール12a、論理演算モジュール12b、シフト演
算モジュール12c、乗算モジュール13および除算モ
ジュール14は、基板上の異なる領域に集積して配置さ
れている。このように、ハードウェア記述言語を用いて
各モジュールを個別に設計することで、各モジュールの
構成要素を基板上の近い位置に配置でき信号処理の高速
化を図ることができる。その結果、図3に示すEXステ
ージに必要とされる時間を短縮し、1クロックサイクル
の時問を前述したように短縮することが可能になった。
【0024】プログラムカウンタ15は、次にフェッチ
する命令の図1に示す外部メモリ2上のアドレスを指し
示す。プログラムカウンタ15が指し示す外部メモリ2
のアドレスは、原則として、1クロックサイクル毎に、
所定の間隔で自動的にインクリメントされる。なお、プ
ログラムカウンタ15が指し示すアドレスの更新は、I
Fステージにおいて命令の読み出しを行う前に行われ
る。また、ハードウェアNOP命令のIFステージで
は、プログラムカウンタ15が指し示すアドレスの更新
は行われない。
【0025】アドレス演算モジュール16は、外部メモ
リ2上のアクセスを行うデータのアドレスを算出する。
当該アドレスは、アドレスのバイト境界に応じて、自動
インクリメント機能によって生成される。
【0026】命令デコーダ17は、外部メモリ2から読
み出され命令バス上を伝送する命令をデコードして制御
信号を生成すると共に、命令パイプライン処理の制御を
統括して行う。なお、プロセッサ1は、図3に示される
ように、IFステージ30、RFステージ31、EXス
テージ32、MEMステージ33およびWBステージ3
4からなる5段命令パイプライン方式を採用している。
ここで、IFステージ30、RFステージ31、EXス
テージ32、MEMステージ33およびWBステージ3
4が、それぞれ本発明の命令フェッチステージ、デコー
ドステージ、演算ステージ、メモリアクセスステージお
よびライトバックステージに対応している。
【0027】各ステージの処理を簡単に説明すると、I
Fステージ30では、プログラムカウンタ15が指し示
す外部メモリ2上のアドレスを更新し、当該更新したア
ドレスから命令を読み込む(フェッチする)。RFステ
ージ31では、IFステージ30で読み込んだ命令のデ
コードを行い、必要に応じて、汎用レジスタ群10の汎
用(データ)レジスタからデータを読み出す。また、E
Xステージ32では、必要に応じて、RFステージ31
で汎用レジスタから読み出したデータを用いて、ALU
モジュール12、乗算モジュール13および除算モジュ
ール14の何れかにおいて演算を行う。MEMステージ
33では、必要に応じて外部メモリ2にアクセスを行
う。WBステージ34では、EXステージ32で演算が
行われた場合に、当該演算の結果を汎用レジスタに書き
込む。
【0028】また、命令デコーダ17は、デコードした
命令が、4段命令パイプライン方式のプロセッサ用に開
発されたプログラムの分岐命令および復帰命令のいずれ
かの命令であると判断すると、これらの命令を5段命令
パイプライン方式で正確に動作させるために、1個のハ
ードウェアNOP(Non OPeration) 命令を自動的に挿入
するように制御を行う。このように1個のハードウェア
NOP命令を挿入することとした理由について後述す
る。ここで、分岐命令および復帰命令が、本発明の第1
の命令に対応している。また、後述する分岐先の命令お
よび復帰先の命令が本発明の第2の命令に対応してい
る。
【0029】命令デコーダ17は、ハードウェアNOP
命令の挿入に応じて、当該ハードウェアNOP命令のI
Fステージにおいて、プログラムカウンタ15が指し示
すアドレスのインクリメントおよび命令のフェッチ動作
を行わないように制御する。また、命令デコーダ17
は、ハードウェアNOP命令の挿入に応じて、当該ハー
ドウェアNOP命令のRFステージ、EXステージ、M
EMステージおよびWBステージにおいて、何も処理を
行わないように制御する。
【0030】また、命令デコーダ17は、デコードした
命令が、4段命令パイプライン方式のプロセッサ用に開
発されたプログラムの分岐命令および復帰命令以外の命
令であると判断すると、ハードウェアNOP命令の挿入
は行わずに、通常通り、IFステージで読み込んだ命令
のデコードを行う。
【0031】制御レジスタ群18は、割り込み制御およ
びデバック処理などに用いられる32ビットの10本の
制御レジスタを備えている。割り込みコントローラ19
は、プログラムカウンタ15が割り込み時に指し示すア
ドレスの外部メモリ2への退避や、スタックポインタの
操作などの割り込み制御を統括して行う。
【0032】以下、4段命令パイプライン方式のプロセ
ッサ用に開発されたプログラムに記述された分岐命令お
よび復帰命令を、図3に示す5段命令パイプライン方式
のプロセッサ1で実行する際に、命令デコーダ17が、
分岐命令およひ復帰命令の後に1個のハードウェアNO
P命令を自動的に挿入するとした理由について説明す
る。
【0033】先ず、前述した4段命令パイプライン方式
と本実施形態の5段命令パイプライン方式とで分岐命
令、ロード命令および復帰命令を実行する際に必要とさ
れるディレイスロット命令の数を対比して説明する。分岐命令 4段命令パイプライン方式のプロセッサで分岐命令を実
行する場合には、分岐先のアドレス「Jaddr」がR
F/EXステージで決定するため、図4に示すように、
分岐命令をクロックサイクル「1」でフェッチした場合
には、分岐先の命令をフェッチするのはクロックサイク
ル「3」になる。すなわち、分岐命令の直後に1個のデ
ィレイスロット命令を挿入する必要がある。また、5段
命令パイプライン方式のプロセッサで分岐命令を実行す
る場合には、分岐完のアドレス「Jaddr」がEXス
テージで決定するため、図5に示すように、分岐命令を
クロックサイクル「1」でフェッチした場合には、分岐
先の命令をフェッチするのはクロックサイクル「4」に
なる。すなわち、分岐命令の後に2個のディレイスロッ
ト命令を挿入する必要がある。
【0034】ロード命令 4段命令パイプライン方式のプロセッサでロード命令を
実行する場合には、データがロードされるのがMEMス
テージであるため、図6に示すように、ロードしたデー
タを使用する命令は、ロード命令のMEMステージの次
のクロックサイクルでRF/EXステージを行う必要が
ある。すなわち、図6に示すように、クロックサイクル
「1」でロード命令をフェッチした場合には、クロック
サイクル「3」で、ロードしたデータの使用命令をフェ
ッチする必要があり、ロード命令の直後に1個のディレ
イスロット命令を挿入する必要がある。また、5段命令
パイプライン方式のプロセッサでロード命令を実行する
場合には、データがロードされるのがMEMステージで
あるため、図7に示すように、ロードしたデータを使用
する命令は、ロード命令のMEMステージの次のクロッ
クサイクルでEXステージを行う必要がある。すなわ
ち、図7に示すように、クロックサイクル「1」でロー
ド命令をフェッチした場合には、クロックサイクル
「3」で、ロードしたデータを使用する命令はフェッチ
する必要があり、ロード命令の直後に1個のディレイス
ロット命令を挿入する必要がある。
【0035】復帰命令 4段命令パイプライン方式のプロセッサで復帰命令を実
行する場合には、当該復帰命令のMEMステージで、ス
タックポインタSPが指し示す外部メモリ上のアドレス
に記憶されているアドレス〔SP〕を読み込み、WBス
テージで、当該読み込んだアドレスをプログラムカウン
タに設定する。そのため、図8に示すように、復帰命令
のWBステージの次のクロックサイクルで復帰先の命令
のIFステージを行う必要がある。すなわち、図8に示
すように、復帰命令をクロックサイクル「1」でフェッ
チした場合には、復帰先の命令はクロックサイクル
「5」でフェッチする必要があり、復帰命令の後に3個
のディレイスロット命令を挿入する必要がある。
【0036】また、5段命令パイプライン方式のプロセ
ッサで復帰命令を実行する場合にも、当該復帰命令のM
EMステージで、スタックポインタSPが指し示す外部
メモリ2上のアドレスに記憶されているアドレス〔S
P〕を読み込み、WBステージで、当該読み込んだアド
レスをプログラムカウンタ15に設定する。そのため、
図9に示すように、復帰命令のWBステージの次のクロ
ックサイクルで復帰元の命令のIFステージを行う必要
がある。すなわち、図9に示すように、復帰命令をクロ
ックサイクル「1」でフェッチした場合には、復帰先の
命令はクロックサイクル「6」でフェッチする必要があ
り、復帰命令の後に4個のディレイスロット命令を挿入
する必要がある。
【0037】上述した4段命令パイプライン方式と本実
施形態の5段命令パイプライン方式とで分岐命令、ロー
ド命令および復帰命令を実行する際に必要とされるディ
レイスロット命令の数をまとめると図10に示すように
なる。図10から分かるように、4段命令パイプライン
方式と本実施形態の5段命令パイプライン方式とでは、
ディレイスロット命令の数が、ロード命令については同
じであるが、分岐命令および復帰命令については、5段
命令パイプライン方式の方が11個多くなっている。従
って、4段命令パイプライン方式のプロセッサ向けに開
発されたプログラムを、5段命令パイプライン方式を採
用するプロセッサ1で実行する場合には、分岐命令およ
び復帰命令を実行する際に、当該ディレイスロット命令
の数の相違の問題を解決する必要がある。すなわち、プ
ロセッサ1では、前述したように、命令デコーダ17に
おいて、デコードした命令が、4段命令パイプライン方
式のプロセッサ用に開発されたプログラムの分岐命令お
よび復帰命令のいずれがの命令であると判断すると、こ
れらの命令を5段命令パイプライン方式で正確に動作さ
せるために、1個のハードウェアNOP(Non OPeratio
n) 命令を自動的に挿入するように制御することで、4
段命令パイプライン方式向けに開発されたプログラムと
の互換性を保っている。
【0038】以下、4段命令パイプライン方式のプロセ
ッサ用に開発されたプログラムに記述された分岐命令お
よび復帰命令を、図3に示す5段命令パイプライン方式
のプロセッサ1で実行する際の動作について説明する。
【0039】分岐命令実行時の動作 図11は、4段命令パイプライン方式のプロセッサ向け
に開発されたプログラムに含まれる分岐命令を図3に示
す5段命令パイプライン方式で実行する際の動作を説明
するための図である。クロックサイクル「1」:分岐命
令60のIFステージが行われ、図2に示すブログラム
カウンタ15によって指し示される図1に示す外部メモ
リ2のアドレスがアドレス「PC」に固定長「2」だけ
インクリメントされ、当該アドレス「PC」から読み込
まれた分岐命令60が命令パスに伝送される(フェッチ
される)。
【0040】クロックサイクル「2」:クロックサイク
ル「1」でフェッチされた分岐命令60のRFステージ
が行われ、当該分岐命令60が命令デコーダ17でデコ
ードされる。これにより、クロックサイクル「3」〜
「7」において、ハードウェアNOP命令62に応じた
IF,RF,ALU,MEMおよびWBステージを行う
ことが決定される。また、ディレイスロット命令61の
IFステージが行われ、プログラムカウンタ15が指し
示す外部メモリ2のアドレスがアドレス「PC+2」に
インクリメントされ、当該アドレス「PC+2」に記憶
されているディレイスロット命令61がフェッチされ
る。当該ディレイスロット命令61は、4段命令パイプ
ライン方式のプロセッサ向けに開発されたプログラム中
に予め記述されている。
【0041】クロックサイクル「3」:分岐命令60の
EXステージが行われ、図2に示すアドレス演算モジュ
ール16において、分岐先の命令63のアドレス「Ja
ddr」が計算されれる。また、ディレイスロット命令
61のRFステージが行われ、命令デコーダ17でデコ
ードされる。また、ハードウェアNOP命令62のIF
ステージが行われるが、何の命令もフェッチされず、プ
ログラムカウンタ15が指し示すアドレスのインクリメ
ントも行われない。すなわち、プログラムカウンタ15
は、アドレス「PC+2」を継続して指し示す。
【0042】クロックサイクル「4」:分岐命令60の
MEMステージ、ディレイスロット命令61のEXステ
ージおよびハードウェアNOP命令62のRFステージ
が行われるが、これらのステージでは何も処理は行われ
ない。但しディレイスロット命令61が演算を行う命令
であれば、EXステージで演算処理が行われる。さら
に、分岐先の命令63のIFステージが行われ、クロッ
クサイクル「3」で計算されたアドレス「Jaddr」
がプログラムカウンタ15に設定され、外部メモリ2の
アドレス「Jaddr」から、分岐先の命令63が命令
バスに伝送される。
【0043】クロックサイクル「5」:分岐命令60の
WBステージ、ディレイスロット命令61のMEMステ
ージおよびハードウェアNOP命令62のEXステージ
が実行されるが、これらのステージでは何も処理は行わ
れない。但しディレイスロット命令61がメモリアクセ
スを行う命令であれば、MEMステージでメモリアクセ
スが行われる。また、分岐先の命令63のRFステージ
では、命令デコーダ17において当該分岐先の命令63
のデコードおよび必要に応じてレジスタフェッチ処理が
行われる。
【0044】クロックサイクル「6」:ディレイスロッ
ト命令61のWBステージおよびハードウェアNOP命
令62のMEMステージが行われるが、これらのステー
ジでは何ら処理は行われない。但しディレイスロット命
令61が、演算実行結果等のデータ格納が必要な命令で
あれば、WBステージで図2に示す汎用レジスタ群10
の汎用レジスタにデータが書き込まれる。また、分岐先
の命令63のEXステージでは、当該分岐先の命令63
が演算命令である場合には、図1に示すALUモジュー
ル12、乗算モジュール13あるいは除算モジュール1
4において所定の演算が行われる。
【0045】クロックサイクル「7」:ハードウェアN
OP命令62のWBステージが行われるが、これらのス
テージでは何も処理は行われない。分岐先の命令63の
MEMステージでは、当該分岐先の命令63が演算命令
である場合には何も行われず、当該分岐先の命令63が
ロード命令あるいはストア命令である場合には、外部メ
モリ2に対してのアクセスが行われる。
【0046】クロックサイクル「8」:分岐先の命令6
3のWBステージでは、当該分岐先の命令63が演算命
令である場合には演算結果が図2に示す汎用レジスタ群
10の汎用レジスタに書き込まれ、当該分岐先の命令6
3が演算命令でない場合には何ら処理は行われない。
【0047】以上説明したように、プロセッサ1によれ
ば、4段命令パイプライン方式のプロセッサ向けに開発
されたプログラムに含まれる分岐命令60を実行する場
合に、図11に示すように、分岐命令60が命令デコー
ダ17においてデコードされることで、ディレイスロッ
ト命令61の直後にハードウェアNOP命令62が自動
的に挿入された場合と同等の処理が行われる。そのた
め、5段命令パイプライン処理において、分岐先の命令
63のIFステージは、分岐命令60のEXステージの
クロックサイクル「3」の次のクロックサイクル「4」
で実行され、分岐先の命令63のIFステージを実行す
る前に分岐先のアドレスが確定していることが保証され
る。
【0048】復帰命令実行時の動作 図12は、4段命令パイプライン方式のプロセッサ向け
に開発されたプログラムに含まれる復帰命令を図3に示
す5段命令パイプライン方式で実行する際の動作を説明
するための図である。なお、復帰命令は、その以前に実
行された分岐命令に応じて分岐先の命令を実行した後
に、復帰先のアドレスに復帰して命令を実行するために
用いられる。
【0049】クロックサイクル「1」:復帰命令70の
IFステージが行われ、図2に示すプログラムカウンタ
15によって指し示される外部メモリ2上のアドレスが
アドレス「PC」にインクリメントされ、当該アドレス
「PC」に記憶されだ復掃命令70が命令パスにに読み
出される(フェッチされる)。
【0050】クロックサイクル「2」:クロックサイク
ル「1」でフェッチされた復帰命令70のRFスチージ
が行われ、当該復帰命令T0が命令デコーダ17でデコ
ードされる。これにより、クロックサイクル「3」〜
「7」において、ハードウェアNOP命令72に応じた
IF,RF,ALU,MEMおよびWBステージを行う
ことが決定される。また、ディレイスロット命令71の
IFステージが行われ、プログラムカウンタ15が指し
示す外部メモリ2のアドレスがアドレス「PC+2」に
インクリメントされ、当該アドレス「PC+2」に記憶
されているディレイスロット命令71がフェッチされ
る。当該ディレイスロット命令71は、4段命令パイプ
ライン方式のプロセッサ向けに開発されたプログラム中
に予め記述されている。
【0051】クロックサイクル「3」:復帰命令70の
EXステージが行われ、次のMEMステージでメモリア
クセスするためのアドレス計算が行われる。またディレ
イスロット命令71のRFステージが行われ、命令デコ
ーダ17でデコードされる。また、ハードヴェアNOP
命令72のIFステージが行われるが、命令のフェッチ
およびプログラムカウンタ15が指し示すアドレスの更
新は行われない。すなわち、プログラムカウンタ15が
指し示すアドレスはアドレス「PC+2」を保持する。
【0052】クロックサイクル「4」:復帰命令70の
MEMステージが行われ、スタックポインタレジスタに
記憶されたスタックポインタによって指し示される外部
メモリ2上のアドレス「SP」にアクセスが行われ、ア
ドレス「SP」に記憶されていたアドレス〔SP〕が読
み出される。また、ディレイスロット命令71のEXス
テージが行われ、演算処理を行う命令であれば図1に示
すALUモジュール12、乗算モジュール13あるいは
除算モジュール14において所定の演算が行われる。ま
たハードウェアNOP命令72のRFステージが行われ
るが、このステージでは何も処理は行われない。さら
に、ディレイスロット命令73のIFステージが行わ
れ、プログラムカウンタ15が指し示すアドレスが「P
C+4」にインクリメントされ、当該アドレス「PC+
4」からディレイスロット73が読み出される。当該デ
ィレイスロット命令73は、4段命令パイプライン方式
のプロセッサ向けに開発されたプログラム中に予め記述
されている。
【0053】クロックサイクル「5」:復帰命令70の
WBステージが行われ、クロックサイクル「4」で外部
ノモリ2から読み込まれたアドレス〔SP〕が制御レジ
スタに書き込まれる。すなわち、アドレス〔SP〕が、
プログラムカウンタ15に設定可能になる。また、ディ
レイスロット命令71のMEMステージが行われ、その
命令がメモリアクセスを行うものであれば、メモリアク
セスを行う。ハードウェアNOP命令72のEXステー
ジでは何も処理は行われない。ディレイスロット命令7
3のRFステージでは、命令デコーダ17でその命令が
デコードされる。また、ディレイスロット命令74のI
Fステージが行われ、プログラムカウンタ15が指し示
すアドレスがアドレス「PC+6」にインクリメントさ
れ、アドレス「PC+6」からディレイスロット74が
読み出される。当該ディレイスロット命令74は、4段
命令パイプライン方式のプロセッサ向けに開発されたプ
ログラム中に予め記述されている。
【0054】クロックサイクル「6」:ディレイスロッ
ト71のWBステージ、ハードウェアNOP命令72の
MEMステージ、ディレイスロット73のEXステージ
が行われるが、これらのステージでは何も処理は行われ
ない。但し、ディレイスロット命令71が演算実行結果
のデータ格納が必要な命令であれば、図2に示す汎用レ
ジスタ群10の汎用レジスタにデータが書き込まれる。
またディレイスロット命令73が演算処理を行う命令で
あれば図1に示すALUモジュール12、乗算モジュー
ル13あるいは除算モジュール14において所定の演算
が行われる。また、復帰先の命令75のIFステージが
行われ、制御レジスタに記憶されている復帰先のアドレ
ス〔SP〕が、プログラムカウンタ15に設定され、外
部メモリ2上のアドレス〔SP〕から復帰先の命令75
が命令バスに読み込まれる。
【0055】クロックサイクル「7」:ハードウェアN
OP命令72のWBステージ、ディレイスロット73の
MEMステージおよびディレイスロット74のEXステ
ージが行われるが、これらのステージでは何も処理は行
われない。但しディレイスロット命令73がメモリアク
セスを行うものであれば、ディレイスロット73のME
Mステージでメモリメモリアクセスを行う。またディレ
イスロット命令74が演算処理を行う命令であれば図2
に示すALUモジュール12、乗算モジュール13ある
いは除算モジュール14において所定の演算が行われ
る。また、復帰先の命令75のRFステージが行われ、
当該復帰先の命令75のデコードおよび必要に応じてレ
ジスタフェッチ処理が行われる。
【0056】クロックサイクル「8」:ディレイスロッ
ト命令73のWBステージおよびディレイスロット74
のMEMステージが行われるが、これらのステージでは
何も処理は行われない。但し、ディレイスロット命令7
3が演算実行結果等のデータ格納が必要な命令であれ
ば、図2に示す汎用レジスタ群10の汎用レジスタにデ
ータが書き込まれる。ディレイスロット命令74がメモ
リアクセスを行うものであれば、ディレイスロット74
のMEMステージでメモリメモリアクセスを行う。ま
た、復帰先の命令75のEXステージでは、当該復帰先
の命令75が演算命令である場合には、所定の演算が行
われる。
【0057】クロックサイクル「9」:ディレイスロッ
ト命令74のWBステージが行われるが、ディレイスロ
ット命令74が演算実行結果等のデータ格納が必要な命
令であれば、図2に示す汎用レジスタ群10の汎用レジ
スタにデータが書き込まれる。復帰先の命令75のME
Mステージでは、当該復帰先の命令75が演算命令であ
る場合には何も行われず、当該復帰先の命令75がロー
ド命令あるいはストア命令である場合には、外部メモリ
2に対してのアクセスが行われる。
【0058】クロックサイクル「10」:復帰先の命令
75のWBステージでは、当該復帰先の命令75が演算
命令である場合には演算結果が図2に示す汎用レジスタ
群10の汎用レジスタに書き込まれ、当該復帰先の命令
75が演算命令でない場合には何も処理は行われない。
【0059】以上説明したように、プロセッサ1によれ
ば、4段命令パイプライン方式のプロセッサ向けに開発
されたプログラムに含まれる復帰命令70を実行する場
合に、図12に示すように、復帰命令70が命令デコー
ダ17においてデコードされたときに、ハードウェアN
OP命令72が自動的に挿入される。そのため、5段命
令パイプライン処理において、復帰先の命令75のIF
ステージは、復帰命令70のWBステージのクロックサ
イクル「5」の次のクロックサイクル「6」で実行さ
れ、復帰先の命令75のIFステージを実行する前に復
帰先のアドレスがプログラムカウンタ15に設定可能に
なっていることが保証される。
【0060】なお、4段命令パイプライン方式のプロセ
ッサ用に開発されたプログラムに記述された分岐命令お
よび復帰命令以外の命令をプロセッサ1で実行する場合
には、ハードウェアNOP命令の挿入は行わずに、図1
4に示すように、プログラムカウンタ15が指し示す外
部メモリ2上のアドレスを順次に「2」だけインクリメ
ントして命令を実行する。
【0061】以上説明したように、プロセッサ1によれ
ば、4段命令パイプライン方式向けに開発されたプログ
ラムをそのまま動作させても正確な動作結果を得ること
ができる。その結果、4段命令パイプライン方式向けに
開発されたプログラムの資源を、プログラムやコンパイ
ラに変更を加えることなく、有効に活用できる。また、
従来からある4段命令パイプライン方式のプロセッサと
命令互換にしたことで、プロセッサの切り換えを簡単に
行うことができる。さらに、プロセッサ1によれば、命
令コードとして、4段命令パイプライン方式のプロセッ
サと同一のものを用いることで、プログラマに、プロセ
ッサの違いを意識させずにプログラムを作成させること
ができる。
【0062】本発明は上述した実施形態には限定されな
い。例えば、図12を用いて前述した、4段命令パイプ
ライン処理向けに開発されたプログラムの復帰命令を実
行する場合に、ハードウェアNOP命令72をディレイ
スロット71の直後に挿入する場合を例示したが、ハー
ドウェアNOP命令72を、例えばディレイスロット7
3あるいは74の直後に揮入するようにしてもよい。
【0063】また、上述した実施形態では、本発明にお
ける「n」および「m」として、それぞれ「5」および
「1」を用いた場合を例示したが、「n≧3」および
「1≦m≦n−1」の条件を満たせば、「n」および
「m」の値は特に限定されない。
【0064】また、上述した実施形態では、第1の命令
として、分岐命令および復帰命令を例示したが、命令パ
イプライン処理のステージ数の相違により、ディレイス
ロット命令の数が異なる命令であれば、特に限定されな
い。
【0065】
【発明の効果】以上説明したように、本発明のプロセッ
サおよびパイプライン処理制御方法によれば、(n−
m)個のステージを持つパイプライン処理のプロセッサ
向けに作成されたプログラムを、当該プログラムおよび
コンパイラに変更を加えることなく、そのまま実行する
ことができる。そのため、(n−m)個のステージを持
つパイプライン処理のプロセッサ向けに作成されたプロ
グラムを有効に活用できる。また、本発明のプロセッサ
およびパイプライン処理制御方法によれば、(n−m)
個のステージを持つパイプライン処理のプロセッサ向け
に作成されたプログラムおよび当該プログラムのコンパ
イラに変更を加える必要がないため、当該変更に伴うバ
グの発生を回避できると共に、ユーザの作業負荷をなく
せる。
【図面の簡単な説明】
【図1】図1は、本発明の実施形態のプロセッサおよび
外部メモリとの接続関係を説明するための図である。
【図2】図2は、図1に示すプロセッサの構成図であ
る。
【図3】図3は、図2に示すプロセッサの5段命令パイ
プライン処理およびバイパスロジックモジュールを説明
するための図である。
【図4】図4は、一般的な4段命令パイプライン処理に
おいて、4段命令パイプライン方式向けに記述されたプ
ログラムの分岐命令を実行する場合のディレイスロット
命令を説明するための図である。
【図5】図5は、一般的な5段命令パイプライン処理に
おいて、5段命令パイプライン方式向けに記述されたプ
ログラムの分岐命令を実行する場合のディレイスロット
命令を説明するための図である。
【図6】図6は、一般的な4段命令パイプライン処理に
おいて、4段命令パイプライン方式向けに記述されたプ
ログラムのロード命令を実行する場合のディレイスロッ
ト命令を説明するための図である。
【図7】図7は、一般的な5段命令パイプライン処理に
おいて、5段命令パイプライン方式向けに記述されたプ
ログラムのロード命令を実行する場合のディレイスロッ
ト命令を説明するための図である。
【図8】図8は、一般的な4段命令パイプライン処理に
おいて、4段命令パイプライン方式向けに記述されたプ
ログラムの復帰命令を実行する場合のディレイスロット
命令を説明するための図である。
【図9】図9は、一般的な5段命令パイプライン処理に
おいて、5段命令パイプライン方式向けに記述されたプ
ログラムの復帰命令を実行する場合のディレイスロット
命令を説明するための図である。
【図10】図10は、図4〜図9に示す4段命令パイプ
ライン方式と5段命令パイプライン方式のディレイスロ
ット命令の数を示す図である。
【図11】図11は、4段命令パイプライン方式のプロ
セッサ向けに開発されたプログラムに含まれる分岐命令
を図3に示す本実施形態の5段命令パイプライン方式で
実行する際の動作を説明するための図である。
【図12】図12は、4段命令パイプライン方式のプロ
セッサ向けに開発されたプログラムに含まれる復帰命令
を図3に示す本実施形態の5段命令パイプライン方式で
実行する際の動作を説明するための図である。
【図13】図13は、4段命令パイプライン処理の一例
を説明するための図である。
【図14】図14は、4段命令パイプライン処理の一例
を説明するための図である。
【符号の説明】
1…プロセッサ、2…外部メモリ、10…汎用レジスタ
群、11…バイパスロジックモジュール、12…ALU
モジュール、12a…算術演算モジュール、12b…論
理演算モジュール、12c…シフト演算モジュール、1
3…乗算モジュール、14…除算モジュール、15…プ
ログラムカウンタ、16…アドレス演算モジュール、1
7…命令デコーダ、18…制御レジスタ群、19…割り
込みコントロ一ラ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 阪本 幸弘 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 Fターム(参考) 5B013 AA11 AA12

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】命令実行をn(n≧3)個のステージに分
    割して順次に行い、連続した模数の命令の異なるステー
    ジを並列に実行してパイプライン処理を行うプロセッサ
    において、 1≦m≦nとした場合に、(n−m)個のステージを持
    つパイプライン処理で実行したときに、第1の命令の所
    定のステージの実行に応じて内部状態が確定した後に、
    第2の命令の所定のステージが実行されるように、前記
    第1の命令と前記第2の命令との間に単数または複数の
    第1の遅延用命令が挿入されたプログラムを実行する場
    合に、前記第1の命令と前記第2の命令との問に前記第
    1の遅延用命令に加えてm個の第2の遅延用命令が挿入
    されている場合と同等の処理を前記n個のステージが行
    うように、前記n個のステージにおける処理を制御する
    パイプライン処理制御手段を有するプロセッサ。
  2. 【請求項2】前記第1の命令は、パイプライン処理のス
    テージの数に応じて、必要とされる前記第1の遅延用命
    令の数が異なる命令である請求項1に記載のプロセッ
    サ。
  3. 【請求項3】外部メモリから読み込もうとする命令が記
    憶されている前記外部メモリのアドレスを指し示すプロ
    グラムカウンタと、 前記読み込んだ命令をデコードするデコード手段と、 前記デコード手段のデコード結果に応して演算を行う演
    算手段と、 データを記憶する複数のデータレジスタとを有し、 前記n個のステージは、 前記プログラムカウンタが指し示す前記外部メモリのア
    ドレスから命令を読み込む命令フェッチステージと、 前記読み込んだ命令を前記デコード手段でデコードする
    デコードステージと、 前記デコード手段のデコード結果に基づいて、必要に応
    じて前記演算手段で演算を行う演算ステージと、 必要に応じて前記外部メモリにアクセスを行うメモリア
    クセスステージと、 必要に応じて前記演算の結果を前記データレジスタに書
    き込むライトバックステージとを少なくとも有する請求
    項1に記載のプロセッサ。
  4. 【請求項4】前記第1の命令は、分岐命令であり、 前記第2の命令は、分岐先の命令である請求項1に記載
    のプロセッサ。
  5. 【請求項5】前記第1の命令は、分岐命令であり、 前記第2の命令は、分岐先の命令であり、 前記第1の命令の前記演算ステージで、前記第2の命令
    が記憶されている前記外部メモリのアドレスを決定する
    ことで前記内部状態を確定する請求項3に記載のプロセ
    ッサ。
  6. 【請求項6】前記第2の命令の命令フェッチステージ
    で、前記決定されたアドレスを前記プログラムカウンタ
    に設定し、前記外部メモリの当該アドレスから前記第2
    の命令を読み込む請求項5に記載のプロセッサ。
  7. 【請求項7】前記第1の命令は、分岐先から復帰先に復
    帰することを指示する復帰命令であり、 前記第2の命令は、前記復帰先の命令である請求項1に
    記載のプロセッサ。
  8. 【請求項8】前記第1の命令は、分岐先から復帰先に復
    帰することを指示する復帰命令であり、 前記第2の命令は、前記復帰先の命令であり、 前記第1の命令のメモリアクセスステージで、前記外部
    メモリから前記第2の命令が記憶されている前記外部メ
    モリ上のアドレスを読み込み、前記第1の命令のライト
    バックステージで、前記読み込んだ前記第2の命令が記
    憶されている外部メモリ上のアドレスを前記プログラム
    カウンタに設定可能にすることで前記内部状態を確定す
    る請求項3に記載のプロセッサ。
  9. 【請求項9】前記第2の命令の命令フェッチステージ
    で、前記読み込んだ前記第2の命令が記憶されている外
    部メモリ上のアドレスを前記プログラムカウンタに設定
    し、前記外部メモリ上の当該アドレスから前記第2の命
    令を読み込む請求項8に記載のプロセッサ。
  10. 【請求項10】前記第1の遅延命令の命令フェッチステ
    ージでは、前記プログラムカウンタが指し示す外部メモ
    リのアドレスを更新した後に、当該更新した外部メモリ
    のアドレスから前記第1の遅延命令を読み込み、 前記第1の遅延命令の前記デコードステージ、前記演算
    ステージ、前記メモリアクセスステージおよび前記ライ
    トバックステージでは、前記第1の遅延命令の内容に応
    じた処理を行う請求項3に記載のプロセッサ。
  11. 【請求項11】前記パイプライン処理制御手段は、前記
    第2の遅延命令の命令フェッチステージで、前記プログ
    ラムカウンタの更新および前記外部メモリからの命令の
    読み込みを行わないように制御し、 前記第2の遅延命令の前記デコードステージ、前記演算
    ステージ、前記メモリアクセスステージおよび前記ライ
    トバックステージでは、何も処理を行わないように制御
    する請求項3に記載のプロセッサ。
  12. 【請求項12】前記ステージの各々は、1クロックサイ
    クルで実行される請求項1に記載のプロセッサ。
  13. 【請求項13】前記(n−m)個のステージを持つパイ
    プライン処理は、 プログラムカウンタが指し示す外部メモリのアドレスか
    ら命令を読み込む命令フェッチステージと、 前記読み込んだ命令をデコードし、当該デコードの結果
    に基づいて、必要に応じて演算を行うデコード・演算ス
    テージと、 必要に応じて前記外部メモリにアクセスを行うメモリア
    クセスステージと、 必要に応じて前記演算の結果をデータレジスタに書き込
    むライトバックステージとを少なくとも有し、 各ステージを1クロックサイクルで実行する請求項1に
    記載のプロセッサ。
  14. 【請求項14】命令実行をn(n≧3)個のステージに
    分割して順次に行い、連続した複数の命令の異なるステ
    ージを並列に実行するパイプライン処理を制御するパイ
    プライン処理制御方法において、 1≦m≦h−1とした場合に、(n−m)個のステージ
    を持つパイプライン処理で実行したときに、第1の命令
    の所定のステージの実行に応じて内部状態が確定した後
    に、第2の命令の所定のステージが実行されるように、
    前記第1の命令と前記第2の命令との間に単数または複
    数の第1の遅延用命令が揮入されたプログラムを実行す
    る場合に、前記第1の命令と前記第2の命令との問に前
    記第1の遅延用命令に加えてm個の第2の遅延用命令が
    挿入されている場合と同等の処埋を前記n個のステージ
    が行うように、前記n個のステージにおける処理を制御
    するパイプライン処理制御方法。
JP10193076A 1998-07-08 1998-07-08 プロセッサおよびパイプライン処理制御方法 Pending JP2000029696A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10193076A JP2000029696A (ja) 1998-07-08 1998-07-08 プロセッサおよびパイプライン処理制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10193076A JP2000029696A (ja) 1998-07-08 1998-07-08 プロセッサおよびパイプライン処理制御方法

Publications (1)

Publication Number Publication Date
JP2000029696A true JP2000029696A (ja) 2000-01-28

Family

ID=16301821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10193076A Pending JP2000029696A (ja) 1998-07-08 1998-07-08 プロセッサおよびパイプライン処理制御方法

Country Status (1)

Country Link
JP (1) JP2000029696A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2065808A1 (en) 2003-08-07 2009-06-03 Panasonic Corporation Processor integrated circuit and product development method using the processor integrated circuit
US7679101B2 (en) 2000-12-28 2010-03-16 Toyoda Gosei Co., Ltd. Light emitting device
JP2015135538A (ja) * 2014-01-16 2015-07-27 三菱電機株式会社 プロセッサ
WO2024029174A1 (ja) * 2022-08-05 2024-02-08 たけおかラボ株式会社 ジャンプ命令に基づくパイプライン処理を制御するプロセッサ及びプログラム記録媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7679101B2 (en) 2000-12-28 2010-03-16 Toyoda Gosei Co., Ltd. Light emitting device
EP2065808A1 (en) 2003-08-07 2009-06-03 Panasonic Corporation Processor integrated circuit and product development method using the processor integrated circuit
JP2015135538A (ja) * 2014-01-16 2015-07-27 三菱電機株式会社 プロセッサ
WO2024029174A1 (ja) * 2022-08-05 2024-02-08 たけおかラボ株式会社 ジャンプ命令に基づくパイプライン処理を制御するプロセッサ及びプログラム記録媒体

Similar Documents

Publication Publication Date Title
US5371860A (en) Programmable controller
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
EP0525375B1 (en) Microcomputer
CN109661647B (zh) 数据处理装置和方法
JP3120152B2 (ja) コンピューターシステム
EP0368332B1 (en) Pipeline data processor
US4471433A (en) Branch guess type central processing unit
US5596733A (en) System for exception recovery using a conditional substitution instruction which inserts a replacement result in the destination of the excepting instruction
US20080082800A1 (en) Data processor for modifying and executing operation of instruction code
US4541047A (en) Pipelined data processing system
US20030120900A1 (en) Apparatus and method for a software pipeline loop procedure in a digital signal processor
JPH07120284B2 (ja) データ処理装置
JP3738253B2 (ja) プログラム・ループを並列に処理する方法および装置
US20030154469A1 (en) Apparatus and method for improved execution of a software pipeline loop procedure in a digital signal processor
JP2000029696A (ja) プロセッサおよびパイプライン処理制御方法
JP3146058B2 (ja) 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法
Smith et al. PIPE: A high performance VLSI architecture
JP3182591B2 (ja) マイクロプロセッサ
US20060168431A1 (en) Method and apparatus for jump delay slot control in a pipelined processor
JPH10124312A (ja) 中央処理装置
JP3504355B2 (ja) プロセッサ
JP2001014161A (ja) プログラマブルコントローラ
JPH0384632A (ja) データ処理装置
US20030182511A1 (en) Apparatus and method for resolving an instruction conflict in a software pipeline nested loop procedure in a digital signal processor
JP3743155B2 (ja) パイプライン制御型計算機