JPH11110189A - 数値データ演算処理装置、その処理方法、コンパイラ装置、およびコンパイラを記憶した記憶媒体 - Google Patents

数値データ演算処理装置、その処理方法、コンパイラ装置、およびコンパイラを記憶した記憶媒体

Info

Publication number
JPH11110189A
JPH11110189A JP9266949A JP26694997A JPH11110189A JP H11110189 A JPH11110189 A JP H11110189A JP 9266949 A JP9266949 A JP 9266949A JP 26694997 A JP26694997 A JP 26694997A JP H11110189 A JPH11110189 A JP H11110189A
Authority
JP
Japan
Prior art keywords
numerical data
complement
numerical
data
arithmetic processing
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.)
Withdrawn
Application number
JP9266949A
Other languages
English (en)
Inventor
Yoji Yamada
洋史 山田
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.)
Mazda Motor Corp
Original Assignee
Mazda Motor 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 Mazda Motor Corp filed Critical Mazda Motor Corp
Priority to JP9266949A priority Critical patent/JPH11110189A/ja
Publication of JPH11110189A publication Critical patent/JPH11110189A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 +0と−0との区別が可能な数値データの演
算処理方法を提案する。 【解決手段】 符号部と数値部とにより表される数値デ
ータをコンピュータにより比較する数値データ演算処理
方法。比較対象の2つの数値データが負数であるか否か
を判断し、比較対象の2つの数値データが負数である場
合に、両数値データの数値部の2の補数を演算し、演算
された2の補数同士を比較する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、指数部と仮数部と
符号部とで表される、例えば浮動小数点表示の数値デー
タの演算処理装置、演算処理方法、さらには、そのよう
な数値データを使った数値演算プログラムのためのコン
パイラ装置、さらには、そのコンパイラを記憶した記憶
媒体に関する。
【0002】
【従来の技術】小数点表示(例えば固定小数点または浮
動小数点表示)の数値データRは、例えば、IEEEに
よって第1図に例示される如く規定され、 R=±M×2E …(1) として表現される。ここで、Mは仮数部を、Eは指数部
を表す。また、符号部の±はIEEE表記では(−1)
Sで表され、S=0ならばプラスを、S=1ならばマイ
ナスを表す。
【0003】所で、自動車などの例えばエンジン制御の
分野においては、所謂マッピング処理が多用される。こ
れは複雑な演算を前もって行っておき、「入力データ」
と「演算結果データ」とを対にしてテーブル化しておく
ものである。テーブル化はテーブルデータの参照を行う
だけで演算結果を得ることができ、実際の演算を省略す
ることができるので、高速化に寄与する。
【0004】しかしながら、テーブルを参照するために
は、実際の入力データの数値がテーブル中のどこにある
かを特定するために、テーブル中の「入力データ」欄を
サーチしなければならない。このサーチは通常比較をに
よって行われる。テーブルのエントリ数が例えば100
個有るならば、単純なサーチでは、最小で1回、最大で
100回、平均で50回の比較が必要となる。
【0005】従って、特に自動車のエンジン制御などは
高速化が要求されるので、上記マッピング処理における
高速化は急務である。上記(1)の表示により表された
2つの実数データ同士を例えば大小比較或いは論理判断
を行う場合には、一般的には、上記2つの実数の絶対値
(夫々の仮数部と指数部とによって表される)のみなら
ず符号部も併せて評価する。負の実数が含まれる場合に
は、符号によって大小判断を反転させねばならない場合
があるからである。
【0006】第2図は、正の実数同士或いは負の実数同
士の比較における数の大小を概念的に示すグラフで、正
の実数では絶対値が大きいほど大きな値を有し、負の実
数では絶対値が大きいほど小さな値を示すことを意味す
る。
【0007】
【発明が解決しようとする課題】即ち、従来では、比較
対象の2つの実数の夫々の符号の値を場合分けして判断
を行っていたのである。この場合分けの判断が従来では
数値演算データの比較において高速化の足枷となってい
た。この問題を解消するために、例えば特開平4−62
632号では、2進数で表された2つの実数の夫々の仮
数部の比較を行うに際して、仮数部の二進値を反転(即
ち、1の補数)を演算して、この補数同士を比較してい
た。この方法によれば、負の実数も、大きい順(即ち、
補数演算前の実数値の絶対値の小さな順)に並び、負の
数同士の大小比較において、絶対値(補数処理後の数値
の絶対値)の判断のみによって正しい判断を行うことが
できるという長所がある。
【0008】第3図は、特開平4−62632号による
負の実数の反転(補数処理)を第1図の負の実数に施し
た場合を示す。第4図に、特開平4−62632号によ
る補数処理を一例として、−1〜+7迄の数値に対して
行った場合の結果を示す。第4図からも分かるように、
反転された1の補数値には同じ数が存在しないので、符
号部を参照することなく大小比較を行うことができる。
この点で、特開平4−62632号は大小比較などの演
算を高速に行うことができる。
【0009】ところで、第2図から明らかなように、ゼ
ロ以外の実数は同じ絶対値を有する2つの実数値(即
ち、正の数値と負の数値)が存在するが、ゼロには、正
のゼロも負のゼロも存在しない。ところが、小数点数値
データは符号部を有するために、実際の演算過程で処理
される過程で、+ゼロと−ゼロとが発生し得る。従っ
て、第4図の表は実際には第5図のようになる。即ち、
第5図の表において、+0の000と、−7の補数であ
る000とが同じであるので大小判断ができない。従っ
て、この場合には、特開平4−62632号は大小判断
の対象となる2つの実数に対して場合分けを行う処理を
加える必要があり、やはり高速化の足枷になっていた。
【0010】そこで、本発明は斯かる従来技術の問題点
に鑑みてなされたもので、その目的は、+0と−0との
区別が可能な数値データ演算処理装置、処理方法、コン
パイラ装置、コンパイラを記憶した記憶媒体を提案する
ことにある。
【0011】
【課題を解決するための手段】上記の目的を達成すべ
く、本発明の請求項1に記載の、符号部と数値部とによ
り表される数値データを比較する演算処理装置は、比較
対象の2つの数値データが負数であるか否かを検出する
手段と、比較対象の2つの数値データが負数である場合
に、両数値データの数値部の2の補数を演算する補数演
算手段と、数値部の2の補数を比較する手段と、を具備
すること特徴とする。
【0012】同じく、上記課題を達成するための、本発
明の、符号部と数値部とにより表される数値データをコ
ンピュータにより比較する数値データ演算処理方法は、
比較対象の2つの数値データが負数であるか否かを判断
し、比較対象の2つの数値データが負数である場合に、
両数値データの数値部の2の補数を演算し、演算された
2の補数同士を比較する、こと特徴とする。
【0013】これらの装置および方法によれば、比較対
象の数値の2の補数が演算されるので、+0と−0を区
別可能となり、2つの数値が+0と−0であったとして
も、比較結果としてイコールを出力することができる。
本発明の好適な一態様に拠れば、前記数値データは、数
値部が仮数部と指数部とからなる少数である。
【0014】本発明の好適な一態様に拠れば、入力の数
値データは二進数に変換され、全てのビットを反転し、
1を加算することにより2の補数が得られる。2の補数
の演算がより簡単になる。本発明の好適な一態様に拠れ
ば、比較対象の2つの数値データはマップ中のデータで
あると、マップデータの検索が高速にできる。
【0015】本発明の好適な一態様に拠れば、比較は2
の補数の絶対値を比較することによる。本発明の好適な
一態様に拠れば、補数演算は、指数部の2の補数を演算
してもよい。大小の比較が容易である。本発明の好適な
一態様に拠れば、補数演算は、仮数部の2の補数を演算
してもよい。大小の比較が容易である。
【0016】本発明の好適な一態様に拠れば、補数演算
は、仮数部と指数部の合成数の2の補数を演算してもよ
い。大小の比較が容易である。上記課題は、数値データ
を演算処理するコンピュータプログラムを翻訳するコン
パイラ装置二よっても達成できる。このコンパイラ装置
は、ソースプログラム中に比較文を検出する手段と、検
出された比較文のオブジェクトコードとして、比較対象
の2つの数値データの正負を検出するコードと、前記数
値データの2の補数値を生成するコードとを生成する生
成部とを具備することを特徴とする。
【0017】上記課題は、数値データを演算処理するコ
ンピュータプログラムを記憶する記憶媒体を提供するこ
とによっても達成できる。かかる記憶媒体は、ソースプ
ログラム中に比較文を検出する第1のプログラムコード
と、検出された比較文のオブジェクトコードとして、比
較対象の2つの数値データの正負を検出するコードと、
前記数値データの2の補数値を生成するコードとを生成
する第2のプログラムコードとを記憶することを特徴と
する。
【0018】
【発明の実施の形態】以下、添付図面に基づき、本発明
に基づいた比較方法並びに演算処理等を適用した好適な
実施形態を説明する。 〈原理〉第6A図は、本発明を、符号部と数値部とを有
する数値データの比較に適用した場合の、その数値デー
タの変換を説明する。即ち、本発明では、比較対象とな
る数値データの2の補数を演算する。第6図から明らか
なように、+0と−0との比較に対して“イコール”の
結果を出力する。換言すれば、+0と−0を混同するこ
となく区別することができる。
【0019】第6B図に、“−56”,“−12”,
“8”を例にして、従来の補数の演算と本実施形態によ
る2の補数の演算との対比を説明する。このように、本
発明の数値データの演算処理は、比較処理において、比
較対象の数値データに対して2の補数処理を行い、この
補数処理を行った数値データ同士を比較する点に特徴が
ある。
【0020】この「2の補数処理」を、ユーザが自分で
プログラムとして組む方法と、コンピュータ内のハード
ウエア(マイクロコードを含む)に組み込む方法と、コ
ンパイラが「2の補数処理」のプログラムコードを自動
的に生成してオブジェクトコードに付加する方法とがあ
る。特に、後の2つの方法は、ユーザから、「2の補数
処理」のプログラム作成の負担を軽減するメリットがあ
る。
【0021】また、本発明の比較方法は、符号部と数値
部とを有するデータで有れば、いかなるコンピュータの
データ形式にも適用可能である。以下、さらに添付図面
に基づき、本発明に基づいた比較方法並びに演算処理等
を浮動小数点表示の数値データの演算に適用した具体的
な実施例を詳細に説明する。尚、本発明の表記を適用し
た数値データは、浮動小数点データに留まらず、固定小
数点データを浮動小数点データに変換する際にも適用可
能である。
【0022】この実施例の浮動小数点データ表示による
演算処理装置は、本出願と同じ発明者による特願平9−
209316号の演算処理装置に、本発明の比較方法を
適用したものである。
【0023】
【実施例1】本発明の演算処理装置は、本質的にはX進
データに適用可能である。コンピュータ内部では、通
常、2進形式のデータを取り扱うので、実施形態の下記
の(2)式はX=2の場合に有用性を発揮する。但し、
本明細書の以下の説明では、2進形式よりも10進形式
の方が説明が容易なので、X=10として説明する。
【0024】第7図は、第1実施例における浮動集数点
データの標記方法を説明する。即ち、本実施例の表記に
よると、実数型の浮動小数点データRは、
【0025】
【数1】
【0026】…(2) と表される。ここで、Mは仮数部を、Sは符号部を、X
は底を表す。M,S,Xについては従来の表記方法と同
じである。また、Bを本明細書では「基数部」と呼び、
Eを「指数部」と呼ぶ。(XBE=XB×Eであるから、
B×Eは従来の形式における指数部に対応する。尚、本
明細書では、従来の指数部に対応するB×Eを、本実施
例の指数部Eと区別するために、「指数」と呼ぶことと
する。
【0027】上記(2)式において、仮数部Mと指数部
とからなる、M*(XBEが、本発明の「数値部」に相
当する。本実施例の表記形式によれば、 B>E modulo B …(3) となる。例えば、ある2つの数値データR1とR2の指数
が“24”と“30”である場合には、B=6とすれ
ば、E1=4であり、E1=5である。
【0028】(2)式の形式の数値データをコンピュー
タのハードウエアレジスタに格納するためには、そのレ
ジスタは、例えば、第8図のように、4つのフィールド
から構成されるようにすればよいことになる。勿論、ハ
ードウエアレジスタの代わりに、ソフトウエアがメモリ
上に同様のレジスタを定義しても同じ結果が得られる。
【0029】第1実施例の特徴は、比較処理において
「2の補数処理」を行う点に加えて、プログラム又はプ
ログラマは演算対象の複数の数値データについての基数
部Bの値を共通に設定することを許すことが出来る点に
ある。即ち、ある応用プログラム或いはそのプログラム
中の特定のプロセジャは、基数部Bに同じ値(例えば、
0)を宣言するようにする。すると、任意の実数R1
2は、
【0030】
【数2】
【0031】…(4)
【0032】
【数3】
【0033】…(5) で表される。2つの数値について、基数部Bを共通に設
定すれば、E1,E2は整数なので、指数B・E1とB・
2とは、必ず、B0の倍数となる。今、ここで、実数R
1,R2が、 B0・E1>B0・E2 であるような浮動小数点であったとする。実数値R1
2を加減算するには、底Xの指数の値を一致させなく
てはならないから、そのために、数値R2の指数を数値
1の指数に一致させるように、仮数M2を右方向にシフ
トする。そのシフト動作の結果、数値R2は、
【0034】
【数4】
【0035】…(6) となったとする。R2の仮数部Mをシフトした結果、M2
はM2となり、 B・E1=B・E3 即ち、E1=E3となる。上述のシフト量は、 B×(E3−E2)桁 …(7) であり、即ち、Bの倍数であるB×(E3−E2)桁だけ
シフトすればよい。
【0036】本実施例の表記が高速な演算を保証するた
めには、B×(E3−E2)が小さな値に最適化すること
である。即ち、1つのプログラム内で、互いに加減乗
除、或いは論理演算される関係にある数値データについ
て、その数値データの入力時点での桁数に基数部Bを合
わせれば、シフト無しで、加減算や論理比較を行うこと
が出来る確率が高くなり演算速度が向上する。また、同
じプログラム内の他の手続部分で異なる桁数の入力デー
タが発生すれば、その手続部分で、新たに基数部Bの値
を設定すればよい。
【0037】また、基数Bは、入力データの有効数字の
桁数(二進データの場合はビット数)に一致させてもよ
い。第9図は、前述の(2)式の形式で表現される浮動
小数点数値データの演算をアセンブラベースで行うシス
テムの適用例の構成を示す。即ち、同図のシステムは、
浮動小数点データの演算を行う専用のハードウエアを持
たずに、ソフトウエアにより擬似的に浮動小数点演算を
行うものであるために、プログラマは、上記表記を良く
理解していること、浮動小数点データの加減乗除は、第
8図の形式で表されたデータの加減乗除となること、こ
のために、基数部Bの値を何に合わせるべきかを熟知し
ていること、更に、前述の「2の補数処理」プログラム
を組み込むことを前提とする。
【0038】第9図の例では、「2の補数処理」プログ
ラムは、ユーザによって記述され、コンパイルされて、
そのオブジェクトコードはメモリ6内に格納される。第
8図のデータ形式に従って、例えば、浮動小数点データ
1,R2の加減算は、E1B=E2Bであれば、S1,S2
に従ったM1とM2の加減算を行えばよい。また、E1
≠E2Bであれば、E1B=E2Bとなるように、仮数部
1またはM2のシフトを行って新たな仮数部M1または
2を生成してから、S1,S2に従った仮数部M1または
2の加減算を行う。
【0039】前述したように、最適化を行っていれば、
1B−E2Bは小さな値であることが予想され、演算結
果が高速に得られる。一方、乗算(R1×R2)は、第8
図のレジスタRにおいて、 仮数部M=M1×M2 指数部E=E1+E2 符号部S=S1 EXORS2 基数部B=B0 となるように、プログラムを作成する。除算(R1
2)については 仮数部M=M1/M2 指数部E=E1−E2 符号部S=S1 EXORS2 基数部B=B0 となるようなプログラムを作成する。
【0040】一方、比較処理を行う場合には、浮動小数
点データは、仮数部Mと指数部Eとにより構成されるか
ら、「2の補数処理」は、仮数部Mの数値と指数部Eの
数値の双方に対して行わなくてはならないから、このよ
うな2の補数処理のプログラムを生成してメモリ9内に
格納する。尚、この第1実施例では、2つの実数間で指
数部Eの数値を一致させることは、(XBE の標記を
用いることにより容易である。この特徴を利用すると、
本発明の比較処理における「2の補数の演算処理」は、
指数部が一致した2つの数値データにおいて、仮数部と
指数部とを連続した二進値で表し、この二進値の2の補
数を演算しても良い。即ち、本実施例では、指数部Eと
仮数部Mと基数部Bとを連続して31ビットの1つの二
進数と見なし、この31ビットの二進数を反転し、更に
1を足すことにより2の補数を演算するのである。この
31ビットの1つの二進数は元の数値と異なる値を有す
るが、大小比較においては値の絶対値が問題とならない
ので、上記の見なし処理に不都合は発生しない。
【0041】
【実施例2】本発明の実施形態の数値演算処理装置は、
オブジェクトコンピュータが浮動小数点演算のハードウ
エアを有する場合についても適用できる。第10図は、
そのオブジェクトコンピュータの構成を示す。第10図
において、加減算ユニット(ALU)23は、加減算、
及び、シフト演算、比較演算などの機能を有する周知の
ユニットである。このユニットには2つの入力レジスタ
21,22と1つの出力レジスタ24とが接続されてい
る。
【0042】第10図のシステムの特徴は、IEEE形
式の浮動小数点データ又は整数データの入力を許容す
る。入力が整数データであれば、整数データ形式で加減
算を行って、整数データ形式で出力し、入力がIEEE
形式の浮動小数点データ形式であれば、変換器20によ
り(2)式の形式の数値データに変換して、ALU23
により加減算を行い、加減算の結果を変換器25により
IEEE形式の浮動小数点データに戻して出力する。
【0043】変換器20は、第11図の構成のハードウ
エアを有する。即ち、式(2)の形式へのフォーマット
変換を行うユニット20aと、フォーマット変換された
31ビットのデータ(指数部Eと仮数部Mと基数部B)
を反転する反転器20bと、1を加算する加算器20c
と、マルチプレクサ20dとを有する。マルチプレクサ
20dは、実行命令が加減乗除算命令であるときは、フ
ォーマット変換を行ったのみのデータである入力Aを選
択し、比較命令を実行するときは、入力B(2の補数処
理を行われたもの)を選択する。
【0044】第10図システムの特徴は、IEEE形式
形式で記述された既存のソフトウエア資産をそのまま継
承できながら、しかも演算速度は向上させることが出来
る点にある。
【0045】
【実施例3】本発明の浮動小数点表記による数値データ
の演算(加減算又は比較)は、マイクロコードにより制
御されるオブジェクトコンピュータ(特に、マイクロコ
ンピュータシステム)に対しても適用できる。第11図
はそのコンピュータシステムの構成を表す。このシステ
ムは二重バス構造になっていて、所謂システムバスと呼
ばれているデータバスとアドレスバスは、不図示のメモ
リ(アプリケーションプログラムが記憶されているメモ
リ)と、前記メモリへのアクセスアドレスを格納するア
ドレスレジスタ(AR)と、前記メモリから/へのデー
タを格納するデータレジスタ(DR)と、I/O(メモ
リマップI/O)36とに接続されている。
【0046】前記アプリケーションプログラムの実行ア
ドレスはプログラムカウンタ33(PC)に記憶され
る。PC33とAR32とDR35とインストラクショ
ンレジスタ(IR)37は内部バス34に接続されてい
る。46は、算術加算、論理和、論理積、シフト、NOT
等の論理演算を行うALUユニットである。本実施例が
行う浮動小数点演算は、このALU46と、汎用レジス
タ(R1〜Rn)と、マルチプレクサ(42,43)と、
内部レジスタAA44と内部レジスタBB45と、出力
レジスタOUT47とによって構成される浮動小数点演
算ユニットによって実現される。
【0047】本実施例の浮動小数点演算ユニットにおい
ては、仮数部24ビット、指数部7ビット、符号1ビッ
トの都合32ビットを1ワードとする。この浮動小数点
演算ユニットの実行制御は、メモリ39に記憶されたマ
イクロコードによってなされる。メモリ39は制御記憶
(即ち、マイクロコード)を記憶するメモリCMであ
る。制御記憶CM39では、例えば16ビットのコント
ロール信号と、例えば8ビットの次命令アドレス信号と
を含む24ビットが1ワードを構成する。制御記憶CM
39がアクセスされて、その番地の内容が読み出される
と、その内容は16ビットのコントロール信号と8ビッ
トの次命令アドレス信号とを含む。これらのデータはデ
ータレジスタCMDR40に記憶される。CMDR40
に記憶された16ビットのコントロール信号は、前述の
浮動小数点演算ユニットに送られて、マルチプレクサ
(42,43)、ALU6などを制御する。またCMD
R40に記憶された8ビットの次命令アドレス信号は、
制御記憶アドレスレジスタCMAR38に送られる。C
MAR38に格納されたアドレスの内容に従って、制御
記憶CM39の内容が読み出され、この内容が、次に浮
動小数点演算ユニットを制御するマイクロコードを規定
する。
【0048】CMAR38への入力は、前述の8ビット
の次命令アドレス信号、又は、インストラクションレジ
スタIR37の出力のいずれかである。第13A図に、
IR37のフォーマットを示す。浮動小数点演算ユニッ
トに用意された命令は、第13A図に示すように、9種
類有る。アプリケーションプログラムのコードが、PC
33によって読み出され、読み出された命令コードがI
Rレジスタ37に格納される。その命令コードの先頭3
ビットによって浮動小数点演算ユニットに対する命令の
種類の相違を判断する。
【0049】第13B図にCM39のメモリマップを示
す。即ち、IRレジスタ37にセットされたコードか
ら、CM39のポインタ領域によって示される番地に、
対応する処理のマイクロコード群が格納されている。ア
プリケーションプログラムは、基数部Bを設定したいと
きは、アセンブラプログラムによって、命令コード=0
001、オペランド=Bとなるようなプログラムコード
を生成され付加されている。このコードが実行される
と、命令コード=0001がCMAR38に供給され
て、第13B図の命令コード=0001に対応するポイ
ンタアドレスが読み出されて、その内容が再びCMAR
38にセットされて、001命令(即ち、基数部Bの値
をセットする処理)の最初のマイクロコードが実行され
る。
【0050】また、内部レジスタR1に固定小数点形式
のデータをセットしたいときは、命令コード=0010
のプログラムコードをアプリケーションプログラム中に
生成する。また、内部レジスタR2に固定小数点形式の
データをセットしたいときは、命令コード=0011の
プログラムコードをアプリケーションプログラム中に生
成され付加される。
【0051】また、内部レジスタR1,R2にセットされ
ている2つの数値データを(2)式の形式に変換すると
きは、アセンブラは命令0100を生成する。また、内
部レジスタR1,R2にセットされている2つの数値デー
タを(2)式の形式に変換したのちに、「2の補数処
理」を施すときは、アセンブラは命令0100を生成す
る。
【0052】更に、比較するときは、アセンブラは命令
コード=1001のプログラムコードをアプリケーショ
ンプログラム中に生成し付加する。第14A図,第14
B図,第14C図は、命令コード1000の処理手順を
示す。即ち、この処理手順は、レジスタR1,R2に既に
セットされている固定小数点形式のデータを、本方式の
形式(B=8)に変換し、更に、2の補数処理を行うマ
イクロプログラム69(第13B図)の手順を示す。
尚、レジスタR1,R2には既に命令=010、又は01
1によって固定小数点方式のデータが格納されている。
そこで、第14A図,第14B図は、レジスタR1に既
にセットされている固定小数点形式のデータを、本方式
の形式に変換して、レジスタR1に再格納するマイクロ
プログラム63(第13B図)の手順を示す。レジスタ
2にセットされているデータを本方式の形式に変換す
る手順は、同じなので、省略する。
【0053】第14A図のステップS2において、R1
の内容を入力レジスタAA44にロードする。ステップ
S4では、レジスタBB45に@00000000@
(16進)を入力する。ステップS6ではALU46で
A−Bを演算し、結果をOUTレジスタ47に格納す
る。これにより、OUTレジスタ47には、入力の固定
小数点データが記憶される。
【0054】ステップS8では、A−Bの符号、即ち、
A(即ち、入力の固定小数点データ)の符号を調べる。
入力の固定小数点データの符号が正であれば、ステップ
S10において、BBレジスタ45に@FF00000
0@を格納する。一方、符号が負であれば、ステップS
12で、OUTレジスタ47には正の符号に変えられた
入力データが記憶されたことになる。このOUTレジス
タの内容はステップS14で入力レジスタAA44にも
どされ、ステップS16では、BBレジスタ45に@F
F000001@を格納する。
【0055】以上の処理により、AAレジスタ44に
は、固定小数点データの数値部分の絶対値が格納され
た。第14B図のステップS20では、ALU46によ
りAAレジスタ44とBBレジスタ45の内容の論理積
を演算して、結果をOUTレジスタ47に格納する。ス
テップS22では、論理積の結果が0であるか否かを調
べる。結果が0であるときは、ステップS24で、AA
レジスタ44の内容を、ALU46によって、左に8ビ
ットシフト(巡回シフト)し、シフト結果をOUTレジ
スタ47に待避させ、ステップS26では、待避させた
内容をAAレジスタ44に戻す。ステップS28では、
L46によって、BBレジスタ45の内容を1だけイン
クリメントして、その結果をOUTレジスタ47に待避
し、ステップS30では待避した内容をBBレジスタ4
5に戻す。
【0056】そして、ステップS20に戻って、AAレ
ジスタ44とBBレジスタ45との論理積を演算して、
ステップS22では、論理積の結果が0であるか否かを
調べる。ステップS24で8ビットだけ左方向に巡回シ
フトするということは、固定集数点数のデータ部分を2
8で除算したことを意味する。即ち、本例では、基数部
B=8(ビット)にセットしているので、ステップS2
4でデータを28で除算し、ステップS20で除算結果
をマスクし、ステップS22で有意ビットの検出を確認
することにより、ステップS32に進んできた時点の、
AAレジスタ44のMSB8ビットには仮数部データが
格納され、BBレジスタ45のLSB8ビットには指数
部データが格納されたことになる。
【0057】そこで、ステップS32,ステップS34
では、仮数部データをAAレジスタ44から取り出して
AAレジスタ44に格納し、ステップS36,ステップ
S38では指数部データをBBレジスタ45から取り出
してBBレジスタ45に格納し、ステップS40,ステ
ップS42では、AAレジスタ44とBBレジスタ45
の論理和を計算してAAレジスタ44に待避させる。こ
のとき、ステップS8でYESの判断がなされたいた場
合には符号ビットに1を代入してAAレジスタに待避さ
せる。ここで、AAレジスタ44は仮数部と指数部とを
併せて格納することになる。ステップS44ではBBレ
ジスタ45をゼロでクリアする。ステップS46では、
AA−BBを計算して結果をOUTレジスタ47に待避
する。
【0058】ステップS50〜ステップS58の処理
は、2の補数処理である。即ち、ステップS50ではA
A−BBの符号を調べ、正の時はステップS60で、負
の時はステップS52に進む。即ち、AA−BB>0の
時は、ステップS46で待避しておいたデータを、ステ
ップS60でR1レジスタに格納する。即ち、仮数部が
正の時は、2の補数処理を行う必要がないので、第14
図の制御手順は固定小数点データを浮動小数点形式(2
式)に変換して終了する。
【0059】一方、AA−BB<0の時は、負のデータ
であるので、ステップS52,ステップS54でAAレ
ジスタ44の内容の2の補数を演算するために、BB−
AA(ここで、BBは0である)を演算してOUTレジ
スタに格納する。尚、2の補数を演算するために、ビッ
トの反転を行ってから1を加算しても良い。次にステッ
プS56では、符号としてマイナスを付与するために、
AAレジスタ44の内容に@8000000@を加算す
る。換算された内容、即ち、2の補数値はステップS5
8,ステップS60でR1レジスタに格納される。
【0060】以上の処理により、固定少数点データが本
実施例のデータ形式(第8図の形式の内、基数部Bを除
いた形式)であって、2の補数の形式に変換された。本
形式の数値データを従来の例えば固定小数点データ或い
はIEEEの浮動小数点データの変換することも、第14A
図,第14B図,第14C図の制御手順に類似の手順に
よって簡単に実現することが出来る。
【0061】
【実施例4】本発明は、所謂高級言語で記述されたプロ
グラムに本発明の(2)式の形式を適用することも可能
である。第15図は、本言語によって記述されたプログ
ラムの一例であり、固定小数点型の実数変数R1の宣言
文(REAL R1)と、本形式の実数変数R2の宣言文
(REALB R2),並びに基数部の変数Bの宣言文
(BASE B;)と、変数Bに値“4”を代入する手
続文(B:=4;)と、固定少数点数R1を同じく固定
小数点数R2と比較する手続文(IF R1 > R2 THEN
....)とからなる。
【0062】ここで、REALBやBASE等は、本実
施例のために設けられた予約語である。コンパイラは、
上記プログラムを第16図のような中間言語に翻訳す
る。即ち、ステートメント100では、固定小数点デー
タ@−00000001@を変数レジスタR1にセット
する命令を生成する。ステートメント101では、任意
の固定小数点データ@−00000002@を変数レジ
スタR2にセットする命令を生成する。ステートメント
102では、基数部変数Bに値4をセットする命令を生
成する。ステートメント103,104では、レジスタ
1およびR2の内容を第8図の形式に変換する命令群を
生成する。ステートメント105では、レジスタR1
実数値とレジスタR2の実数値とが共に負であるかを判
断する命令を生成する。この場合、負であればステップ
S106に進む命令コードを、正であればステップS1
07に進む命令コードを生成する。
【0063】ステートメント106では、レジスタ
1,R2の内容を2の補数処理を行う命令コードを生成
する。実施例4のオブジェクトコンピュータは種々の形
式が取り得る。即ち、第12図のマイクロコード駆動の
浮動小数点演算ユニットを有するコンピュータシステム
では、第16図の各ステートメントは、第12A図の各
命令コードに置き換えることによって実現出来る。
【0064】浮動小数点演算ユニットを有さないコンピ
ュータシステムでは、第13A図や第13B図のマイク
ロコードに対応する命令コード群を、このオブジェクト
コンピュータの眼異例セットによって実現するコードを
生成することによって実現される。〈実施例の変形〉本
発明は上記実施例や実施例に限られることなく色々と修
正が可能である。
【0065】例えば、本発明は、コンピュータの形式に
とらわれない。例えば、汎用コンピュータに対しても、
マイクロコンピュータシステムに対しても適用可能であ
る。また、浮動小数点演算処理のためのハードウエアを
有さず、その演算処理をソフトウエアによって実現する
ようなコンピュータシステムに対しても特に有効であ
る。
【0066】また、本発明の記憶媒体は、磁気記憶に限
られず、光磁気記憶装置にも、また、フロッピーディス
クやハードウエアディスク、MO記憶装置にも適用可能
である。また、本発明の記憶媒体は、マイクロコンピュ
ータの制御記憶としてのROMにも及ぶ。
【0067】
【発明の効果】以上説明したように、本発明によれば、
+0と−0の数値を区別して処理できる数値データ演算
処理装置、処理方法、コンパイラ装置、コンパイラを記
憶した記憶媒体を提供できた。
【図面の簡単な説明】
【図1】 従来のIEEE提案の浮動小数点データの形
式を説明する図。
【図2】 従来技術の問題点を説明する図。
【図3】 従来技術の問題点を説明する図。
【図4】 従来技術の問題点を説明する図。
【図5】 従来技術の問題点を説明する図。
【図6A】 本発明の実施形態における比較方法を原理
的に説明する図。
【図6B】 本発明の実施形態による2の補数の演算の
一例を示す図。
【図7】 本発明の比較方法を浮動小数点データの比較
に適用した実施形態における、その浮動小数点データの
表現を説明する図。
【図8】 前記実施形態における浮動小数点データの構
成の一例を説明する図。
【図9】 2の補数生成プログラムをユーザ自身が作成
する形態の実施例1にかかるコンピュータシステムの構
成を示す図。
【図10】 実施例2にかかるコンピュータシステムの
構成を示す図。
【図11】 図10におけるフォーマット変換器の詳細
な構成を説明する図。
【図12】 実施例3にかかるコンピュータシステムの
構成を示す図。。
【図13A】 実施例3に用いられる命令の種類を説明
する図。
【図13B】 実施例3に用いられる制御記憶CMの構
成を説明する図。
【図14A】 実施例3のマイクロプログラムの制御手
順を示すフローチャート。
【図14B】 実施例3のマイクロプログラムの制御手
順を示すフローチャート。
【図14C】 実施例3のマイクロプログラムの制御手
順を示すフローチャート。
【図15】 実施例4にかかるプログラム表現を用いた
一例としてのプログラムの図。
【図16】 実施例4にかかるコンパイラの機能を説明
する図。

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 符号部と数値部とにより表される数値デ
    ータを比較する演算処理装置において、 比較対象の2つの数値データが負数であるか否かを検出
    する手段と、 比較対象の2つの数値データが負数である場合に、両数
    値データの数値部の2の補数を演算する補数演算手段
    と、 数値部の2の補数を比較する手段と、 を具備すること特徴とする数値データ演算処理装置。
  2. 【請求項2】 符号部と数値部とにより表される数値デ
    ータをコンピュータにより比較する数値データ演算処理
    方法において、 比較対象の2つの数値データが負数であるか否かを判断
    し、 比較対象の2つの数値データが負数である場合に、両数
    値データの数値部の2の補数を演算し、 演算された2の補数同士を比較する、 こと特徴とする数値データ演算処理方法。
  3. 【請求項3】 前記数値データは、数値部が仮数部と指
    数部とからなる少数であることを特徴とする請求項1に
    記載の数値データの演算処理装置。
  4. 【請求項4】 前記数値データは、数値部が仮数部と指
    数部とからなる少数であることを特徴とする請求項2に
    記載の数値データの演算処理方法。
  5. 【請求項5】 前記補数演算手段は、入力の数値データ
    を二進数に変換し、全てのビットを反転し、1を加算す
    ることにより2の補数を得ることを特徴とする請求項1
    に記載の数値データの演算処理装置。
  6. 【請求項6】 前記補数演算行程は、入力の数値データ
    を二進数に変換し、全てのビットを反転し、1を加算す
    ることにより2の補数を得ることを特徴とする請求項2
    に記載の数値データの演算処理方法。
  7. 【請求項7】 マップを記憶する手段を更に有し、比較
    対象の2つの数値データはマップ中のデータであること
    を特徴とする請求項1に記載の数値データの演算処理装
    置。
  8. 【請求項8】 マップを記憶し、比較対象の2つの数値
    データはマップ中のデータであることを特徴とする請求
    項2に記載の数値データの演算処理方法。
  9. 【請求項9】 前記比較手段は2の補数の絶対値を比較
    することを特徴とする請求項1に記載の数値データの演
    算処理装置。
  10. 【請求項10】 前記比較手段は2の補数の絶対値を比
    較することを特徴とする請求項2に記載の数値データの
    演算処理方法。
  11. 【請求項11】 前記補数演算手段は、指数部の2の補
    数を演算することを特徴とする請求項3に記載の数値デ
    ータの演算処理装置。
  12. 【請求項12】 前記補数演算行程は、指数部の2の補
    数を演算することを特徴とする請求項4に記載の数値デ
    ータの演算処理方法。
  13. 【請求項13】 前記補数演算手段は、仮数部の2の補
    数を演算することを特徴とする請求項3に記載の数値デ
    ータの演算処理装置。
  14. 【請求項14】 前記補数演算行程は、仮数部の2の補
    数を演算することを特徴とする請求項4に記載の数値デ
    ータの演算処理方法。
  15. 【請求項15】 前記補数演算手段は、仮数部と指数部
    の合成数の2の補数を演算することを特徴とする請求項
    3に記載の数値データの演算処理装置。
  16. 【請求項16】 前記補数演算行程は、仮数部と指数部
    の合成数の2の補数を演算することを特徴とする請求項
    4に記載の数値データの演算処理方法。
  17. 【請求項17】 数値データを演算処理するコンピュー
    タプログラムを翻訳するコンパイラ装置において、 ソースプログラム中に比較文を検出する手段と、 検出された比較文のオブジェクトコードとして、比較対
    象の2つの数値データの正負を検出するコードと、前記
    数値データの2の補数値を生成するコードとを生成する
    生成部とを具備することを特徴とするコンパイラ装置。
  18. 【請求項18】 数値データを演算処理するコンピュー
    タプログラムを記憶する記憶媒体において、 ソースプログラム中に比較文を検出する第1のプログラ
    ムコードと、 検出された比較文のオブジェクトコードとして、比較対
    象の2つの数値データの正負を検出するコードと、前記
    数値データの2の補数値を生成するコードとを生成する
    第2のプログラムコードとを記憶することを特徴とする
    記憶媒体。
JP9266949A 1997-09-30 1997-09-30 数値データ演算処理装置、その処理方法、コンパイラ装置、およびコンパイラを記憶した記憶媒体 Withdrawn JPH11110189A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9266949A JPH11110189A (ja) 1997-09-30 1997-09-30 数値データ演算処理装置、その処理方法、コンパイラ装置、およびコンパイラを記憶した記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9266949A JPH11110189A (ja) 1997-09-30 1997-09-30 数値データ演算処理装置、その処理方法、コンパイラ装置、およびコンパイラを記憶した記憶媒体

Publications (1)

Publication Number Publication Date
JPH11110189A true JPH11110189A (ja) 1999-04-23

Family

ID=17437934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9266949A Withdrawn JPH11110189A (ja) 1997-09-30 1997-09-30 数値データ演算処理装置、その処理方法、コンパイラ装置、およびコンパイラを記憶した記憶媒体

Country Status (1)

Country Link
JP (1) JPH11110189A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014241610A (ja) * 2014-07-30 2014-12-25 沖電気工業株式会社 整数/ビット列変換装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014241610A (ja) * 2014-07-30 2014-12-25 沖電気工業株式会社 整数/ビット列変換装置

Similar Documents

Publication Publication Date Title
US5889690A (en) Multiply-add unit and data processing apparatus using it
US5995991A (en) Floating point architecture with tagged operands
US7188133B2 (en) Floating point number storage method and floating point arithmetic device
US5295229A (en) Circuit and method for determining membership in a set during a fuzzy logic operation
JPH09212337A (ja) 浮動小数点演算処理装置
US7478363B2 (en) Method for translating a given source program into an object program containing computing expressions
KR970006408B1 (ko) 논리회로의 자동설계방법 및 그 장치와 승산기
JP2857505B2 (ja) 除算装置
JPH11110189A (ja) 数値データ演算処理装置、その処理方法、コンパイラ装置、およびコンパイラを記憶した記憶媒体
US6151616A (en) Method and circuit for detecting overflow in operand multiplication
JP2847688B2 (ja) プログラム変換装置およびプロセッサ
JPH10187416A (ja) 浮動小数点演算装置
JP3778489B2 (ja) プロセッサ、演算装置及び演算方法
JP4163967B2 (ja) 浮動小数点演算装置
JP2578482B2 (ja) 浮動小数点演算器
JPH0584928B2 (ja)
JPH1153170A (ja) 数値データ演算処理装置、その処理方法、超小型演算処理装置、コンパイラ装置、およびコンパイラを記憶した記憶媒体
US5687289A (en) Circuit and method for determining membership in a set during a fuzzy logic operation
JP2972326B2 (ja) 平方根計算装置
JP3950920B2 (ja) 積和演算器及びデータ処理装置
JPH05100822A (ja) デイジタルシグナルプロセツサ
JPH0225924A (ja) 浮動小数点演算処理装置
JP2000081968A (ja) 逆数演算装置
JP3112662B2 (ja) 乗算器
JP2508286B2 (ja) 平方根演算装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20041207