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

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

Info

Publication number
JP2707867B2
JP2707867B2 JP3121923A JP12192391A JP2707867B2 JP 2707867 B2 JP2707867 B2 JP 2707867B2 JP 3121923 A JP3121923 A JP 3121923A JP 12192391 A JP12192391 A JP 12192391A JP 2707867 B2 JP2707867 B2 JP 2707867B2
Authority
JP
Japan
Prior art keywords
register
instruction
flag
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.)
Expired - Fee Related
Application number
JP3121923A
Other languages
English (en)
Other versions
JPH04326126A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp 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

Landscapes

  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はディジタル計算機のレ
ジスタファイルおよびそれを用いた命令実行方式に関
し、特に、ディジタル計算機のCPU内部で使用される
レジスタファイルとそれを用いた命令実行方式に関す
る。
【0002】
【従来の技術】CPUで処理される命令には、1サイク
ルで処理されるものもあれば、複数サイクルを必要とす
るものもある。アンド等の論理演算、加算(ADD)等の演
算は前者の例であり、メモリに対するロード/ストア(L
oad /Store)命令や、フローティングポイント(Floati
ng 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はシークェンシャルレジ
スタファイル(Sequential Register File)である。
【0010】73はCPUであり、前記デコーダ63、
ALU65、シフター66、ロード/ストア処理部6
7、シャドウレジスタファイル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、16、17、1
8、…が伸び、それぞれ行方向に配置された3ポートレ
ジスタセル12に入っている。一方、該3ポートレジス
タセル12の列方向には、前記データバス7が伸びてい
る。
【0032】一方、前記レジスタワード線ドライバ11
の入力側には、クロックΦ2、ライト信号W、セレクト
信号SelA、B、デスティネーションセレクト信号D
stSel、第1のソースセレクト信号Src1Se
l、および第2のソースセレクト信号Src2Selが
入力する。ここに、前記セレクト信号SelA、Bはバ
ンクA、Bを選択する信号であり、前記Sフラグ3から
出力される。前記DstSel信号は書込むレジスタを
指定する信号であり、前記Src1Sel信号およびS
rc2Selは読出すレジスタを指定する信号である。
【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型FE
T、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、2
5、26および33はレジスタ書込み時にワードライン
15を駆動し、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)

    (57)【特許請求の範囲】
  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 JPH04326126A (ja) 1992-11-16
JP2707867B2 true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4709394B2 (ja) * 1999-04-27 2011-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムコード変換において使用する例外処理の方法および装置

Family Cites Families (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 中央処理装置

Also Published As

Publication number Publication date
JPH04326126A (ja) 1992-11-16

Similar Documents

Publication Publication Date Title
KR960003046B1 (ko) 비정렬 레퍼런스의 처리가 가능한 risc 컴퓨터 및 그 처리방법
US4222103A (en) Real time capture registers for data processor
JPH0346850B2 (ja)
JPS6231472A (ja) ビツト処理回路
US11830547B2 (en) Reduced instruction set processor based on memristor
JPH05342084A (ja) データ記憶装置及びデータ記憶方法
JP2707867B2 (ja) ディジタル計算機のレジスタファイルおよびそれを用いた命令実行方式
EP0334131B1 (en) Data processor performing operation on data having length shorter than one-word length
KR910001708B1 (ko) 중앙처리장치
US6282632B1 (en) Information processor having duplicate operation flags
US4747066A (en) Arithmetic unit
JPH08166880A (ja) コンピュータ
JPS60195661A (ja) デ−タ処理システム
JPH0210454B2 (ja)
JP2861560B2 (ja) データ処理装置
JPS6233603B2 (ja)
JPS6235142B2 (ja)
JPS59117640A (ja) データ処理装置のストア処理方法
JP3886314B2 (ja) データ転送回路及びその回路を用いた半導体集積回路装置
JP2573711B2 (ja) マイクロサブルーチン制御方式
JP3242474B2 (ja) データ処理装置
GB2042227A (en) Rear time capture registers for data processor
JPH05210695A (ja) データ処理装置
JPH0810443B2 (ja) メモリ制御回路
JPH06267278A (ja) 半導体記憶装置

Legal Events

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