JPH04326126A - ディジタル計算機のレジスタファイルおよびそれを用いた命令実行方式 - Google Patents

ディジタル計算機のレジスタファイルおよびそれを用いた命令実行方式

Info

Publication number
JPH04326126A
JPH04326126A JP12192391A JP12192391A JPH04326126A JP H04326126 A JPH04326126 A JP H04326126A JP 12192391 A JP12192391 A JP 12192391A JP 12192391 A JP12192391 A JP 12192391A JP H04326126 A JPH04326126 A JP H04326126A
Authority
JP
Japan
Prior art keywords
register
flag
instruction
word
data
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.)
Granted
Application number
JP12192391A
Other languages
English (en)
Other versions
JP2707867B2 (ja
Inventor
Hiroaki Tomita
浩明 冨田
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP3121923A priority Critical patent/JP2707867B2/ja
Publication of JPH04326126A publication Critical patent/JPH04326126A/ja
Application granted granted Critical
Publication of JP2707867B2 publication Critical patent/JP2707867B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はディジタル計算機のレ
ジスタファイルおよびそれを用いた命令実行方式に関し
、特に、ディジタル計算機のCPU内部で使用されるレ
ジスタファイルとそれを用いた命令実行方式に関する。
【0002】
【従来の技術】CPUで処理される命令には、1サイク
ルで処理されるものもあれば、複数サイクルを必要とす
るものもある。アンド等の論理演算、加算(ADD)等
の演算は前者の例であり、メモリに対するロード/スト
ア(Load /Store)命令や、フローティング
ポイント(Floating Point) 演算は後
者の例である。
【0003】一般に、CPUは、プログラムに出現する
命令の順序に従って命令の実行を行う。この場合、複数
サイクルかかる命令が来ると、その次の命令が前の命令
の結果に依存しなくても前の命令の終了を待つことが必
要である。
【0004】しかしながら、この方式では、処理速度が
遅くなるため、前記のような場合には、複数サイクルを
要する命令の終了を待たずに、以降の命令を実行できる
ようにし、CPUの処理速度を向上させるようにした処
理方式が提案された。
【0005】この処理方式によると、複数サイクルを要
する命令Aを処理中に、それより後に出現する命令Bが
実行され、前記命令Aの終了より早く、命令Bの実行が
完了すると、CPUの内部状態は命令Aの実行の完了よ
り早く、更新されることになる。しかし、この方式では
、CPUの内部状態が更新された後に、命令Aに例外が
発生すると、CPUの内部状態を命令Aの実行時点に戻
し、再び命令Aをやり直さなければならなくなる。この
ため、その手当てをしておくことが必要になる。
【0006】近年、ハードウェアによる命令実行順序の
ダイナミックなスケジュールの代わりに、コンパイラに
よるスタティックなスケジュール(コンパイラが命令間
のリソースのコンフリクトを生じにくいような命令列を
生成する)が提案されている。
【0007】この提案の一具体例を図11を参照して説
明する。図において、61は各種の命令が格納されてい
る命令メモリ(インストラクションメモリ)、62はプ
ログラムに良く使用される命令が前記命令メモリから転
送されている命令キャッシュ、63はプログラムに従っ
て読み出された命令をデコードするデコーダである。
【0008】64は分岐命令を処理する分岐処理部、6
5は四則演算を実行するALU、66は複数ビットから
なるデータを左または右方向にシフトするシフター、6
7はロードまたはストア命令を処理するロード/ストア
処理部である。また、68はバッファ、69はデータキ
ャッシュ、70はデータメモリである。
【0009】さらに、71はシャドウレジスタファイル
(Shadow Register File)、72
はシークェンシャルレジスタファイル(Sequent
ial Register File)である。
【0010】73はCPUであり、前記デコーダ63、
ALU65、シフター66、ロード/ストア処理部67
、シャドウレジスタファイル71およびシークエンシャ
ルレジスタファイル72から構成されている。
【0011】前記の構成のCPU73において、通常は
シャドウレジスタファイル71とシークェンシャルレジ
スタファイル72には同じデータが格納されている。い
ま、プログラムが実行されてきて、1サイクルで処理で
きる命令、例えば加算(ADD)命令を実行する順序が
来たとすると、前記命令キャッシュ62から加算命令が
読み出され、デコーダ63でデコードされる。このデコ
ードの結果に従って、ALU65はシークェンシャルレ
ジスタファイル72からのデータに加算処理を施し、そ
の出力ラインを通って、シャドウレジスタファイル71
とシークェンシャルレジスタファイル72に同時に書き
込む。
【0012】一方、複数サイクルの処理を要するロード
命令の場合には、ロード処理部67はシークェンシャル
レジスタファイル72からのデータをバッファ68に転
送する。バッファ68はアドレスデータにより、データ
キャッシュ69をアクセスし、アクセスしたデータを一
旦シャドウレジスタファイル71に格納する。前記バッ
ファ68によりアクセスされるデータがデータキャッシ
ュ69にない場合には、データメモリ70がアクセスさ
れ、該データメモリ70から取り出されたデータが一旦
シャドウレジスタファイル71に格納される。
【0013】ロ―ド実行中に、ロ―ド命令以降の命令は
シャドウレジスタファイル71からデ―タを読み、分岐
処理部64、ALU65、シフタ66で処理を行い、そ
の結果をシャドウレジスタファイル71に格納する。
【0014】以上のような複数サイクルの処理の結果、
ロード命令の実行が終了すると、前記シャドウレジスタ
ファイル71に格納されていたデータが前記シークェン
シャルレジスタファイル72に転送され、該シークェン
シャルレジスタファイル72のデータを更新する処理が
行われる。
【0015】従来は、以上のような処理をしているため
、ロード命令の実行中に何らかの例外が生じ、再度ロー
ド命令をやり直さなければならない事態が発生した時に
は、シークェンシャルレジスタファイル72にはロード
命令の実行開始時のデータがまだ保存されているため、
再度ロード命令を実行することができる。
【0016】以上の方式を採用すれば、比較的少量のハ
ードウェアの追加によって、ダイナミックなスケジュー
ルと同等のサイクル数で、効率良く命令列を処理し、か
つダイナミックなスケジュールよりも短いサイクルタイ
ムのCPUを実現することができる。
【0017】
【発明が解決しようとする課題】しかしながら、前記の
従来技術では、シャドウレジスタファイル71とシーク
ェンシャルレジスタファイル72という、2つの異なる
レジスタファイルを必要とし、装置が高価になるという
問題があった。また、前記のように複数サイクルの処理
を行う時には、処理結果を一旦シャドウレジスタファイ
ル71に書き込み、その後書き込んだデータをシークェ
ンシャルレジスタファイル72に転送するという動作を
必要とし、処理速度が遅くなるという問題があった。
【0018】本発明の目的は、前記した従来技術の問題
点を解消し、安価かつ高速で処理できる、スタティック
なスケジュールを利用したCPUを提供することにある
【0019】
【課題を解決するための手段】前記目的を達成するため
に、請求項1の発明は、ディジタル計算機のCPUのレ
ジスタファイルであって、各々が同一の2つのレジスタ
から構成された複数のレジスタ語と、各レジスタ語の中
に設けられた、前記2つのレジスタの一方を選択するフ
ラグ(以下、Sフラグと呼ぶ)と、各レジスタ語の中に
設けられた、レジスタ語の状態を示すフラグ(以下、B
フラグと呼ぶ)と、全レジスタ語のBフラグをリセット
するリセット手段と、アドレス指定されたレジスタ語の
Bフラグの内容を必要に応じてセットするセット手段と
、Bフラグがセットされているレジスタ語のSフラグの
内容を必要に応じて反転する反転手段とを具備した点に
特徴がある。
【0020】請求項2の発明は、請求項1のレジスタフ
ァイルにおいて、複数サイクルを必要とする命令の実行
時に元のデータは前記レジスタ語の一方のレジスタに残
し、かつ命令の実行により得られたデータを他のレジス
タに格納し、次に後者のデータを用いて他の命令を実行
する時には、前記レジスタのデータを前記一方のレジス
タに転送することなく、そのまま用いるようにした命令
実行方式を提供した点に特徴がある。
【0021】
【作用】本発明によれば、プログラムの実行時において
、複数サイクルを必要とする命令、例えばロード命令の
実行時に、実行に供されるデータはレジスタ語の一方の
レジスタに残され、実行により得られたデータは他のレ
ジスタに格納される。そして、この他のレジスタに格納
されたデータは前記一方のレジスタに転送されることな
く、そのまま、後の命令の処理時に利用される。
【0022】以上の結果、命令の処理速度が従来より向
上する。また、先行処理後に、何らかの原因により、前
記複数サイクルを必要とする命令の再処理が必要になっ
た時には、前記一方のレジスタに処理前のデータが保存
されているので、この命令からプログラムの処理を速や
かに再開することができる。
【0023】
【実施例】以下に、図面を参照して、本発明を詳細に説
明する。まず、本発明のレジスタファイルの概要を図1
のブロック図を参照して説明する。本発明においては、
前記シャドウレジスタファイル71とシークェンシャル
レジスタファイル72に相当するレジスタファイルは、
1個もしくは複数個のレジスタ語1から構成されている
。各レジスタ語1は、2つのレジスタ2a、2bと、1
個のSフラグ3と、1個のBフラグ4とから構成されて
いる。
【0024】各レジスタ語1には、レジスタアドレスデ
コーダ5から、そのレジスタ語がアドレスされたことを
示すワード線6が接続されている。また、全レジスタ語
1は、少なくとも1本のデータバス7と、S反転信号9
と、ブースト(BOOST)10とを共有している。
【0025】ここに、データバス7にはレジスタ2a、
2bに記憶するデータあるいはレジスタ2a、2bから
読み出されたデータが往来する。S反転信号9はSフラ
グ3を反転する信号であり、ブースト信号10はプログ
ラム中の命令の性質を示す信号であり、該命令の開始と
終了が解離していることを示す信号である。換言すれば
、ブ―スト信号10は、命令が複数サイクルの処理を必
要とするものか否かを示すものである。
【0026】レジスタ2aと2bは、Sフラグ3から出
力されるセレクト信号8a又は8bが1で、ワード線6
上の信号が1の場合に、この条件を満たすレジスタから
データバス7にデータが出力されたり、逆にデータバス
7から該レジスタにデータが入力されたりする。
【0027】Bフラグ4は1ビットの状態をもつフラグ
で、ワード線6からの信号とブースト信号10とを入力
とし、Bフラグ4の状態をSフラグ3に対して出力する
。Bフラグ4は、ブースト信号10が0の時には、常に
0である。ブースト信号10が1の時には、ワード線6
が1でかつライト(Write、以下Wと略す)の場合
Bフラグは1となり、上記以外の場合にはBフラグは以
前の値を保持する。
【0028】Sフラグ3は1ビットの状態をもつフラグ
で、Bフラグ4の状態とS反転信号9を入力として受け
、2つのセレクト信号8a、8bをレジスタ語1内の2
つのレジスタ2a、2bに与える。前記2つのセレクト
信号8a、8bは互いに1の補数の関係、つまり一方が
0であれば他方が1であるという関係にある。
【0029】Sフラグ3はBフラグ4の値が1の時、B
フラグ4の値が0の時のSフラグ3の値を反転してセレ
クト信号8a、8bに出力するが、Sフラグ3の状態そ
のものは変化しない。Bフラグ4の値が1、かつS反転
信号9が1のときには、次のクロックサイクルになった
時にSフラグの状態が反転する。なお、この理由は図7
、図8に関する後程の説明で明らかになろう。
【0030】図2は、図1の構成をより具体的に表した
ブロック図である。図から明らかなように、レジスタフ
ァイルは、複数個のレジスタ語1から構成されており、
各レジスタ語1は、2つの行方向に配置された複数個の
3ポートレジスタセル12と、それぞれの行に対応する
2個のレジスタワード線ドライバ11から構成されてい
る。以後、これらを総称する時には、バンクA、バンク
Bと呼ぶことにする。
【0031】前記複数個の3ポートレジスタセル12の
行方向の個数はワード巾を示し、列方向の巾はワード数
を示している。また、各レジスタワード線ドライバ11
からはワードライン(word line) 15、1
6、17、18、…が伸び、それぞれ行方向に配置され
た3ポートレジスタセル12に入っている。一方、該3
ポートレジスタセル12の列方向には、前記データバス
7が伸びている。
【0032】一方、前記レジスタワード線ドライバ11
の入力側には、クロックΦ2、ライト信号W、セレクト
信号SelA、B、デスティネーションセレクト信号D
stSel、第1のソースセレクト信号Src1Sel
、および第2のソースセレクト信号Src2Selが入
力する。ここに、前記セレクト信号SelA、Bはバン
クA、Bを選択する信号であり、前記Sフラグ3から出
力される。前記DstSel信号は書込むレジスタを指
定する信号であり、前記Src1Sel信号およびSr
c2Selは読出すレジスタを指定する信号である。
【0033】また、前記クロックΦ2とライト信号Wは
ライン14から与えられ、DstSel、Src1Se
l、およびSrc2Selの各信号は、前記レジスタア
ドレスレコ―ダSに接続されたワード線6から与えられ
る。
【0034】図3に前記レジスタワード線ドライバ11
の一具体例の回路図、図4に前記3ポートレジスタセル
12の一具体例の回路図を示す。
【0035】図3は前記ワードライン15に接続された
レジスタワード線ドライバ11を示すが、他のワードラ
イン16、17、18、…に接続されたレジスタワード
線ドライバ11の構成も同一である。
【0036】図3において、21、22、23、27、
28、29および33はPチャンネルのMOS型FET
、24、25、26、30、31および32はNチャン
ネルのMOS型FETである。また、Φ2=0の時には
ワードライン15は書込みの有無を示し、Φ2=1の時
にはワードライン15は読出しの有無を示す。ライト信
号WはΦ2=0の時でかつ対応するレジスタ語に書込み
がある場合にのみ1となる。ライト信号WはΦ2=1の
時には絶対に1にはならない。読出しと書込みは時分割
で行われる。
【0037】前記FET21、22、23、24、25
、26および33はレジスタ書込み時にワードライン1
5を駆動し、FET27、28、29、30、31およ
び32はレジスタ読出し時にワードライン15を駆動す
る。
【0038】Φ2=1の時には、前記のようにW=0の
ため、FET23と24が共にオフになり、FET29
と30は共にオンになる。この時、FET27、28、
31および32は、SelAとSrc1Selを入力と
するナンドゲートを形成する。したがって、SelA=
Src1Sel=1であれば、ワードライン15は1と
なり読出しが行われる。
【0039】Φ2=0かつW=0の時には、FET30
がオフになり、FET24はオフ、FET33と23は
共にオンになるため、ワードライン15は0となり、書
込みは行われない。
【0040】Φ2=0かつW=1の時には、FET29
と30はオフ、FET33はオフ、FET24と23は
共にオンになり、FET21、22、25および26は
ナンドゲートを形成する。よって、SelA=DstS
el=1との時に、ワードライン15は1となり、書込
みが行われる。
【0041】図4は、前記3ポートレジスタセル12の
一具体例を示し、15、16はワードライン、34、3
5はNチャンネルのMOS型FET、36はレジスタセ
ルである。
【0042】書込み時には、ワードライン15、16は
共に1になり、ビット線37、38上のデータは同時に
レジスタセル36に書込まれる。一方、読出し時には、
ワードライン15、16は別々に1になり、ビット線3
7、38上に独立的にデータを読み出すことができる。
【0043】図2のBフラグ4はライト信号W、ブース
ト信号10およびDstSel信号を入力とし、Bフラ
グを出力する回路であり、その一具体例を図5に示す。 Bフラグ4は図示されているように、2個のアンドゲー
ト41、42と、1個のオアゲート43と、2つのラッ
チ44、45から構成されている。ライト信号WとDs
tSel信号を入力とするアンドゲート41は、対応す
るレジスタ語に書込みがなされていることを検出する。 また、2つのラッチ44と45はそれぞれクロックΦ2
とΦ1を用いてD型のフリップフロップ(D−FF)を
構成している。
【0044】図5の回路の入力信号である、ライト信号
W、ブースト信号10およびDstSel信号と、出力
信号であるBフラグとの関係は、図6に示すようになる
。この図から、ブースト信号10が0の時には、Bフラ
グは必ず0になり、ブースト信号10、ライト信号Wお
よびDstSelが共に1の時には、Bフラグが1にな
ることがわかる。すなわち、プログラム中の命令の開始
と終了が解離した状態にあり、かつ書込みの時に、Bフ
ラグが1になる。
【0045】次に、Sフラグ3について説明する。Sフ
ラグ3はBフラグとS反転信号9を入力とし、SelA
およびSelB信号を出力とするものであり、その一具
体例を図7に示す。
【0046】図示されているように、Sフラグ3は、2
個のラッチ51、52と、1個のインバータ53と、3
個のマルチプレクサ54、55、56と、1個のアンド
ゲート57から構成されている。2個のラッチ51、5
2は、それぞれクロックΦ2とΦ1を用いてD型のフリ
ップフロップを構成している。SelAとSelB信号
の極性は、互いに逆になっており、その極性は前記Bフ
ラグの極性により切替えられる。
【0047】また、Bフラグ=1、S反転信号=1の時
には、マルチプレクサ56の“1”の出力が選ばれ、イ
ンバータ53の出力である現状態を反転した信号が2個
のラッチ51、52からなるD型のフリップフロップに
入力する。そして、クロックΦ2とΦ1が入力すると、
前記D型のフリップフロップはこの信号をラッチし、前
記現状態を反転する。
【0048】図8は上記の動作を示す入出力信号テーブ
ルであり、D型のフリップフロップの出力である現状態
が“1”のとき、Bフラグ=0、S反転信号=0である
と、マルチプレクサ54と55はそれぞれ端子0を選択
し、SelA=1、SelB=0になる。逆に、Bフラ
グ=1、S反転信号=0であると、マルチプレクサ54
と55はそれぞれ端子1を選択し、SelA=0、Se
lB=1になる。
【0049】しかしながら、Bフラグ=1、S反転信号
=1であると、アンドゲート57の出力が1となって、
マルチプレクサ56はインバータ53の出力を選択し、
前記D型のフリップフロップに送るため、クロックΦ2
とΦ1が入力すると、前記D型のフリップフロップはこ
の信号をラッチし、前記現状態を反転する。
【0050】この結果、次にBフラグ=0、S反転信号
=0となると、SelA=0、SelB=1になる。逆
に、Bフラグ=1、S反転信号=0であると、SelA
=1、SelB=0になる。
【0051】以上のように、Sフラグ3は前記Bフラグ
の極性に応じて、SelA、SelBの極性を反転し、
またBフラグ=S反転信号=1となり、クロックΦ2と
Φ1が入力すると、前記SelA、SelBの極性はさ
らに反転する。
【0052】次に、本実施例の動作を、図9のプログラ
ムを実行する場合を例にして説明する。
【0053】図9のプログラムは、メモリロケーション
(n−1)にて、レジスタ語R2のデータとデータ0と
のアンドを取り、その結果をレジスタ語R2に格納する
というAND命令を行い、メモリロケーション(n+0
)にて、レジスタ語R2のデータをレジスタ語R1にロ
ードするロード命令を実行し、メモリロケーション(n
+1)にて、レジスタ語R2に1を加算し、レジスタ語
R2に格納するADD命令を実行し、メモリロケーショ
ン(n+2)にて、レジスタ語R1とR2の値を加算し
て、レジスタ語R5に格納するADD命令を実行すると
いうものである。
【0054】ここに、メモリロケーション(n+0)の
命令の実行には複数サイクルの処理を必要とする。また
、メモリロケーション(n+1)の命令の実行には、メ
モリロケーション(n+0)の命令で更新されるリソー
スR1を使わないので、前記ロード命令の完了を待たず
に実行することができる。また、その次の命令であるメ
モリロケーション(n+2)のADD命令は、前記リソ
ースR1を使うため、この時点で前記ロード命令が完了
していれば、このADD命令を実行し、完了していなけ
れば、ロード命令の完了を待って該ADD命令の実行に
移ることになる。  前記プログラムを実行する時の、
図2の回路の動作を、図10を適宜参照して説明する。 図10は図2の回路に入力する信号を、メモリロケーシ
ョンに対応させ、かつレジスタ語R1、R2別に表した
ものである。
【0055】前記プログラムの実行を開始する時には、
CPUはまず図2の回路をリセットし、全てのレジスタ
語に入力するブースト信号10を0にする。このリセッ
トにより、Sフラグ3はSelA、Bにより、バンクA
、Bのどちらを指してもかまわないが、ここでは全レジ
スタ語において、バンクAを指すものとする。S反転信
号9は、通常は0となっている。
【0056】前記プログラムのメモリロケーション(n
−1)のAND命令の実行時には、ブースト信号=0で
あるので、全部のBフラグは0であり、バンクAを選択
するSelAは1である。このため、AND命令の演算
結果である0は、レジスタ語R2のバンクA側のレジス
タに書込まれる。
【0057】メモリロケーション(n+0)のロード命
令の実行時には、図示されていないデコーダは該ロード
命令が複数サイクルの命令であることを検出し、次のサ
イクル以降ブースト信号=1とする。ロード命令自身に
関しては、ブースト信号=0であるため、レジスタ語R
2のバンクAからデ―タを読出し、読んだメモリデータ
をレジスタ語R1のバンクAに書込む。
【0058】メモリロケーション(n+1)のADD命
令は、前記ロード命令の完了に先行して実行される。こ
の時、ソースオペランドとしてのレジスタ語R2からデ
ータをリードするため、該データはレジスタ語R2のバ
ンクA側から読み出される。しかし、デスティネーショ
ンオペランドとしてのレジスタ語R2はライトであるか
ら、すなわちレジスタ語R2のDstSel=1、ライ
ト信号W=1であるから、レジスタ語R2のBフラグは
ここで1となる。
【0059】この結果、メモリロケーション(n+1)
の加算結果はレジスタ語R2のバンクBに書込まれる。
【0060】このADD命令の実行が終了した時点で前
記ロード命令が完了していない場合には、前記デコーダ
はメモリロケーション(n+2)のADD命令をデコー
ドする時に、レジスタ語R1が「使用中」であることを
検出し、ロード命令の完了を待つ。
【0061】一方、前記メモリロケーション(n+1)
のADD命令が完了した時点で、前記ロード命令が正し
く終わっていれば、CPUは1サイクルの間S反転信号
を1にし、その後、前記ブースト信号とS反転信号とを
共に0にセットする。これにより、前記レジスタ語R2
のSフラグが反転し、Bフラグにより指示されるバンク
は逆になる。すなわち、Bフラグ=0ならバンクBが参
照され、Bフラグ=1ならバンクAが参照されることに
なる。
【0062】メモリロケーション(n+2)のADD命
令では、レジスタ語R1のBフラグ=0、Sフラグ=1
のため、SelA=1となり、バンクAからデータが読
み出される。一方、レジスタ語R2のBフラグ=0のた
め、Sフラグ3のSelB=1となり、レジスタ語R2
はメモリロケーション(n+1)のADD命令で更新さ
れた値の入っているバンクBから読まれる。
【0063】したがって、レジスタ語R1のバンクAに
格納された前記メモリロケーション(n+0)の命令結
果は、メモリロケーション(n+2)において、該レジ
スタ語R1のバンクAから直接読み出されてADD演算
に供されることとなる。このため、本実施例では、従来
方式のように、複数サイクルの処理を要する命令により
得られた結果は、レジスタ間で転送されることがないの
で、その分処理速度が高速になる。
【0064】なお、前記ロード命令の完了を待った後に
ADDの実行をする場合も、前記と同様の動作をする。 すなわち、ロード命令の完了を待っている間に、Sフラ
グの反転が生じ、ブースト信号=0となる。
【0065】さて、前記メモリロケーション(n+0)
のロード命令の実行時に、ロード命令が、ページフォル
トやメモリエラー等で正しく完了しなかった場合には、
CPUは例外処理ルーチンに行き、しかるべき仕事をし
た後に、メモリロケーション(n+0)のロード命令を
再実行できなければならない。
【0066】このような事態が発生した時には、メモリ
ロケーション(n+1)のADD命令で、レジスタ語R
2の状態は既に更新されてしまっている。しかしながら
、本実施例では、レジスタ語R2の更新された値はバン
クBにあり、レジスタ語R2の更新前の値はバンクAに
残っている。
【0067】前記のような事態が発生し、ロード命令が
再実行されることになった時には、CPUは前記ブース
ト信号を0にセットする。この結果、Bフラグは全てリ
セットされ、このプログラム例で言えば、レジスタ語2
は再びバンクAから参照されるようになり、遅滞なく再
実行をすることができる。
【0068】なお、前記の実施例では、複数サイクルの
処理を必要とする命令がロード命令である場合について
説明したが、本発明はこれに限定されず、フローティン
グポイント(floating point) 演算や
、ブランチ命令に対する他の命令の先行実行にも適用す
ることができる。
【0069】
【発明の効果】以上の説明から明らかなように、本発明
によれば、複数サイクルの処理を必要とする命令の実行
によって得られた結果をあるレジスタに入れた後、この
結果を、従来方式のように、他のレジスタに転送するこ
となく後続のプログラムの処理を続行することができる
ので、CPUの処理速度を向上することができるという
効果がある。
【0070】また、複数サイクルの処理を必要とする命
令の後に続くプログラム中の命令が前者の命令の処理結
果を用いない場合には、後者の命令が前者の命令が終了
する前に実行される事になる。すなわち、先行実行が行
われる。この時、前者の命令が、正しく完了しなかった
場合には、本発明によれば、該命令の実行前のデータが
レジスタに保存されているので、該命令の再実行を何ら
の支障なく行うことができるという効果もある。
【0071】さらに、本発明によれば、バンクAとバン
クBのレジスタを同一の構成とすることができるので、
従事のように異なる2つのレジスタファイルが不要とな
り、構成を簡略化できると共に、安価に作成できる。
【図面の簡単な説明】
【図1】  本発明の構成の概要を示す機能ブロック図
である。
【図2】  図1のブロック図をより詳細に表したブロ
ック図である。
【図3】  レジスタワード線ドライバの一具体例を示
す回路図である。
【図4】  3ポートレジスタセルの一具体例を示す回
路図である。
【図5】  Bフラグを作成する回路の一具体例を示す
回路図である。
【図6】  図5の回路の入出力信号の関係を示す図で
ある。
【図7】  Sフラグを作成する回路の一具体例を示す
回路図である。
【図8】  図7の回路の入出力信号の関係を示す図で
ある。
【図9】  本発明の一実施例の動作を説明するための
、プログラムの一例を示す図である。
【図10】  前記プログラムを実行する際に、図2の
ブロック図に入力する信号をその実行段階毎に示した図
である。
【図11】  本発明の従来回路を示すブロック図であ
る。
【符号の説明】
1…レジスタ語、2a、2b…レジスタ、3…Sフラグ
、4…Bフラグ、5…レジスタアドレスデコーダ、6…
ワード線、7…データバス、8…セレクト信号、9…S
反転信号、10…ブースト信号、14…クロックΦ2お
よびライト信号。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  ディジタル計算機のCPUのレジスタ
    ファイルであって、各々が同一の2つのレジスタから構
    成された複数のレジスタ語と、各レジスタ語の中に設け
    られた、前記2つのレジスタの一方を選択するフラグ(
    Sフラグ)と、各レジスタ語の中に設けられた、レジス
    タ語の状態を示すフラグ(Bフラグ)と、全レジスタ語
    のBフラグをリセットするリセット手段と、アドレス指
    定されたレジスタ語のBフラグの内容を必要に応じてセ
    ットするセット手段と、Bフラグがセットされているレ
    ジスタ語のSフラグの内容を必要に応じて反転する反転
    手段とを具備したことを特徴とするディジタル計算機の
    レジスタファイル。
  2. 【請求項2】  複数サイクルを必要とする命令の実行
    時に、元のデータは前記レジスタ語の一方のレジスタに
    残し、かつ命令の実行により得られたデータを他のレジ
    スタに格納し、次に後者のデータを用いて他の命令を実
    行する時には、前記他のレジスタのデータを前記一方の
    レジスタに転送することなく、そのまま用いるようにし
    たことを特徴とする前記請求項1のディジタル計算機の
    レジスタファイルを用いた命令実行方式。
JP3121923A 1991-04-25 1991-04-25 ディジタル計算機のレジスタファイルおよびそれを用いた命令実行方式 Expired - Fee Related JP2707867B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3121923A JP2707867B2 (ja) 1991-04-25 1991-04-25 ディジタル計算機のレジスタファイルおよびそれを用いた命令実行方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3121923A JP2707867B2 (ja) 1991-04-25 1991-04-25 ディジタル計算機のレジスタファイルおよびそれを用いた命令実行方式

Publications (2)

Publication Number Publication Date
JPH04326126A true JPH04326126A (ja) 1992-11-16
JP2707867B2 JP2707867B2 (ja) 1998-02-04

Family

ID=14823264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3121923A Expired - Fee Related JP2707867B2 (ja) 1991-04-25 1991-04-25 ディジタル計算機のレジスタファイルおよびそれを用いた命令実行方式

Country Status (1)

Country Link
JP (1) JP2707867B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002543490A (ja) * 1999-04-27 2002-12-17 トランジティブ テクノロジーズ リミテッド プログラムコード変換において使用する例外処理の方法および装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54107645A (en) * 1978-02-13 1979-08-23 Hitachi Ltd Information processor
JPS6159533A (ja) * 1984-08-30 1986-03-27 Fujitsu Ltd 記憶装置アクセス制御方式
JPS63240633A (ja) * 1987-03-27 1988-10-06 Nec Corp 中央処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54107645A (en) * 1978-02-13 1979-08-23 Hitachi Ltd Information processor
JPS6159533A (ja) * 1984-08-30 1986-03-27 Fujitsu Ltd 記憶装置アクセス制御方式
JPS63240633A (ja) * 1987-03-27 1988-10-06 Nec Corp 中央処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002543490A (ja) * 1999-04-27 2002-12-17 トランジティブ テクノロジーズ リミテッド プログラムコード変換において使用する例外処理の方法および装置

Also Published As

Publication number Publication date
JP2707867B2 (ja) 1998-02-04

Similar Documents

Publication Publication Date Title
KR960003046B1 (ko) 비정렬 레퍼런스의 처리가 가능한 risc 컴퓨터 및 그 처리방법
US4896259A (en) Apparatus for storing modifying data prior to selectively storing data to be modified into a register
JPH0346850B2 (ja)
US4907147A (en) Pipelined data processing system with register indirect addressing
EP0334131B1 (en) Data processor performing operation on data having length shorter than one-word length
JP2707867B2 (ja) ディジタル計算機のレジスタファイルおよびそれを用いた命令実行方式
KR910001708B1 (ko) 중앙처리장치
JPS60195661A (ja) デ−タ処理システム
JPS6233603B2 (ja)
JPH0210454B2 (ja)
JP3043341B2 (ja) マイクロコンピュータシステム
JPS6235142B2 (ja)
JPH02153444A (ja) メモリ制御回路
JPH05173778A (ja) データ処理装置
JPS63293638A (ja) データ処理装置
JPH0546389A (ja) 並列処理装置
JPH02287732A (ja) レジスタアドレス生成装置
JPS629926B2 (ja)
JPH027129A (ja) 演算処理装置
JPH0553804A (ja) 並列処理装置
JPS62166463A (ja) デ−タ転送方式
JPH0412851B2 (ja)
JPH113592A (ja) 同期式ramのアクセス制御回路、データ処理プロセッサ及びその制御方法
JPH05210695A (ja) データ処理装置
JPH0576655B2 (ja)

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees