JPH04195629A - 演算フラグ生成装置 - Google Patents

演算フラグ生成装置

Info

Publication number
JPH04195629A
JPH04195629A JP2333125A JP33312590A JPH04195629A JP H04195629 A JPH04195629 A JP H04195629A JP 2333125 A JP2333125 A JP 2333125A JP 33312590 A JP33312590 A JP 33312590A JP H04195629 A JPH04195629 A JP H04195629A
Authority
JP
Japan
Prior art keywords
arithmetic
flag
operand
calculation
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.)
Pending
Application number
JP2333125A
Other languages
English (en)
Inventor
Toshiyuki Ochiai
落合 利之
Toshimichi Matsuzaki
敏道 松崎
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2333125A priority Critical patent/JPH04195629A/ja
Publication of JPH04195629A publication Critical patent/JPH04195629A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、例えばデータの加算や減算、比較等の演算機
能を有するマイクロプロセッサ等に適用され、演算実行
時にキャリやポローなとの演算フラグを生成する演算フ
ラグ生成装置に関する。
従来の技術 マイクロプロセッサ等には、演算処理を行う際に、加算
や減算などの演算の種類と、演算結果とに応じて、キャ
リやボローなどの演算フラグを生成する演算フラグ生成
装置が備えられている。
従来の演算フラグ生成装置としては、例えば特開昭57
−83851号公報に開示され、第4図にも示すものが
知られている。
第4図において、401は後述する命令レジスタ(IR
)402内の命令コードによって示される命令の実行を
命令制御ユニット412の制御に基づくマイクロプログ
ラムの実行によって行い、演算結果を図示しない演算結
果格納レジスタに格納するとともに、演算結果の状態を
状態保持レジスタ411に保持する演算実行制御ユニッ
ト、402は図示しない主記憶装置から読み出された命
令コードを保持する命令レジスタ、403は上記命令コ
ードに応じて定まる演算フラグ設定タイプを格納するメ
モリ(CTM) 、404は上記メモ+7403の内容
と状態保持レジスタ411の内容とを保持するアドレス
レジスタ(CCMAR)、405はアドレスレジスタ4
04によって示される領域に、対応する演算フラグがあ
らかじめ格納されているメモリ (CCM) 、406
はメモリ405から読み出された演算フラグを、後の命
令の実行によって新たな演算フラグが生成される時点ま
で保持するレジスタ(CC)、412は上記各部の動作
の制御を行うことにより、命令の遷移制御等を行なう命
令制御ユニットである。
このように構成された演算フラグ生成装置は、次のよう
な動作によって演算フラグの生成を行うようになってい
る。
まず、命令糾御ユニット412の制御によって、主記憶
装置から命令コードが命令レジスタ402に読み出され
、同時に演算実行制御ユニシト401が起動される。
そこで、演算実行制御ユニット401は命令レジスタ4
02内の命令コードに対応するマイクロプログラムの実
行、すなわち命令の実行としての演算を行う。演算が終
了すると、演算結果を演算結果格納レジスタに格納する
とともに、その演算結果の状態をハードウェアとしての
論理回路によって検出し、状態保持レジスタ411にセ
ットする。
一方、メモリ403からは、命令レジスタ402内の命
令コードまたはその特定フィールドをアドレスとして、
当該命令に対応する演算フラグ設定タイプが読み出され
る。より詳しくは、例えば加算命令が実行される場合に
は、演算によって最上位ビットからの桁上がりの有無に
応じてキャリフラグを設定することを示すデータが読み
出される。
さらに、命令制御ユニット412は、演算実行制御ユニ
ット401における命令実行の終了を検出すると、上記
メモリ403から読み出されている演算フラグ設定タイ
プと状態保持レジスタ411の内容とをアドレスレジス
タ404にセットし、上記アドレスレジスタ404の内
容をアドレスとしてメモリ405をアクセスして、読み
出された所定の演算フラグを演算フラグレジスタ406
にセットする。
発明が解決しようとする課題 ところで、近年のマイクロプロセッサ等においては、種
々のオペランドサイズについての演算を行う機能を有し
ているものがある□。この種の演算を行う場合には、演
算の結果生じる桁上げや演算結果の一部のビットがOで
あるか否かなどの状態の検出をオペランドのサイズに応
じて行い、演算フラグを生成する必要がある。すなわち
、例えばキャリフラグは各ディスティネーションオペラ
ンドのサイズにおける最上位のビットからの桁上がりの
有無に応じて演算フラグを生成しなくてはならない。
しかしながら、上記従来の演算フラグ生成装置では、演
算結果の状態の検出や、検出結果に基づく演算フラグの
生成を論理回路やメモリを用いたハードウェアによって
行うように構成されているため、種々のオペランドサイ
ズの演算について演算結果の状態の検出等を行うために
は、検出回路の規模、状態保持レジスタ411やアドレ
スレジスタ404のサイズ、およびメモリ405の容量
等を大幅に増大させる必要がある。
より具体的には、例えば基本データ長が32ビツトであ
る計算機において、ディスティネーションオペランドの
サイズが32ビツトである符号なし演算のキャリフラグ
を生成するためには、32ビツトの最上位ビットからの
キャリ(CO)のみを検出すればよい。
ところが、ディスティネーションオペランドが16ビツ
トである場合には、上位側から数えて17ビツト目から
16ビツト目へのキャリ (C16)および上位側から
数えて1ビツト目から16ビツト目までの全てのビット
が0であるか否かの情報(ZO)が必要であり、そのた
めの演算結果の状態検出回路を設ける必要がある。また
、状態保持レジスタ411のビット数を2ビツト増加さ
せるとともに、メモリ405の記憶容量も4倍にする必
要がある。
したがって、従来の演算フラグ生成装置では、種々のオ
ペランドサイズの演算について演算フラグを生成し得る
ようにするためには、ハードウェアの規模を大幅に増大
させる必要があるという問題点を有していた。
本発明は上記の点に鑑み、オペランドのサイズがが基本
データ長でない場合にも、演算フラグを生成することが
でき、しかもハードウェアの規模を小さく抑えることが
できる演算フラグ生成装置の提供を目的としている。
課題を解決するための手段 上記目的を達成するため、本発明は、演算結果を得るた
めの演算を行う演算手段と、オペランドのサイズが基本
データ長である演算に対して、演算結果の状態に応じて
演算フラグを生成する演算フラグ生成手段とを備えた演
算フラグ生成装置において、オペランドのサイズが基本
データ長でない演算を行う際に、前記演算手段に演算結
果を得るための演算とは別に演算フラグ生成のための演
算を行わせ、前記演算フラグ生成手段に演算フラグを生
成させる演算フラグ生成制御手段が設けられていること
を特徴としている。
作    用 本発明によれば、演算フラグ生成制御手段は、オペラン
ドのサイズが基本データ長でない演算を行う際に、演算
手段に演算結果を得るための演算とは別に演算フラグ生
成のための演算を行わせ、演算フラグ生成手段に演算フ
ラグを生成させる。
実施例 本発明の一実施例を第1図および第2図に基づいて説明
する。
第1図は演算フラグ生成装置が通用された基本データ長
が32ビツトの計算機の構成を示すブロック図である。
第1図において、101は命令レジスタ(TR)、10
2は命令解読器、103はセレクタ、104はアドレス
レジスタ(CMAR)、105はマイクロコードROM
、106はオペランドサイズデータ保持手段、107は
サイズ検出手段、108はオペレーションデータ保持手
段、109はオペレーション検出手段、110はフラグ
作成マイクロプログラム起動手段、120はフラグ作成
回路、121は演算器(ALU)、122は汎用レジス
タ群(GR)、123はテンポラリレジスタ群(TR)
、124はバレルシフタである。
上記命令レジスタ101は、図示しない主記憶装置から
読み出された命令コードを保持し、命令解読器102は
この命令コードを解読して、マイクロコードROM10
5に格納されたマイクロプログラムのエントリアドレス
を出力するようになっている。
セレクタ103は、上記命令解読器102、またはフラ
グ作成マイクロプログラム起動手段110から出力され
るエントリアドレス、およびアドレスレジスタ1,04
から出力されるアドレスのうちのいずれか1つを選択し
て出力するようになっている。
アドレスレジスタ104は、セレクタ103から出力さ
れたアドレスを保持し、保持したアドレスをマイクロコ
ードROM105の制御によりインクリメントして、ア
ドレスレジスタ104に入力するようになっている。
マイクロコードROMIO3は、命令を実行するための
マイクロプログラムが格納され、セレクタ103から出
力されるアドレスに応じてマイクロプログラムを実行し
、各部にコマンド信号を出力して各部の動作を制御する
ようになっている。
マイクロコードROM105は、また、オペランドサイ
ズデータ保持手段106に、ソースオペランドおよびデ
ィスティネーシ岬ンオペランドのサイズを示すオペラン
ドサイズデータを出力する一方、オペレーションデータ
保持手段10Bに、実行する命令の種類を示すオペレー
ションデータを出力するようになっている。
オペランドサイズデータ保持手段106は、マイクロコ
ードROM105から出力されるオペランドサイズデー
タを保持し、サイズ検出手段107は、上記オペランド
サイズデータに基づいて、オペランドサイズが例えば基
本データ長であるか、ハーフワードデータ長であるか、
またはバイトデータ長であるか等の検出を行い、サイズ
検出信号を出力するようになっている。
また、オペレーションデータ保持手段108ば、マイク
ロコードROM105から出力されるオペレージジンデ
ータを保持し、オペレーション検出手段109は、上記
オペレーションデータに基づいて、実行する命令の種類
を検出しオペレーション検出信号を出力するようになっ
ている。
フラグ作成マイクロプログラム起動手段110は、上記
サイズ検出信号、およびオペレーション検出信号に基づ
いて、オペランドサイズが基本データ長でない場合に、
そのサイズおよび命令に応じたフラグを生成するための
マイクロプログラムのエントリアドレスを出力するよう
になっている。
フラグ作成1路120は、後述する演算器121から出
力される演算結果状態信号と、オペレーションデータ保
持手段108から出力されるオペレーションデータとに
基づいて、演算フラグを生成するようになっている。
演算器121は、汎用レジスタ群122やテンポラリレ
ジスタ群123からのデータに対して、算術電電および
論理演算等の演算を行なうとともに、オペランドのサイ
ズが基本データ長である演算に対して、演算結果の状態
に応じて例えばキャリ信号等の演算結果状態信号を出力
するようになっている。
汎用レジスタ群122はレジスタA−Cが設けられて成
り、図示しない主記憶装置や演算器121からのデータ
を格納する一方、テンポラリレジスタ群123はレジス
タTRIおよびレジスタTR2が設けられて成り、演算
の途中結果などのデー多を一時的に格納するようになっ
ている。
また、バレルシフタ124は、汎用レジスタ群122等
からのデータに対して、命令に応じた所定のビット数の
シフトを行なうようになっている。
なお、計算機には上記の他にも種々の構成要素が設けら
れているが、本発明に直接関係ない部分は省略する。
上記の構成において、演算が行われる際の動作を、第2
図のステップ1に示すようにレジスタAに保持された基
本データ長である32ビツトのデータと、レジスタBに
保持されたハーフワードデータ長である16ビツトのデ
ータとを符号なし加電し、16ビツトの演算結果をレジ
スタCに格納するとともに、この演算結果に対応する演
算フラグを生成する場合を例にあげて説明する。
まず、主記憶装置から命令レジ□スタ101に上記オペ
ランドサイズの加電を示す命令コードが読み出されると
、命令解読器102によって命令コードに対応するマイ
クロプログラムのエントリアドレスが出力され、セレク
タ103を介してアドレスレジスタ104に保持される
とともに、マイクロコードROM105に入力される。
マイクロコードROM105は、セレクタ103を命令
解読器102からアドレスレジスタ104に切り換える
とともにアドレスレジスタ104に保持される値をイン
クリメントさせつつマイクロプログラムを実行し、以下
の処理を行う。
まず、命令に応したオペランドサイズデータ、およびオ
ペレーションデータを出力し、それぞれオペランドサイ
ズデータ保持手段106、およびオペレーションデータ
保持手段108に保持させる。
次に、第2図のステップ2に示すように演算器121等
を制御して加算処理を行い、演算結果をレジスタCに保
持させる。
一方、前記オペランドサイズデータ保持手段106に保
持されたオペランドサイズデータは、サイズ検出手段1
07に入力され、サイズ検出手段107は、ソースオペ
ランドが32ビツトと16ビツト、ディスティネーショ
ンオペランドが16ビツトであることを検出し、サイズ
検出データをフラグ作成マイクロプログラム起動手段1
10に出力する。
また、オペレーションデータ保持手段108に保持され
たオペレーションデータはオペレーション検出手段10
9に入力され、オペレーション検出手段109は、実行
する命令が加算命令であることを検出し、オペレーショ
ン検出信号をフラグ作成マイクロプログラム起動手段1
10に出力する。
そこで、フラグ作成マイクロプログラム起動手段110
は、まずオペランドのサイズに応じたマイクロプログラ
ムのエントリアドレスを出力し、このエントリアドレス
は、前記演算結果を求めるための加算処理が完了し時点
で、マイクロコードROM105の制御でセレクタ10
3が切り換えられることにより、マイクロコードROM
105に入力される。
上記エントリアドレスは、例えばオペランドサイズが基
本データ長である場合には、上記演算により演算器12
1から出力される演算結果状態信号に基づいて演算フラ
グを生成すればよいので、そのまま命令の終了を示すア
ドレスが設定される一方、基本デー、夕長でない場合に
は、そのサイズに応じた演算フラグを生成するための処
理のエントリアドレスが設定される。
ここでは、一方のソースオペランドとディスティネーシ
ョンオペランドとが16ビントなので、次のようなフラ
グ作成マイクロプログラムが起動される。
レジスタAのデータと数値FFFF0OOO(16進表
記。以下同し)とを演算器121に入力して論理和をと
り(ステップ3)、演算結果がooooooooでなけ
れば、すなわちレジスタAのデータの上位16ビツトが
すべて0でなければ、オーバフローを示す演算結果状態
信号を出力し、フラグ作成回路120はオーバフローフ
ラグをセットして命令の実行を終了する。
一方、レジスタAのデータの上位16ビツトがすべて0
であれば、レジスタA−Bのデータをそれぞれバレルシ
フタ124で左に16ビツトシフトして下位16ビツト
に0000を埋め込み、レジスタTRI・TR2に格納
する(ステップ4)。
次に、マイクロコードR,0M105はセレクタ103
にフラグ作成マイクロプログラム起動手段110からの
エントリアドレスを選択させる。このときには、フラグ
作成マイクロプログラム起動手段110は、オペレーシ
ョン検出手段109からの検出信号に基づいて、フラグ
作成用の加算処理を行うエントリアドレスを出力する。
そこで、演算器121はレジスタTR1・TR2のデー
タの加算を行って(ステップ5)、キャリの有無を示す
演算結果状態信号を出力し、フラグ作成回路120はこ
の信号と、オペレーションデータ保持手段108からの
オペレーションデータとに基づいて、キャリフラグを設
定する。
以上のように、オペランドのサイズが基本データ長の3
2ビツトでないときでも、32ビツトのデータに対して
演算結果状態信号の出力または演算フラグの設定を行う
演算器121とフラグ作成回路120とを用い、データ
にシフトやマスキングを施して演算フラグ生成用の演算
を行うことにより、オペランドサイズに応じた演算フラ
グが生成される。
なお、上記演算フラグ生成用の演算は、オペランドのサ
イズが基本データ長でないときに禁止できるようにして
もよい。
すなわち、フラグ作成マイクロプログラム起動手段11
0にフラグ生成イネーブル信号を入力し、フラグ作成マ
イクロプログラム起動手段110は、前記演算結果を求
めるための加算処理が完了したときに、オペランドサイ
ズが基本データ長でない場合でもフラグの生成が許可さ
れていなければ、そのまま命令の終了を示すアドレスを
出力するようにしてもよい。
上記フラグ生成イネーブル信号は、例えば第3図に示す
ように、所定の命令等によってフラグ生成イネーブルフ
ラグが設定される制御レジスタ130を設けて、この制
御レジスタ130から出力されるようにしてもよいし、
または外部から与えられるようにしてもよい。
このように構成することによって、オペランドのサイズ
が基本データ長でなくても、演算結果だけが必要な場合
であれば、演算フラグ生成用の演算等を行わないように
して、命令実行時間の増大を抑えることができる。
なお、上記の実施例においては、サイズ検出手段107
およびオペレーション検出手段109を設ケチ、オペラ
ンドのサイズまたは命令の種Ifヲ検出する例を示した
が、これにかぎらず、例えば演算器121に比較動作を
行わせて検出するようにしてもよいし、また、マイクロ
コードROMIO3から直接エントリアドレス等が出力
されるようにしてもよい。
また、演算結果を求めるための演算と演算フラグを生成
するための演算とは、いずれが先に行われるようにして
もよいし、また、複合して行われるようにしてもよいが
、種々のオペランドサイズや命令の種類に応じて、実行
時間が短く、かつ共通に用いられるルーチンが多くなる
ように設定することが好ましい。
また、実行頻度が小さいと考えられる命令に対してだけ
、上記のように演算フラグ生成用の演算等を行わせるよ
うにしてもよい。
発明の詳細 な説明したように、本発明によれば、オペランドのサイ
ズが基本データ長でない演算を行う際に、演算手段に演
算結果を得るための演算とは別に演算フラグ生成のため
の演算を行わせ、前記演算フラグ生成手段に演算フラグ
を生成させる演算フラグ生成制御手段を備えていること
により、オペランドのサイズが基本データ長でない場合
でも、そのような演算に対して演算結果の状態を検出す
る回路等を設けることなく演算フラグを生成することが
でき、したがってハードウェアの規模を小さく抑えるこ
とができるという効果を奏する。
【図面の簡単な説明】
第1図は演算フラグ生成装置が適用された計算機の構成
を示すブロック図、第2図は命令の実行の例を示す説明
図、第3図は変形例の計算機の構成を示すブロック図、
第4図は従来のフラグ生成装置の構成を示すブロック図
である。 103・・・セレクタ、105・・・マイクロコードR
OM、106・・・オペランドサイズデータ保持手段、
107・・・サイズ検出手段、108・・・オペレーシ
ョンデータ保持手段、109・・・オペレーション検出
手段、110・・・フラグ作成マイクロプログラム起動
手段、120・・・フラグ作成回路、121・・・演算
器 代理人  弁理士  中島 司朗 第2図

Claims (2)

    【特許請求の範囲】
  1. (1)演算結果を得るための演算を行う演算手段と、オ
    ペランドのサイズが基本データ長である演算に対して、
    演算結果の状態に応じて演算フラグを生成する演算フラ
    グ生成手段とを備えた演算フラグ生成装置において、 オペランドのサイズが基本データ長でない演算を行う際
    に、前記演算手段に演算結果を得るための演算とは別に
    演算フラグ生成のための演算を行わせ、前記演算フラグ
    生成手段に演算フラグを生成させる演算フラグ生成制御
    手段が設けられていることを特徴とする演算フラグ生成
    装置。
  2. (2)前記演算フラグ生成制御手段が、演算フラグの生
    成を禁止する信号に応じて、その作動を停止するように
    構成されていることを特徴とする請求項第1項記載の演
    算フラグ生成装置。
JP2333125A 1990-11-28 1990-11-28 演算フラグ生成装置 Pending JPH04195629A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2333125A JPH04195629A (ja) 1990-11-28 1990-11-28 演算フラグ生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2333125A JPH04195629A (ja) 1990-11-28 1990-11-28 演算フラグ生成装置

Publications (1)

Publication Number Publication Date
JPH04195629A true JPH04195629A (ja) 1992-07-15

Family

ID=18262574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2333125A Pending JPH04195629A (ja) 1990-11-28 1990-11-28 演算フラグ生成装置

Country Status (1)

Country Link
JP (1) JPH04195629A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06337783A (ja) * 1993-05-31 1994-12-06 Matsushita Electric Ind Co Ltd データ処理装置およびデータ処理方法
US6807625B1 (en) 2000-02-18 2004-10-19 Hewlett-Packard Development Company, L.P. Method and apparatus for efficiently generating, storing, and consuming arithmetic flags between producing and consuming macroinstructions when emulating with microinstructions
JP2014225285A (ja) * 2014-07-30 2014-12-04 ルネサスエレクトロニクス株式会社 データプロセッサ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06337783A (ja) * 1993-05-31 1994-12-06 Matsushita Electric Ind Co Ltd データ処理装置およびデータ処理方法
US6807625B1 (en) 2000-02-18 2004-10-19 Hewlett-Packard Development Company, L.P. Method and apparatus for efficiently generating, storing, and consuming arithmetic flags between producing and consuming macroinstructions when emulating with microinstructions
JP2014225285A (ja) * 2014-07-30 2014-12-04 ルネサスエレクトロニクス株式会社 データプロセッサ

Similar Documents

Publication Publication Date Title
JP3711422B2 (ja) 情報処理回路
US5481734A (en) Data processor having 2n bits width data bus for context switching function
JPH06332792A (ja) データ処理装置及びそのデータ読み出し制御回路,データ書き込み制御回路
US5787025A (en) Method and system for performing arithmetic operations with single or double precision
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
JP3701401B2 (ja) 飽和演算命令を有するマイクロプロセッサ
JPH0895804A (ja) 中央処理装置
US5938759A (en) Processor instruction control mechanism capable of decoding register instructions and immediate instructions with simple configuration
US5757685A (en) Data processing system capable of processing long word data
JPH0213333B2 (ja)
JP3578883B2 (ja) データ処理装置
US5410660A (en) System and method for executing branch on bit set/clear instructions using microprogramming flow
JP3556252B2 (ja) オフセット合計を計算するデータ処理システムとその方法
US6078940A (en) Microprocessor with an instruction for multiply and left shift with saturate
JP2551167B2 (ja) マイクロコンピュータ
JPH034936B2 (ja)
JPH08212075A (ja) 情報処理装置
JPH04195629A (ja) 演算フラグ生成装置
JP3570287B2 (ja) マイクロコンピュータ
JPH1091395A (ja) プロセッサ
JP2520882B2 (ja) デ−タ処理装置およびデ−タ処理方法
US6505225B1 (en) Adder logic circuit and processor
EP0265948B1 (en) Data processor capable of immediately calculating branch address in relative address branch
JP2557629B2 (ja) 割込方式
JP2922979B2 (ja) 中央演算処理装置