JPH03105527A - パイプライン計算機におけるプログラムカウンタの構成方式 - Google Patents

パイプライン計算機におけるプログラムカウンタの構成方式

Info

Publication number
JPH03105527A
JPH03105527A JP24231489A JP24231489A JPH03105527A JP H03105527 A JPH03105527 A JP H03105527A JP 24231489 A JP24231489 A JP 24231489A JP 24231489 A JP24231489 A JP 24231489A JP H03105527 A JPH03105527 A JP H03105527A
Authority
JP
Japan
Prior art keywords
register
pipeline
program counter
instruction
stage
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
JP24231489A
Other languages
English (en)
Inventor
Akira Yasusato
安里 彰
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 JP24231489A priority Critical patent/JPH03105527A/ja
Publication of JPH03105527A publication Critical patent/JPH03105527A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [4!I  要] パイプライン方式の計算機での、各パイプラインステー
ジで処理される命令のプログラムカウンタの構成方式に
関し、 従来、パイプラインの各ステージには異った命令が入っ
ており、割り込み処理を考慮して、各命令のプログラム
カウンタ値がパイプラインレジスタ中に保持されていた
が、アドレス空間の拡大により、上記パイプラインレジ
スタのビット数が増大していた問題の解決を目的とし、
各ステージで処理される命令のプログラムカウンタ値の
基礎値を保持するベースレジスタと、各パイプラインレ
ジスタ中に、処理される命令のプログラムカウンタ値を
、ベースレジスタのオフセット情報として保持するフィ
ールドと、割り込み処理時の戻り番地を、ベースレジス
タとオフセット情報とで計算する手段とで構戒する。
[産業上の利用分野コ 本発明は、パイプライン方式の計算機システムでのプロ
グラムカウンタの構成方式に関し、特に、各パイプライ
ンステージで処理される命令のプログラムカウンタ値を
効果的に保持するプログラムカウンタの構成方式に関す
る。
[従来の技術] マシン命令を高速に実行する手法としてパイプライン方
式が従来より用いられている。これは各命令の動作を複
数のステージに細分化し、あるサイクルにおいて複数の
命令が同時に各ステージを実行するように制御すること
によって、見掛け上の命令実行サイクル数を削減し、処
理速度を向上させるための技術である。
この技術は大型計算機の処理装置からマイクロプロセッ
サに至るまでの数多くのプロセッサで採用されている。
このようなパイプライン計算機では、各パイプラインス
テージにその命令を処理するための情報を全て保持する
必要がある(その格納域をパイプラインレジスタと呼ぶ
)。
すなわち、第2図は従来例のパイプラインレジスタにつ
いて説明する図を示しており、命令レジスタ51の命令
は、パイプラインのステージ(1)で所定の処理を受け
パイプラインレジスタ52に格納され、ステージ(2)
を経てパイプラインレジスタ53へ、さらにステージ(
3)を経てパイプラインレジスタ54へそれぞれ格納さ
れて行く。
このパイプラインレジスタ52、53、54に保持され
る情報中には、命令が格納されていた命令アドレス、す
なわちプログラムカウンタの領域52a , 53a 
, 54aも含まれている。
それは次のような理由による。
一般にプロセッサは記憶装置から供給される命令を逐次
的に処理していくものであるが、何らかの例外的な事象
が発生すると割り込みが起こり、一時的にそれまでの処
理を中断し、割り込み処理プログラムを起動して例外要
因の刈り取りを行う必要がある。割り込みは本来のプロ
グラムとは独立して生じるものなので、割り込み発生時
にはその時の環境(命令のアドレスやレジスタの値など
)を何処かへ退避し、割り込み処理終了後にそれを復帰
する機構が必須となる。ここでいう環境のうち、レジス
タの退避は割り込み処理プログラム内でソフトウエア的
に行うが、命令アドレス(プログラムカウンタ)の退避
はハードウエアで行うのが普通である。
パイプライン方式のプロセッサで割り込みが発生した場
合、最終ステージに存在する命令から再実行しなければ
ならないので、その命令のアドレスを退避する必要があ
るが(第2図の例では、戻り番地レジスタ55に退避さ
れる)、それはすなわち全てのステージにおいてそこに
存在する命令のアドレスを情報として保持しなければな
らないことを意味する。ゆえに、各パイプラインステー
ジに、情報としてプログラムカウンタが必要なのである
以上説明したように、従来のパイプライン計算機では命
令アドレスそのものを、パイプラインレジスタ上の情報
として用いていた。
[発明が解決しようとする課題] プロセッサの実装という観点から考えた場合、パイプラ
イン方式はパイプラインの段数が多いほど不利である。
何故なら、各ステージには異なった命令が入っているの
で、一個の命令を処理するための情報は常に1段のパイ
プラインに全てが格納されている必要があり、段数にほ
ぼ比例する量のパイプラインレジスタが必要になるから
である。ゆえに、プロセッサの設計時には、パイプライ
ンレジスタのビット数がなるべく少なくなるように、ス
テージの構或などを工夫しなければならない。
しかしながら前節で述べたように、割り込み処理を考え
ればプログラムカウンタの値は、各ステージに情報とし
て保持されている必要がある。そして、半導体技術の進
歩によってメモリの集積度がアップし、アドレス空間が
拡大するにつれ、プログラムカウンタのビット数も増加
する傾向にある。このためパイプラインレジスタ中のプ
ログラムカウンタのビット数(アドレシングのビット数
とパイプラインの段数との積)も大きくなり、実装面積
を圧迫する可能性が生じている。
本発明はこのような状況に鑑み、少ないビット数でパイ
プラインレジスタのプログラムカウンタ域を構成するこ
とを目的とするものである。
[課題を解決するための手段コ 本発明によれば、上述の目的は前記特許請求の範囲に記
載した手段により達或される。
すなわち、本発明は、パイプライン方式を用いた計算機
システムであって、パイプラインの各ステージで実行さ
れる命令のプログラムカウンタ情報を、各ステージ毎の
パイプラインレジスタ中に保持する中央処理装置におい
て、各パイプラインステージで処理される命令のプログ
ラムカウンタ値の基礎となる値を保持するべ一スレジス
タと、 各パイプラインレジスタ中に、各パイプラインステージ
におけるプログラムカウンタ値を、上記ベースレジスタ
のオフセット情報として保持するオフセットフィールド
と、分岐命令の実行の際には、上記ベースレジスタの内
容を更新する手段と、割り込み発生時には、割り込み処
理後の戻り番地を、上記ベースレジスタの内容と、パイ
プラインレジスタ中のオフセット情報とを用いて計算す
る手段とを設けたパイプライン計算機におけるプログラ
ムカウンタの構或方式である。
[作 用] 一般に、ある時点で各パイプラインに存在する命令のア
ドレスは連続しており、プログラムカウンタ値のうち下
位の数ビットを除いた残りは各命令で共通であると考え
られる。
すなわち、上位の共通な部分を全てのステージで保持し
ているのは冗長である。
本発明はこの点に注目し、各ステージでは下位の数ビッ
トのみを保持することとした。そのかわり、プログラム
カウンタ値を求める場合の基礎となる値を保持するベー
スレジスタを設け、そのベースレジスタの内容と各ステ
ージのパイプラインレジスタ中のオフセット情報との和
によって、それぞれの命令のプログラムカウンタ値を表
すようにする。
また、分岐命令の実行時には、上記ベースレジスタの内
容を分岐先命令のアドレスに変更し、さらに割り込み発
生時には、割り込み処理後の戻り番地を、上記ベースレ
ジスタの内容と、パイプラインレジスタ中のオフセット
情報との加算により求める。
[実施例] 第1図に本発明の一実施例を示す。1は命令レジスタ、
2〜4はパイプラインレジスタ、28〜4aはパイプラ
インレジスタ中のオフセット領域(「オフセットフィー
ルド」ともいう)、5はベースレジスタ、6はオフセッ
トカウンタ、7は加算器、8は戻り番地格納レジスタ、
9はパイプライン制御部、10は命令フェッチ線、11
は割り込み通知線である。また、2a,3a、4aは各
パイプラインレジスタ内のプログラムカウンタ用のフィ
ールド(単に「フィールド」ともいう)である。
命令フェッチ線10より供給された命令は、旦命令レジ
スタ1に格納され、続いてステージ(1)を通って所定
の処理を施されてパイプラインレジスタ2に到達する。
以下、同様にステージ(2)を通ってパイプラインレジ
スタ3へ、ステージ(3)を通ってパイプラインレジス
タ4へと進んで行く。そして、ステージ(4)で処理が
完了する。
命令レジスタ1に存在している命令のアドレスは常にベ
ースレジスタ5とオフセットカウンタ6の和によって与
えられる。ここでベースレジスタ5はアドレスを表すの
に十分なビット数を持つが、オフセットカウンタ6は8
〜12程度のビット数であり、パイプラインレジスタ内
のプログラムカウンタ用のオフセットフィールド2a,
3a,4aと同じビット数である。パイプラインレジス
タ内のプログラムカウンタ情報としてはオフセットカウ
ンタ6の内容だけが、フィールド2 as 3 as 
4 aに流れる。ベースレジスタ5は分岐が起こるとそ
れを契機にして分岐先アドレスが設定される以外は変化
しない。
また、オフセットカウンタ6は分岐によって“0”にな
り、以降は命令が進むにつれてその長さだけインクリメ
ントされる。これによってベースレジスタ5とオフセッ
トカウンタ6の和が常に命令のアドレスを表すことが保
証される。
また、割り込みが発生し、プログラムカウンタを退避す
る場合はベースレジスタ5とフィールド4aの内容を加
算して戻り番地格納レジスタ8に退避すればよい。
このシステムにおける問題点はオフセットカウンタ6の
ビット数で表せるよりも長い間分岐命令が実行されず、
オフセットカウンタ6がオーバフローする可能性がある
点である。その場合は、割り込みを割り込み通知線1l
を用いてパイプライン制御部9に通知することで対処す
ることができる。しかし、こういうケースは、このプロ
セッサ上で動作するプログラムの特性を意識してオフセ
ットカウンタ6のビット幅を決定することにより、最小
限に抑えることが可能である。
本実施例ではパイプラインの段数が4段になっているが
、これが何段であっても応用可能である。また、加算器
7はこの機能のために特別に用意すべきものではなく、
アドレス計算用に通常使用している加算器を充てればよ
い。
[発明の効果] 以上説明したように、本発明によれば、パイプラインレ
ジスタのうちプログラムカウンタに該当する部分のビッ
ト数を削減することができるので、プロセッサの実装の
点で大きな効果がある。
【図面の簡単な説明】
第l図は本発明の一実施例を示す図、第2図は従来例の
パイプラインレジスタについて説明する図である。 1・・・・・・命令レジスタ、2〜4・・・・・・パイ
プラインレジスタ、2a〜4a・・・・・・パイプライ
ンレジスタ中のオフセット領域(オフセットフィールド
)、5・・・・・・ベースレジスタ、6・・・・・・プ
ログラムカウンタ、7・・・・・・加算器、8・・・・
・・戻り番地格納レジスタ、9・・・・・・パイプライ
ン制御i1ffi、10・・・・・・命令フエツチ線、
11・・・・・・割り込み通知線躾来FfijのぺAフ
゜ラA冫レシスク1二ついて説明する図第2図

Claims (1)

  1. 【特許請求の範囲】 パイプライン方式を用いた計算機システムであって、パ
    イプラインの各ステージで実行される命令のプログラム
    カウンタ情報を、各ステージ毎のパイプラインレジスタ
    中に保持する中央処理装置において、 各パイプラインステージで処理される命令のプログラム
    カウンタ値の基礎となる値を保持するベースレジスタと
    、 各パイプラインレジスタ中に、各パイプラインステージ
    におけるプログラムカウンタ値を、上記ベースレジスタ
    のオフセット情報として保持するオフセットフィールド
    と、 分岐命令の実行の際には、上記ベースレジスタの内容を
    更新する手段と、 割り込み発生時には、割り込み処理後の戻り番地を、上
    記ベースレジスタの内容と、パイプラインレジスタ中の
    オフセット情報とを用いて計算する手段とを、 設けたことを特徴とするパイプライン計算機におけるプ
    ログラムカウンタの構成方式。
JP24231489A 1989-09-20 1989-09-20 パイプライン計算機におけるプログラムカウンタの構成方式 Pending JPH03105527A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24231489A JPH03105527A (ja) 1989-09-20 1989-09-20 パイプライン計算機におけるプログラムカウンタの構成方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24231489A JPH03105527A (ja) 1989-09-20 1989-09-20 パイプライン計算機におけるプログラムカウンタの構成方式

Publications (1)

Publication Number Publication Date
JPH03105527A true JPH03105527A (ja) 1991-05-02

Family

ID=17087373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24231489A Pending JPH03105527A (ja) 1989-09-20 1989-09-20 パイプライン計算機におけるプログラムカウンタの構成方式

Country Status (1)

Country Link
JP (1) JPH03105527A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012155539A (ja) * 2011-01-26 2012-08-16 Fujitsu Ltd 処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012155539A (ja) * 2011-01-26 2012-08-16 Fujitsu Ltd 処理装置

Similar Documents

Publication Publication Date Title
JP2645669B2 (ja) データ処理システム
JP3025776B2 (ja) 精密浮動小数点例外用の方法及び装置
US4782441A (en) Vector processor capable of parallely executing instructions and reserving execution status order for restarting interrupted executions
JP3120152B2 (ja) コンピューターシステム
JPH0517588B2 (ja)
JP2883784B2 (ja) マイクロコンピュータ
JPH0437927A (ja) プロセッサの処理方法
JPH0550022B2 (ja)
US5574872A (en) Method and apparatus for controlling the saving of pipelines in pipelined processors during trap handling
JPS62221732A (ja) 情報処理装置
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
JPH03105527A (ja) パイプライン計算機におけるプログラムカウンタの構成方式
JPS62262146A (ja) 処理装置
JP2001014161A (ja) プログラマブルコントローラ
JPH06324861A (ja) Cpu制御システム及び制御方法
JP2000029696A (ja) プロセッサおよびパイプライン処理制御方法
JP3414579B2 (ja) プログラマブルコントローラ
JP3206394B2 (ja) 5段パイプライン構造のプログラマブルコントローラ
JPH01236327A (ja) 割込みマスク制御方法
JPH0333954A (ja) 情報処理装置
JPH0497433A (ja) ベクトル計算機
JPH04145531A (ja) マイクロプログラム制御装置
JPH05233288A (ja) 情報処理装置
JPH0784786A (ja) プログラム実行制御方法
JPH09231074A (ja) プログラマブルコントローラ