JPS645331B2 - - Google Patents

Info

Publication number
JPS645331B2
JPS645331B2 JP56149494A JP14949481A JPS645331B2 JP S645331 B2 JPS645331 B2 JP S645331B2 JP 56149494 A JP56149494 A JP 56149494A JP 14949481 A JP14949481 A JP 14949481A JP S645331 B2 JPS645331 B2 JP S645331B2
Authority
JP
Japan
Prior art keywords
address
data
microprogram
floating point
operand
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
Application number
JP56149494A
Other languages
English (en)
Other versions
JPS5851352A (ja
Inventor
Hideyuki Hara
Takayuki Morioka
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP56149494A priority Critical patent/JPS5851352A/ja
Publication of JPS5851352A publication Critical patent/JPS5851352A/ja
Publication of JPS645331B2 publication Critical patent/JPS645331B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/261Microinstruction address formation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 本発明は、マイクロプログラム制御のデータ処
理装置に係り、特に処理対象となるデータの内容
により処理方法が異なるようなデータを扱うデー
タ処理装置に関する。
データ処理装置が扱う数値データの形式には一
般的に固定小数点データ形式と浮動小数点データ
形式の2つがある。近年、浮動小数点データに対
して、これまでデータ処理装置毎に異なつていた
データ形式を、標準化しようとする動きがある。
たとえばIEEEにて作成された1つの標準化案と
しては、浮動小数点データ構造の枠内で正確に表
現される結果、あるいは1つの丸め誤差範囲内で
表わされる演算結果は、そのままユーザーに与え
るが、そうでない場合はユーザーに対し結果を与
えずに、その代り非数値的結果(メツセージ等)
を示して原因追求の助けをするという基本思想の
もとに、浮動小数点データ形式が定められてい
る。
上記のような考え方に立脚した浮動小数点デー
タ形式として下記を規定しているものがある。
(1) 正規化数 (2) 非正規化数 (3) ±0(ゼロ) (4) ±∞ (5) 未定義数 (6) 倍精度浮動小数点演算時の指数部ビツト長拡
張 一方、従来の一般的なデータ処理装置が扱う浮
動小数点データ形式としては、下記のものしか規
定されていない。
(1) 正規化数 (2) 非正規化数 (3) 0(ゼロ) また、浮動小数点データ形式の演算に対して
は、演算結果はオーバーフローあるいはアンダー
フローを発生する。すなわちデータ処理装置は、
浮動小数点演算を実行するときには、上記にて規
定されるデータであるか否かの判定や、オーバー
フロー、アンダーフローの判定が必要となる。
従来のマイクロプログラム制御のデータ処理装
置に於ては、上述した浮動小数点データのよう
に、データの内容により演算処理が異なる場合に
は、データの内容を示す条件信号をマイクロプロ
グラムが逐次判定できるようなハードウエアを備
え、演算中あるいは演算後に該ハードウエアを使
つて、マイクロプログラムが判定する方法をとつ
ていた。
この逐次判定の方法でも、従来の一般的な浮動
小数点データ形式においては、規定されているデ
ータの種類が前述のように少ないため、演算時間
の増加は招かなかつた。
ところが、前記の新しい浮動小数点データ形式
を採用すると、規定されているデータ形式の種類
がふえ、又それらの組合せも考えられるため、従
来のマイクロプログラム制御のデータ処理装置が
行つていた、データ種類や演算結果の異常判定を
逐次判定で行なう方法では、判定回数が増え、演
算時間の増加は避けられない。
本発明は、上記した従来技術の問題点にかんが
みてなされたもので、その目的は、処理の対象と
するデータの内容に応じて処理内容が多くの種類
に別れる場合にも高速な処理を行えるデータ処理
装置を提供するにある。
本発明の特徴は、第1図の概念図で示すよう
に、データ演算部401で処理されるデータある
いは演算結果そのものに関する種々の条件を検出
して符号化する第1の手段402と、その結果を
格納するためにマイクロプログラムアドレス制御
部403内に設けられた第2の手段404と、こ
の手段404の内容を次のマイクロプログラムの
アドレスとして選択して、マイクロプログラムメ
モリ406より所定の処理に必要なマイクロプロ
グラムを読み出す第3の手段405とを設け、上
記第1の手段により処理データの条件を逐次的で
はなく1マシンサイクルで検出して対応する処理
マイクロプログラムを直ちに取り出せるようにし
た点にある。
以下、本発明を浮動小数点の加算を例として詳
細に説明する。第2図は浮動小数点データのフオ
ーマツト例を示すもので、1ビツトの符号部S、
8ビツトの指数部E、及び23ビツトの仮数部Mと
から成つている。但し、浮動小数点数の表現する
値は指数部Eが0のときはS、Mの他に関係なく
値0を表現するものとする。尚、指数部Eが0で
あつても、S、Mの値が0でないと定義すること
ができることは云うまでもない。このことは浮動
小数点演算にあつては、常識である。かかる場
合、Eが0か否かの判定は不要となる。
第3図はこの浮動小数点データフオーマツトで
表現された2数を示しており、この2数の加算に
ついてまず従来の方法を第4図のフローチヤート
にもとづいて説明する。
まずステツプ301と302において、被加数D0
加数D1の指数部E0、E1が0かどうかという判定
を行う。条件が成立した場合には、それぞれ結果
はステツプ304あるいは303でD1あるいはD0を答
として終了する。ステツプ301、302での条件が両
者共に成立しない場合は、ステツプ305(は排他
的論理和)の演算を行い、次にステツプ306の判
定を行う。ステツプ306の条件(S2=0)が成立
しない場合は、被加数D0、加数D1の符号が異符
号であつたことを意味するから、ステツプ307の
減算処理ルーチンに入る。この減算ルーチンは
E0、E1、M0、M1の大小関係に応じて第4図と同
様なフローで処理されるが、ここでは簡単のため
省略する。
一方、ステツプ306の条件が成立した場合は次
にステツプ308の条件(E2=0)の成否判定を行
なう。該条件が成立している場合は、被加数、加
数の仮数部Mが桁合せ不要であるので、結果の符
号部はS0、指数部はステツプ310で得られるE2
仮数部は315で得られるM2となる。ステツプ
308の条件が下成立の場合は、次にステツプ309の
条件(E2>0)の判定を行ない、該条件が成立
している場合はステツプ311の処理、すなわち、
加数D1の仮数部M1をE2ビツト右シフトして桁合
せをし、ステツプ313で指数部E2をE0に等置して
からステツプ315での加算処理により仮数部M2
算出する。またステツプ309の条件が不成立の場
合は、ステツプ312において被加数D0の仮数
部M0を|E2|ビツト右シフトして桁合せを行い、
指数部E2をE1とおき、ステツプ315の加算処理に
より仮数部M2を算出する。
以上述べたように、従来のデータ処理装置にお
いては、データの条件1つ1つ(ステツプ301、
302、306、308、309)を逐次的に判定しているた
め、処理時間が長くなる。
これを解決するための本発明の実施例を以下で
説明する。第5図は本発明を適用したパイプライ
ン制御データ処理装置を示すブロツク図である。
主記憶装置(MMと略す)501は、主記憶制御
ユニツト(MCUと略す)502の制御を受けて、
高速バツフアメモリ(BMIと略す)503、同
(BMDと略す)504との間でデータの送受を
行う。バス540はアドレスバス、バス541は
データバスである。命令フエツチユニツト(IFU
と略す)505は、命令のアドレスを信号線52
7によつてBMI503に送出し、命令語の先行
読出しを行う。IFU502に取込まれた命令は、
命令デコードユニツト(DUと略す)509にオ
ペコード及びオペランド指定子単位に送られて解
読される。アドレス計算ユニツト(AUと略す)
510はDU509で解読されたアドレツシング
モードに従つてオペランドの実効アドレスを計算
し、オペランドフエツチユニツト(OFUと略す)
511に送る。OFU511はAU510から渡さ
れたオペランドのアドレスをBMD504に送出
してオペランドを先行フエツチする。BMD50
4は、OFU511から渡されたアドレスのデー
タを有する場合には、該データを直ちにOFU5
11に渡し、該当するアドレスのデータがない場
合にはMCU502を通してMM501をアクセ
スして、前記アドレスのデータを読出し、OFU
511に渡す動作を行う。実行ユニツト(EUと
略す)512は、OFU511からオペランドを
受取り命令を実行する。
この処理装置で、各ユニツトはほぼ独立に動作
することによつてパイプライン処理を行うことが
できる。なお本例ではパイプライン処理の構成を
第5図のようにしたが、もちろん、第5図の方式
だけに限定されることはなく、さらに別の方式も
あることはもちろんである。
次に本発明の実施例として、第5図の実行ユニ
ツト512に属する浮動小数点データ処理部を更
に詳しく記述した第6図、及び該実行ユニツト5
12内のマイクロプログラムアドレス制御部を更
に詳しく記述した第7図、及び本発明を適用した
場合の浮動小数点データの加算処理マイクロプロ
グラムフローチヤートを記述した第8図を用い
て、以下で本発明を説明する。
第6図の浮動小数点データ処理理ブロツク図に
おいて、第2図に示した被加数D0、加数D1のそ
れぞれ符号部、指数部、仮数部はレジスタ601
〜606の各々に図のようにセツトされたものと
する。この時最初のマシンサイクルでは、第8図
中のステツプ801の条件判定が次のように行わ
れる。すなわち、S0とS1の排他的論理和S2
SLOGIC部607で算出され、結果はレジスタ6
13に格納される。レジスタ603,604に格
納された指数部E0、E1は、それぞれセレクタ6
08,609を通り、指数演算部612でE2
E0−E1が算出され、結果は指数部レジスタ61
4に格納される。さらにステツプ801では、信
号線630,631にのつているE0とE1が比較
器616で比較されてその結果が符号化されたも
のが信号線620と621にのせられ、信号線6
30,631にのつているE0、E1が0であるか
どうかの判定回路617,618の出力が信号線
622,623にそれぞれのせられ、これらと信
号線619上のS2の値の計5ビツトが、第7図の
マイクロプログラムアドレス制御部内のレジスタ
625にマイクロプログラムアドレス制御部の動
きと同期してセツトされる。以上の条件判定機構
が第1図の符号化手段402に対応し、レジスタ
625が第2の手段404に対応する。
次に、第7図のマイクロプログラムアドレス制
御部は次に実行すべきマイクロプログラムのアド
レスを決定する論理を実行する部分である。すな
わち、マイクロプログラムアドレスセレクタ70
1(CSASELと略す。第1図の手段405に対
応)によつて選択されたマイクロプログラムアド
レスがマイクロプログラムアドレスレジスタ70
2(CSARと略す)にセツトされ、CSAR702
によつて指示されるアドレスの内容がマイクロプ
ログラムメモリ703(CSと略す)から読み出
され、この内容がマイクロ命令レジスタ704
(MIRと略す)にセツトされ、この内容により実
行ユニツトの動作が規定される。
CSASEL701の入力としては、現在実行中
のマイクロプログラムのアドレスを保持している
CSAR702の内容に加算器705によつて値1
だけ加算したアドレス709、マイクロプログラ
ムサブルーチンへジヤンプしたときの戻り番地を
保持しているSTACK706の内容710、命令
レジスタ707をデコーダ708によりデコード
した結果得られる該命令のマイクロプログラム先
頭アドレス712、マイクロプログラム分岐の場
合の分岐先アドレス711、及び第6図で示した
データ処理部の条件判定結果を格納しているレジ
スタ625の内容をマイクロプログラム分岐先ア
ドレス711の下5ビツトと入れ代えて挿入した
アドレス713がある。これらの入力に対する
CSASEL701の選択制御は、マイクロプログ
ラム中の1つのフイールドとして設けられている
制御情報714によりセレクト信号716の生成
及びSTACK706のスタツクポインタを保持す
るレジスタ715の制御を行う制御回路717に
より行われる。
上記のアドレス713について、第9図を用い
てさらに詳しく説明する。第7図のMIR704
に第9図のマイクロプログラムのアドレスb番地
の内容がセツトされ、該マイクロプログラムの制
御情報714がアドレス713の選択を指示して
おり、さらに、分岐先アドレス711が番地a
((下5ビツトは0)を指しているものとすると、
アドレス713としては、番地aの下5ビツトが
前のステツプでレジスタ625にセツトされてい
る5ビツトと置きかえられる。従つてレジスタ6
25の内容の5ビツトを数値とみて0〜31に対応
させると、a〜a+31番地までのどれか1つのア
ドレスを示すことになる。従つて、これによつて
指示されたマイクロプログラムを実行することに
より、演算結果の符号化された情報に従い、a〜
a+31のアドレスに格納されているマイクロプロ
グラムを選択して実行することになる。
以上のように、第8図のステツプ801の演算時
に得られる、第6図で説明したデータの符号化結
果をアドレスの一部として含むアドレス信号線7
13を選択することにより、第8図に示すよう
に、従来逐次的に判定していた種々の条件の組合
せによつて分岐先が多方向にわたる分岐を1度に
実行できる。
すなわち、E1が0である場合は処理303
(第4図と同じ、以下同様)、E0が0である場合
は処理304、E0、E1共に0でなくS2が0でな
い場合は処理307(減算ルーチン)、E0、E1
に0でなく、S2が0で、E2も0である場合には
処理804(第4図315と同じ)、805(S2
=S0、E2=E0)が実行される。また、E0、E1
に0でなくS2が0で、E2が正の場合は処理31
1(第4図と同じ)、315,808(S2=S0
E2=E0)、E0、E1共に0でなく、S2が0で、E2
負の場合は処理312,315,811(S2
S1、E2=E1)が実行される。但し、処理311,
312に於ける右シフトは、第6図の指数部の減
算の減算結果E2がセツトされているレジスタ6
14の内容に従い、M0あるいはM1をシフタ62
6,627によりシフトした結果をM0あるいは
M1に再セツトすることにより行われ、処理31
5(M2←M0+M1)はセレクタ160,611
を通して演算器MALU628によつて実行され、
その加算結果がレジスタ615にセツトされる。
なお、第6図でセレクタ608〜611で演算
結果レジスタ614,615を選択する場合、及
びレジスタ613をSLOGIC607に戻す場合等
は、例えば1つの加算結果と1個の入力D0(S0
E0、M0)との加算を行う時に対応する。
以上のように、本実施例によれば、減算ルーチ
ンにジヤンプする場合以外でみると、第4図の従
来の逐次判定法の最長パス301,302,30
5,306,308,309,311,313,
315の9ステツプが、第8図の場合には最長で
ステツプ801、311、315、808の4ステツプとな
り、大幅な処理の高速化が達成でき、ハードウエ
ア量は従来と大差がないもので実現できる。
また、減算ルーチンの内容は省略したが、この
場合を含めた他のデータ条件により多分岐するル
ーチンにおいても本発明が適用できることは明ら
かである。
本発明によれば、多分岐するルーチンにあつ
て、次の分岐先アドレス生成を、浮動小数点演算
処理と共に、実現でき、これにより、高速処理が
可能となつた。
【図面の簡単な説明】
第1図は本発明の原理的構成を示すブロツク
図、第2図及び第3図は浮動小数点データフオー
マツト例を示す図、第4図は従来技術による浮動
小数点データ加算のフローチヤート、第5図はパ
イプライン方式の処理装置の構成例を示すブロツ
ク図、第6図、第7図及び第8図は本発明の実施
例及びその動作例を示すフローチヤート、第9図
は本発明におけるマイクロプログラムの分岐説明
図である。 603……符号演算ユニツト、612……指数
部演算ユニツト、616……比較器、617,6
18……零判定回路、625……レジスタ、70
1……マイクロプログラムアドレスセレクタ、7
03……マイクロプログラムメモリ。

Claims (1)

  1. 【特許請求の範囲】 1 マイクロプログラム制御方式で浮動小数点演
    算を行うデータ処理装置において、 浮動小数点演算用のデータであつて符号部と指
    数部と仮数部とを各々有する被演算数及び演算数
    とから、浮動小数点演算を行うと共に、上記被演
    算数と演算数とを対比して、符号部の符号間の一
    致関係、指数部の指数値間の大小関係を検出して
    符号化する第1の手段と、 該手段で得られた符号化データを保持する第2
    の手段と、 以後の命令たる分岐命令実行に際し、マイクロ
    プログラムメモリから読出された分岐アドレスの
    一部を上記保持中の符号化データで置換し、該置
    換して得られる分岐アドレスを該分岐命令のアド
    レスとして選択する第3の手段と、 より成るデータ処理装置。 2 上記第1の手段は、符号間の一致関係、指数
    値間の大小関係の他に、それぞれの指数値が
    “0”か否かの検出をも行い、これらの検出結果
    から符号化を行うこととした特許請求の範囲第1
    項記載のデータ処理装置。
JP56149494A 1981-09-24 1981-09-24 デ−タ処理装置 Granted JPS5851352A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56149494A JPS5851352A (ja) 1981-09-24 1981-09-24 デ−タ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56149494A JPS5851352A (ja) 1981-09-24 1981-09-24 デ−タ処理装置

Publications (2)

Publication Number Publication Date
JPS5851352A JPS5851352A (ja) 1983-03-26
JPS645331B2 true JPS645331B2 (ja) 1989-01-30

Family

ID=15476369

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56149494A Granted JPS5851352A (ja) 1981-09-24 1981-09-24 デ−タ処理装置

Country Status (1)

Country Link
JP (1) JPS5851352A (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6049937B2 (ja) * 1977-10-12 1985-11-06 日本電気株式会社 マイクロプログラム制御のデ−タ処理装置

Also Published As

Publication number Publication date
JPS5851352A (ja) 1983-03-26

Similar Documents

Publication Publication Date Title
US5128890A (en) Apparatus for performing multiplications with reduced power and a method therefor
US4823260A (en) Mixed-precision floating point operations from a single instruction opcode
KR20190090817A (ko) 부동 소수점 수를 누산하기 위한 산술 연산을 수행하는 장치 및 방법
TWI526928B (zh) 向量浮點引數之減少
CN101438233A (zh) 用于反规范操作数的基于模式的乘法-加法处理器
JPH07225671A (ja) 結果正規化機構と動作の方法
US5440702A (en) Data processing system with condition code architecture for executing single instruction range checking and limiting operations
KR101528340B1 (ko) 부동 소수점 유닛에서 오버시프트의 빠른 검출을 위한 메카니즘
EP0328619B1 (en) Apparatus and method for using a single carry chain for leading one detection and for ''sticky'' bit calculation
US6216222B1 (en) Handling exceptions in a pipelined data processing apparatus
US7668892B2 (en) Data processing apparatus and method for normalizing a data value
EP0093430B1 (en) Pipeline data processing system
US4373182A (en) Indirect address computation circuit
US6237085B1 (en) Processor and method for generating less than (LT), Greater than (GT), and equal to (EQ) condition code bits concurrent with a logical or complex operation
US5764549A (en) Fast floating point result alignment apparatus
KR100307980B1 (ko) 산술 또는 논리 연산의 수행과 동시에 조건 코드 비트를 발생하는 방법 및 시스템
US5798952A (en) Leading bit anticipator
JPS60103482A (ja) ベクトル処理能力を有するデ−タ処理装置
JPS645331B2 (ja)
US6684232B1 (en) Method and predictor for streamlining execution of convert-to-integer operations
KR20210124347A (ko) 앵커 데이터 요소 변환
US4649478A (en) Operation code selected overflow interrupts
US4907185A (en) Program-controlled computer with an interrupt capability for floating-point operation
JP2591250B2 (ja) データ処理装置
JPS61282928A (ja) 浮動小数点演算装置