JP2982181B2 - 中央処理装置 - Google Patents

中央処理装置

Info

Publication number
JP2982181B2
JP2982181B2 JP1189402A JP18940289A JP2982181B2 JP 2982181 B2 JP2982181 B2 JP 2982181B2 JP 1189402 A JP1189402 A JP 1189402A JP 18940289 A JP18940289 A JP 18940289A JP 2982181 B2 JP2982181 B2 JP 2982181B2
Authority
JP
Japan
Prior art keywords
instruction
flag
operation result
execution
change
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
JP1189402A
Other languages
English (en)
Other versions
JPH0353323A (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.)
NEC Corp
Original Assignee
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP1189402A priority Critical patent/JP2982181B2/ja
Publication of JPH0353323A publication Critical patent/JPH0353323A/ja
Application granted granted Critical
Publication of JP2982181B2 publication Critical patent/JP2982181B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、中央処理装置(以下CPUという)に関し、
特に実行する命令の演算結果の状態によって、値が設定
される演算結果フラグの保護機能を有したCPUに関す
る。
〔従来の技術〕
中央処理装置では、算術演算命令や論理演算命令で行
なわれる演算の結果に基づいて設定される複数の演算結
果フラグを有している。演算結果フラグは、条件分岐命
令の条件としてチェックされ、フラグがセットされてい
れば分岐、あるいはセットされていなければ分岐という
ふうに、実行のシーケンスを演算結果によって動的に変
更することができる。
各演算結果フラグは、条件分岐命令によって単独にチ
ェックされるが、ひとつの演算命令によって複数の演算
結果フラグが同時に変化する。ただし、演算命令の種類
によっては、変化するフラグと、直前の値を保持するも
のとがある。各演算結果フラグのビットをひとつのデー
タの部分として扱う仮想的なレジスタが、プロセッサ・
ステータス・ワード(以下PSWという)である。
従来の中央処理装置の構成を示す第3図を参照しなが
ら、演算結果フラグの具体的な構成および動作について
説明する。ここでは中央処理装置300の中でも演算結果
フラグの構成ならびに動作に深く関係していない部分は
省略してある。
汎用レジスタ同志の演算命令の実行が指定されると、
複数の汎用レジスタから構成されるレジスタ・ファイル
(REG)308のうち、指定された一定のデータは内部デー
タ・バスD_busを経由して、もう一方のデータは内部デ
ータ・バスS_busを経由して、算術論理演算装置(ALU)
301の入力に転送される。
このALU301は、演算指定信号oprによって制御回路307
で指定される演算を行ない、得られた演算結果はデータ
バスを経由して、レジスタ・ファイル308内の汎用レジ
スタに書き戻される。ALU301で得られた演算結果は、指
定された演算の種類に応じて状態生成器(SGEN)302に
よって、状態信号S0〜S3を発生する。S0は結果を表現す
るデータのビット幅の中に結果が収まらないことを示す
状態、S1は結果を表現するデータのビット幅の最上位か
らキャリーあるいはボローが発生したことを示す状態、
S2は結果のすべてのビットが“0"すなわちゼロであった
ことを示す状態、S3は結果が負の数になったことを示す
状態である。これら状態信号S0〜S3は、制御回路307が
指定する演算、あるいはALU301の出力が変化すれば変化
してしまう。
複数の演算フラグ310〜313は、それぞれ状態信号S0〜
S3を保持するためのフラグであり、演算命令の実行終了
時に制御回路307で発生するストローブ信号STB0〜STB3
によって、状態信号S0〜S3をラッチする。Vフラグ310
はストローブ信号STB0によって状態信号S0を、Cフラグ
311はストローブ信号STB1によって状態信号S1を、Zフ
ラグ312はストローブ信号STB2によって状態信号S2を、
Sフラグ313はストローブ信号STB3によって状態信号S3
をそれぞれラッチする。
加算命令,減算命令では、制御回路307はストローブ
信号STB0〜STB3のすべてを発生し、Sフラグ313,Zフラ
グ312,Cフラグ311,Vフラグ310の各フラグがすべて変化
する。一方、論理積命令、論理和命令では、制御回路30
7はストローブ信号STB0,STB2,STB3を発生し、Sフラグ3
13,Zフラグ312,Vフラグ310の各フラグが変化し、Cフラ
グ311が変化しない。Sフラグ313,Zフラグ312,Cフラグ3
11,Vフラグ310の各フラグは、PSW303の一部としてデー
タバスに接続され、一本のレジスタとして読出し、書込
みを行なうことができる。
さらに、Sフラグ313,Zフラグ312,Cフラグ311,Vフラ
グ310の各出力は、条件分岐判定器(CCHK)304に接続さ
れ、制御回路307が指定する条件指定信号cndによって、
指定された条件と状態が一致しているかどうかを判定す
る条件一致信号mchを発生する。制御回路307は、条件分
岐命令の実行時、条件一致信号mchにより、分岐を行な
うか/行なわないかを判定する。
〔発明が解決しようとする課題〕
前述のように演算命令によって各演算結果フラグの変
化/非変化は決められているため、PSWを一時的に内部
レジスタあるいは、外部主記憶装置に保護する必要があ
る。
この演算の結果を条件分岐命令を用いてチェックする
前に、別の演算を行なっておく必要がある場合、第一の
演算で変化した演算結果フラグは、条件分岐命令の実行
の前に、第二の演算によって変化してしまうので、条件
分岐命令では正しくチェックを行なうことはできなくな
る。
具体例として、第4図(a)に示すような3ステップ
の処理を行なうフローチャートを実現する命令シーケン
スを考えてみる。ここで、AW,BWは汎用レジスタの名称
である。第一のステップは汎用レジスタBWの値を1イン
クリメントする処理、第2のステップは汎用レジスタAW
にBWの値を加え込む処理、第3のステップはBWの内容を
チェックしゼロであれば処理Bへ、ゼロでなければ処理
Aへ分岐するものである。
各処理ステップを機会語命令にそれぞれ置き換えたも
のを、第4図(b)に示す。第一の演算命令INC BWは
第1のステップに対応し、汎用レジスタBWの値を1イン
クリメントし、さらに演算結果に伴いS,Z,Vフラグを変
更する命令、第二の演算命令ADD AW,BWは第2のステッ
プに対応し、汎用レジスタAWにBWの値を加え、さらに演
算結果に伴いS,Z,C,Vフラグを変更する命令、条件分岐
命令JZ Bは第3のステップに対応し、Zフラグが“1"
にセットされていればB番地に分岐し、Zフラグが“0"
にリセットされていれば何もしない命令である。
第4図(b)の命令シーケンスをそのまま実行する
と、次のような誤り動作が生じる。条件分岐命令JZ B
がチェックするZフラグの値は、第1ステップに対応す
るINC BW命令の結果ではなく、第2ステップに対応す
るADD AW,BW命令の結果によるものである点がある。た
とえ、INC BW命令でZフラグがセットされたとして
も、JZ B命令の判断には使用されないため、第4図
(a)のフローチャートの動作を満足することはできな
い。
このような不具合を避けるために内部レジスタを使用
する方法としては、条件分岐命令以降で参照され、第2
の演算命令以前に設定されている値を保持している内部
レジスタ以外の内部レジスタに、一時的にPSWの値を退
避することが考えられる。
第4図(c)では、PSWの退避用に汎用レジスタCWを
用いた命令シーケンスを示す。ここでは、第二の演算命
令ADD AW,BWの直前に、PSWからCWにデータ転送を行な
うMOV CW,PSW命令を、直後にCWからPSWにデータ転送を
行なうMOV PSW,CWを用いている。この場合、内部レジ
スタの数が限定されている点、後に参照されているかど
うかをチェックし、退避用に割り当てる管理が繁雑であ
る点、PSWからあるいはPSWへの転送命令を数多く用意し
なければならないなどの欠点がある。
同様に、主記憶装置を使用する方法としては、第二の
演算命令の実行の直前に主記憶にPSWの内容を退避し、
第二の演算命令の実行直後に復帰させることが考えられ
る。
この場合、退避領域の管理を簡単化するため、スタッ
ク制御(LIFO形式)が取られるのが一般的である。
第4図(d)では、PSWの主記憶装置へのスタック形
式の転送命令(プッシュ命令)としてPUSH PSW命令
を、スタック形式の主記憶装置からPSWへの転送命令
(ポップ命令)としてPOP PSW命令を用いている。この
場合、単に一時的にPSWの値を保持するために、格納,
復帰のために2回の主記憶装置のアクセスを行なわなけ
ればならないため、オーバヘッドが大きくなるという欠
点がある。また、内部レジスタを使用するにしても、主
記憶装置を使用するにしても、格納,復帰の2命令を必
要とする点も、各コード数の増加,実行時間の増加から
みて得策ではない。
本発明の目的は、演算命令よりも前に実行するフラグ
制御命令によってフラグ変化をしないように指定するこ
とにより、少い命令数で高速に演算結果フラグの保護が
できるようにした中央処理装置を提供することにある。
〔課題を解決するための手段〕
本発明の構成は、実行する命令の演算結果の状態によ
って値が設定される演算結果フラグを有する中央処理装
置において、前記演算結果フラグの変化の禁止を制御す
る命令を実行することを検知する検知手段と、この検知
手段による検知結果により値が設定される保持手段と、
この保持手段の出力によって前記演算結果フラグのスト
ローブ信号をマスクするマスク手段とを有し、前記演算
結果フラグの変化の禁止を制御する命令の実行後、引続
く命令処理における通常の命令実行に対して、一命令の
実行期間前記演算フラグの変化を禁止するようにしたこ
とを特徴とする。
〔実施例〕
以下図面を参照して本発明を詳細に説明する。
第1図は、本発明の一実施例の構成を示すブロック図
であり、中央処理装置100のうち演算結果フラグに関連
した部分のみ記述している。PSW303を構成するVフラグ
310,Cフラグ311,Zフラグ312,Sフラグ313は、従来例と同
一の意味を示す。制御回路107は、実行する演算命令に
応じて各演算結果フラグ310〜313の変化を指定するスト
ローブ信号STB0〜STB3を発生するが、実際に各演算結果
フラグ310〜313に与えられる際に、二入力ANDゲート110
〜113によってマスクされる。二入力ANDゲート110〜113
の共通の入力は、フリップ・フロップ102の出力に接続
される。フリップ・フロップ102は、引続く演算命令の
実行終了時に演算結果フラグの変化を禁止する命令DISF
LGを実行したことを示すDISF信号によってリセットされ
る。ENDM信号は、従来例では省略したが、命令の実行が
終了したことを示すタイミング信号である。フリップ・
フロップ102は、終了タイミング信号ENDMと、インバー
タ103の出力の論理積を取る2入力ANDゲート101の出力
によってセットされる。このインバータ103の入力とし
ては、DISF信号が用いられる。
次に、本実施例の具体的な動作について説明する。
本実施例を用いて第4図(a)に示した処理を行なう
命令シーケンスを、次の第1表に示す。ここでは、第二
の演算命令ADD AW,BWの直前にDISFLG命令を置いている
点が従来と異なる。
まず、フリップ・フロップ102がセット状態にあると
仮定する。この状態では、二入力ANDゲート110〜113の
共通入力は常に“1"となるため、制御回路107が発生す
るストローブ信号STB0〜STB3は、そのまま演算結果フラ
グ310〜313に供給される。このため各演算結果フラグ31
0〜313は、演算命令の行なう演算の種類によってのみ、
変化するものが指定される。
次に、中央処理装置100がDISFLG命令を実行すると、
制御回路107はDISF信号を発生するため、フリップ・フ
ロップ102はリセットされる。このDISF信号の発生と同
時に、DISFLG命令の実行終了を示すタイミング信号ENDM
が発生するが、2入力ANDゲート101への一入力であるイ
ンバータ103の出力が“0"になるため、フリップ・フロ
ップ102のセット信号が同時に発生することはない。フ
リップ・フロップ102がリセットされることにより、2
入力ANDゲート110〜113の共通入力は“0"となり、DISFL
G命令に引続く演算命令でストローブ信号STB0〜STB3が
発生しても、演算結果フラグ310〜313にはまったく供給
されない。従って、演算命令を実行しても、演算結果フ
ラグ310〜313の内容は、演算命令実行前と変化すること
はない。
演算命令の実行が終了する際、フリップ・フロップ10
2はリセット状態であるが、制御回路107がタイミング信
号ENDMを発生すると、DISF信号は発生していないためイ
ンバータ103の出力は“1"となり、2入力ANDゲート101
の出力にはENDM信号と同一タイミングの信号が発生する
ため、フリップ・フロップ102は再びセットされる。
このように、第二の演算命令ADD AW,BWの直前にDISF
LG命令を実行することで、ADD AW,BW命令の実行による
演算結果フラグの変化を禁止することができるため、分
岐命令JZ Bは、第一の演算命令INC BWの実行結果に
よって変化した演算結果フラグの値を正しくチェックす
ることができる。
第2図は、本発明の第二の実施例の構成を示すブロッ
ク図であり、第1の実施例では、演算結果のフラグの変
化を禁止する命令DISFLGが、引続く1命令のみ影響を与
えることができたが、本実施例では、DISFLG命令が一度
実行されると、演算結果フラグの変化の禁止を解除する
命令ENAFLGが実行されるまで影響を与える。本実施例
は、第1の実施例に対して制御回路207がENAFLG命令を
実行したことを示す信号ENAFを発生する点、フリップ・
フロップ102がENAF信号によってセットされる点が異な
る。
フリップ・フロップ102は、DISFLG命令を実行するこ
とで発生するDISF信号によってリセットされ、ENAF信号
を発生するENAFLG命令が実行されるまで、リセット状態
を保持する。したがって、DISFLG命令の実行からENAFLG
命令の実行までの期間に実行されるすべての演算命令に
よる演算結果フラグの変更を禁止することができる。第
2表にDISFLG命令,ENAFLG命令の使用例を示す。DISFLG
命令,ENAFLG命令の間で挟まれたADD AW,BW、ADD BW,C
W、ADD CW,DWの実行による演算結果フラグの変化は、
すべて禁止される。
本実施例では、従来の情報処理装置において主記憶装
置を用いたPSWの退避/復帰のように、演算結果フラグ
の保護に2命令を必要とするが、主記憶装置のアクセス
が全く無いため、高速に保護が実現できる。
〔発明の効果〕
以上説明したように、本発明を用いることで、少ない
命令数で、主記憶装置のアクセスがない、高速に演算結
果フラグの保護を実現できるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、第
2図は本発明の別の実施例の構成を示すブロック図、第
3図は従来のCPUの構成例を示すブロック図、第4図
(a)〜(d)は従来例における演算結果フラグの保護
処理を説明するフローチャート、誤動作を生じる命令シ
ーケンス図、内部レジスタを用いた保護処理を行なう命
令シーケンス図および主記憶装置を用いた保護処理を行
なう命令シーケンス図である。 100,200,300……中央処理装置、101,110,113……2入力
ANDゲート、102……フリップ・フロップ、103……イン
バータ、107,207,307……制御回路、301……算術論理演
算装置、302……状態発生器、303……プロセッサ・ステ
ータス・ワード、304……条件判定器、305……バス・イ
ンターフェース、306……アドレス発生器、308……レジ
スタ・ファイル、310……演算結果(V)フラグ、311…
…演算結果(C)フラグ、312……演算結果(Z)フラ
グ、313……演算結果(S)フラグ。
フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 9/30 - 9/355 G06F 9/40 - 9/420 390

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】実行する命令の演算結果の状態によって値
    が設定される演算結果フラグを有する中央処理装置にお
    いて、前記演算結果フラグの変化の禁止を制御する命令
    を実行することを検知する検知手段と、この検知手段に
    よる検知結果により値が設定される保持手段と、この保
    持手段の出力によって前記演算結果フラグのストローブ
    信号をマスクするマスク手段とを有し、前記演算結果フ
    ラグの変化の禁止を制御する命令を実行後、引続く命令
    処理における通常の命令実行に対して、一命令の実行期
    間前記演算結果フラグの変化を禁止するようにしたこと
    を特徴とする中央処理装置。
JP1189402A 1989-07-21 1989-07-21 中央処理装置 Expired - Fee Related JP2982181B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1189402A JP2982181B2 (ja) 1989-07-21 1989-07-21 中央処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1189402A JP2982181B2 (ja) 1989-07-21 1989-07-21 中央処理装置

Publications (2)

Publication Number Publication Date
JPH0353323A JPH0353323A (ja) 1991-03-07
JP2982181B2 true JP2982181B2 (ja) 1999-11-22

Family

ID=16240688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1189402A Expired - Fee Related JP2982181B2 (ja) 1989-07-21 1989-07-21 中央処理装置

Country Status (1)

Country Link
JP (1) JP2982181B2 (ja)

Also Published As

Publication number Publication date
JPH0353323A (ja) 1991-03-07

Similar Documents

Publication Publication Date Title
US4961161A (en) Arithmetic processor performing mask and trap operations for exceptions
TWI808869B (zh) 硬體處理器及處理器
US4199810A (en) Radiation hardened register file
US5761491A (en) Data processing system and method for storing and restoring a stack pointer
JPH0414385B2 (ja)
US5410721A (en) System and method for incrementing a program counter
US4670836A (en) Device for detecting an overlap of operands to be accessed
US4460970A (en) Digital data processing system using unique techniques for handling the leading digits and the signs of operands in arithmetic operations
US4093983A (en) Fast and normal rate instruction fetching
JP2982181B2 (ja) 中央処理装置
JP2703884B2 (ja) データ書込み制御方式
US5931942A (en) Pipeline data processing apparatus of reduced circuit scale
EP0166772B1 (en) Improvements in or relating to computer systems
JPS6236575B2 (ja)
JP2557629B2 (ja) 割込方式
JPH0831033B2 (ja) データ処理装置
JP2671160B2 (ja) 例外処理方式
JP2671161B2 (ja) レジスタ干渉チェック方式
KR100246465B1 (ko) 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법
JP2707256B2 (ja) マイクロコンピユータ
JPS61143850A (ja) 処理装置
JPS59123055A (ja) 命令処理方式
JP2883488B2 (ja) 命令処理装置
JPS62156756A (ja) 浮動割込処理方法
JP2657947B2 (ja) データ処理装置

Legal Events

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