JPH1040078A - 先行0、1数予測回路、浮動小数点演算装置、マイクロプロセッサおよび情報処理装置 - Google Patents
先行0、1数予測回路、浮動小数点演算装置、マイクロプロセッサおよび情報処理装置Info
- Publication number
- JPH1040078A JPH1040078A JP19436296A JP19436296A JPH1040078A JP H1040078 A JPH1040078 A JP H1040078A JP 19436296 A JP19436296 A JP 19436296A JP 19436296 A JP19436296 A JP 19436296A JP H1040078 A JPH1040078 A JP H1040078A
- Authority
- JP
- Japan
- Prior art keywords
- leading
- circuit
- predicting
- zero
- bit
- 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
Links
Abstract
(57)【要約】
【課題】 簡単な構成で動作速度を向上させた先行0、
1数予測回路を提供することにある。 【解決手段】 2つの浮動小数点数の加算処理に並行し
て先行0数あるいは先行1数を予測する先行0、1数予
測回路(100)であって、前記2つの浮動小数点数を
入力とし0が先行すると仮定して先行0数を予測し出力
する第1の手段(10、30)と、前記2つの浮動小数
点数を入力とし1が先行すると仮定して先行1数を予測
し出力する第2の手段(20、40)と、当該先行0数
と先行1数との大小を比較し大きい方の先行数を出力す
る第3の手段(50)とを具備する。
1数予測回路を提供することにある。 【解決手段】 2つの浮動小数点数の加算処理に並行し
て先行0数あるいは先行1数を予測する先行0、1数予
測回路(100)であって、前記2つの浮動小数点数を
入力とし0が先行すると仮定して先行0数を予測し出力
する第1の手段(10、30)と、前記2つの浮動小数
点数を入力とし1が先行すると仮定して先行1数を予測
し出力する第2の手段(20、40)と、当該先行0数
と先行1数との大小を比較し大きい方の先行数を出力す
る第3の手段(50)とを具備する。
Description
【0001】
【発明の属する技術分野】本発明は、情報処理装置にお
ける加算正規化(Addition−Normaliz
ation)に係わり、特に、浮動小数点演算装置に適
用して有効な先行0、1数予測回路に関する。
ける加算正規化(Addition−Normaliz
ation)に係わり、特に、浮動小数点演算装置に適
用して有効な先行0、1数予測回路に関する。
【0002】
【従来の技術】浮動小数点の加減算演算では、仮数部の
減算時に桁落ちが生じ演算結果の上位に0が並ぶことが
あり、これを先行0と呼んでおり、IEEE754形式
の浮動小数点演算では、前記先行0の部分は指数値の変
化として扱い、仮数の先頭は必ず1となるよう処理しな
ければならない。
減算時に桁落ちが生じ演算結果の上位に0が並ぶことが
あり、これを先行0と呼んでおり、IEEE754形式
の浮動小数点演算では、前記先行0の部分は指数値の変
化として扱い、仮数の先頭は必ず1となるよう処理しな
ければならない。
【0003】また、仮数部の加減算時の演算結果が負の
場合に演算結果の上位に1が並ぶことがあり、これを先
行1と呼んでおり、IEEE754形式の浮動小数点演
算では、前記先行1の部分は指数値の変化として扱い、
仮数の先頭は必ず0となるよう処理しなければならな
い。
場合に演算結果の上位に1が並ぶことがあり、これを先
行1と呼んでおり、IEEE754形式の浮動小数点演
算では、前記先行1の部分は指数値の変化として扱い、
仮数の先頭は必ず0となるよう処理しなければならな
い。
【0004】前記処理を実行するためには、先行0のビ
ット数あるいは先行1のビット数をカウントしその数を
指数部から減ずるとともに、仮数部はその分だけ左にシ
フトする正規化処理が必要である。
ット数あるいは先行1のビット数をカウントしその数を
指数部から減ずるとともに、仮数部はその分だけ左にシ
フトする正規化処理が必要である。
【0005】前記先行0のビット数分だけ左にシフトす
る正規化処理にための最も単純な方法は、演算結果に対
し先行0検出を行うLZD(Leading-zero detection)
回路を用いる方法である。
る正規化処理にための最も単純な方法は、演算結果に対
し先行0検出を行うLZD(Leading-zero detection)
回路を用いる方法である。
【0006】これを高速化する方法として、従来、例え
ば、下記文献(イ)あるいは公報(ロ)に記載されてい
る先行0予測回路(LZA(Leading-zero anticipato
r)回路)が知られている。
ば、下記文献(イ)あるいは公報(ロ)に記載されてい
る先行0予測回路(LZA(Leading-zero anticipato
r)回路)が知られている。
【0007】(イ)電子情報通信学会技術研究報告DS
P95−98、ICD95−147(1995年10
月) (ロ)特開平5−307463号 また、先行0数あるいは先行1数を予測する回路とし
て、例えば、下記公報(ハ)に記載されている先行0/
1予測回路が知られている。
P95−98、ICD95−147(1995年10
月) (ロ)特開平5−307463号 また、先行0数あるいは先行1数を予測する回路とし
て、例えば、下記公報(ハ)に記載されている先行0/
1予測回路が知られている。
【0008】(ハ)特開平2−144624号 前記文献(イ)あるいは公報(ロ)に記載されている先
行0予測回路では、演算が終わり演算結果が出るのを待
って先行0数をカウントするのではなく、演算器への入
力信号から演算結果の先行0を予測し、演算と並行して
先行0数をカウントすることにより演算処理の高速化を
図っている。
行0予測回路では、演算が終わり演算結果が出るのを待
って先行0数をカウントするのではなく、演算器への入
力信号から演算結果の先行0を予測し、演算と並行して
先行0数をカウントすることにより演算処理の高速化を
図っている。
【0009】図8は、前記先行0予測回路を備える従来
の浮動小数点加算器の仮数加算部の概略構成を示すブロ
ック図である。
の浮動小数点加算器の仮数加算部の概略構成を示すブロ
ック図である。
【0010】図8において、703はスワッパ、704
は比較器、705はアライメントシフタ、706,70
7はビット反転器、708は先行0予測回路、709は
加算器、710は正規化シフタ、711は補正シフタ、
712は丸め処理部である。
は比較器、705はアライメントシフタ、706,70
7はビット反転器、708は先行0予測回路、709は
加算器、710は正規化シフタ、711は補正シフタ、
712は丸め処理部である。
【0011】図8に示す浮動小数点加算器の仮数加算部
においては、まず、仮数A(701)、仮数B(70
2)をスワッパ703に入力し、仮数部の入替え処理を
行う。
においては、まず、仮数A(701)、仮数B(70
2)をスワッパ703に入力し、仮数部の入替え処理を
行う。
【0012】このスワップ動作は、それぞれの指数部デ
ータの大小判定によって行われ、小さい指数値を有する
オペランドの仮数部をアライメントシフタ705に送出
し、他方を左側のビット反転器706に送出する。
ータの大小判定によって行われ、小さい指数値を有する
オペランドの仮数部をアライメントシフタ705に送出
し、他方を左側のビット反転器706に送出する。
【0013】アライメントシフタ705では、指数の差
分に応じて仮数部をシフトする。
分に応じて仮数部をシフトする。
【0014】これと並行して、実質減算時に、比較器7
04で仮数部、即ち、仮数A(701)と仮数B(70
2)との大小比較を行い、指数部が等しい場合には、仮
数部の大きい方から小さい方を減算するように、ビット
反転器(706,707)を制御する。
04で仮数部、即ち、仮数A(701)と仮数B(70
2)との大小比較を行い、指数部が等しい場合には、仮
数部の大きい方から小さい方を減算するように、ビット
反転器(706,707)を制御する。
【0015】なお、指数部が異なる時には、指数の大き
い方から指数の小さい方を減算するため、アライメント
シフト705で仮数部をシフトした側のビット反転器7
07を制御する。
い方から指数の小さい方を減算するため、アライメント
シフト705で仮数部をシフトした側のビット反転器7
07を制御する。
【0016】以上の前処理を行った仮数を加算器709
で加減算するとともに、先行0予測回路708で先行0
数の予測を行い、当該先行0数をシフト数として次段の
正規化シフタ710に入力する。
で加減算するとともに、先行0予測回路708で先行0
数の予測を行い、当該先行0数をシフト数として次段の
正規化シフタ710に入力する。
【0017】加算結果は、当該シフト数分だけ正規化シ
フタ710によりシフトされ、次に、補正シフタ711
に入力される。
フタ710によりシフトされ、次に、補正シフタ711
に入力される。
【0018】補正シフタ711では、先行0予測回路7
08で予測しきれなかったシフト分(1ビット)がある
場合に、1ビットシフトを行う。
08で予測しきれなかったシフト分(1ビット)がある
場合に、1ビットシフトを行う。
【0019】最後に丸め処理部712で丸め処理の計算
を行い、演算結果の仮数部713が出力される。
を行い、演算結果の仮数部713が出力される。
【0020】
【発明が解決しようとする課題】前記図8に示す先行0
予測回路708のように、前記文献(イ)あるいは公報
(ロ)に記載されている先行0予測回路では、先行0数
の予測しか行えないため、仮数減算においては常に値の
大きなオぺランドから小さなオぺランドを減じ、演算結
果は正数でなければならないという制約事項が存在す
る。
予測回路708のように、前記文献(イ)あるいは公報
(ロ)に記載されている先行0予測回路では、先行0数
の予測しか行えないため、仮数減算においては常に値の
大きなオぺランドから小さなオぺランドを減じ、演算結
果は正数でなければならないという制約事項が存在す
る。
【0021】このため、加算演算の前処理として2つの
オぺランドの大小比較を行い、常に値の大きなオぺラン
ドから小さなオぺランドを減じるように制御する必要が
あり、加算処理の動作速度の点で問題があり、高速動作
が行えないという問題点があった。
オぺランドの大小比較を行い、常に値の大きなオぺラン
ドから小さなオぺランドを減じるように制御する必要が
あり、加算処理の動作速度の点で問題があり、高速動作
が行えないという問題点があった。
【0022】前記前処理によるオーバーヘッドは、浮動
小数点加減算器のように他の前処理が必要な演算器の場
合にはそれらに隠れて比較的見えにくいが、積和演算器
のような場合にはそのままオーバーヘッドとして演算時
間の増加を招く。
小数点加減算器のように他の前処理が必要な演算器の場
合にはそれらに隠れて比較的見えにくいが、積和演算器
のような場合にはそのままオーバーヘッドとして演算時
間の増加を招く。
【0023】また、前記文献(ハ)に記載されている先
行0/1予測回路では、先行0数あるいは先行1数を予
測可能であるため、演算結果が正数でなければならない
という制約事項はないが、先行0数あるいは先行1数の
予測をビット単位で行うためにその構成が複雑になり、
十分な動作速度が得られず、高速動作が行えないという
問題点があった。
行0/1予測回路では、先行0数あるいは先行1数を予
測可能であるため、演算結果が正数でなければならない
という制約事項はないが、先行0数あるいは先行1数の
予測をビット単位で行うためにその構成が複雑になり、
十分な動作速度が得られず、高速動作が行えないという
問題点があった。
【0024】したがって、従来の先行0予測回路、ある
いは、先行0/1予測回路を具備する浮動小数点演算
器、マイクロプロセッサおよび情報処理装置において
は、演算処理の動作速度を高速することが困難であり、
演算時間の増加を招くという問題点があった。
いは、先行0/1予測回路を具備する浮動小数点演算
器、マイクロプロセッサおよび情報処理装置において
は、演算処理の動作速度を高速することが困難であり、
演算時間の増加を招くという問題点があった。
【0025】本発明は、前記従来技術の問題点を解決す
るためになされたものであって、本発明の目的は、先行
0、1数予測回路において、簡単な構成で動作速度を向
上させることが可能となる技術を提供することにある。
るためになされたものであって、本発明の目的は、先行
0、1数予測回路において、簡単な構成で動作速度を向
上させることが可能となる技術を提供することにある。
【0026】本発明の他の目的は、浮動小数点演算器に
おいて、演算速度を向上させることが可能となる技術を
提供することにある。
おいて、演算速度を向上させることが可能となる技術を
提供することにある。
【0027】本発明の他の目的は、マイクロプロセッサ
および情報処理装置において、演算速度を向上させるこ
とが可能となる技術を提供することにある。
および情報処理装置において、演算速度を向上させるこ
とが可能となる技術を提供することにある。
【0028】本発明の前記目的並びにその他の目的及び
新規な特徴は、本明細書の記載及び添付図面によって明
らかする。
新規な特徴は、本明細書の記載及び添付図面によって明
らかする。
【0029】
【課題を解決するための手段】本願において開示される
発明のうち、代表的なものの概要を簡単に説明すれば、
下記のとおりである。
発明のうち、代表的なものの概要を簡単に説明すれば、
下記のとおりである。
【0030】(1)2つの浮動小数点数の加算処理に並
行して先行0数あるいは先行1数を予測する先行0、1
数予測回路であって、前記2つの浮動小数点数を入力と
し0が先行すると仮定して先行0数を予測し出力する第
1の手段と、前記2つの浮動小数点数を入力とし1が先
行すると仮定して先行1数を予測し出力する第2の手段
と、当該先行0数と先行1数との大小を比較し大きい方
の先行数を出力する第3の手段とを具備することを特徴
とする。
行して先行0数あるいは先行1数を予測する先行0、1
数予測回路であって、前記2つの浮動小数点数を入力と
し0が先行すると仮定して先行0数を予測し出力する第
1の手段と、前記2つの浮動小数点数を入力とし1が先
行すると仮定して先行1数を予測し出力する第2の手段
と、当該先行0数と先行1数との大小を比較し大きい方
の先行数を出力する第3の手段とを具備することを特徴
とする。
【0031】(2)前記(1)の手段において、前記第
1手段は、前記2つの浮動小数点数の各ビット値に基づ
いて先行0数を予測し、当該先行0数分だけ上位ビット
に「0」が連続する先行0数予測データを生成し、ま
た、前記第2手段は、前記2つの浮動小数点数の各ビッ
ト値に基づいて先行1数を予測し、当該先行1数分だけ
上位ビットに「0」が連続する先行1数予測データを生
成し、前記第3手段は、前記第1の手段から出力される
先行0数予測データと、前記第2の手段から出力される
先行1数予測データとの論理積を取り、当該論理積を取
った後のデータにおける、上位ビットから「0」が連続
するビット数を先行0数あるいは先行1数として出力す
ることを特徴とする。
1手段は、前記2つの浮動小数点数の各ビット値に基づ
いて先行0数を予測し、当該先行0数分だけ上位ビット
に「0」が連続する先行0数予測データを生成し、ま
た、前記第2手段は、前記2つの浮動小数点数の各ビッ
ト値に基づいて先行1数を予測し、当該先行1数分だけ
上位ビットに「0」が連続する先行1数予測データを生
成し、前記第3手段は、前記第1の手段から出力される
先行0数予測データと、前記第2の手段から出力される
先行1数予測データとの論理積を取り、当該論理積を取
った後のデータにおける、上位ビットから「0」が連続
するビット数を先行0数あるいは先行1数として出力す
ることを特徴とする。
【0032】(3)前記(2)の手段において、前記第
1の手段は、前記2つの浮動小数点数を、A(=an ,
an-1 ,…,a1 )およびB(=bn ,bn-1 ,…,b
1 )とするとき、下記(1)式に基づき算出される各ビ
ット値で構成される(¬zi0)のデータを出力する算出
手段と、前記算出手段から出力される(¬zi0)のデー
タの上位ビットから数えて最初に「1」となるビット以
降のビット値を全て「1」として、前記先行0数分だけ
上位ビットに「0」が連続する先行0数予測データを出
力する先行0数予測手段とを有することを特徴とする。
1の手段は、前記2つの浮動小数点数を、A(=an ,
an-1 ,…,a1 )およびB(=bn ,bn-1 ,…,b
1 )とするとき、下記(1)式に基づき算出される各ビ
ット値で構成される(¬zi0)のデータを出力する算出
手段と、前記算出手段から出力される(¬zi0)のデー
タの上位ビットから数えて最初に「1」となるビット以
降のビット値を全て「1」として、前記先行0数分だけ
上位ビットに「0」が連続する先行0数予測データを出
力する先行0数予測手段とを有することを特徴とする。
【0033】
【数3】 ¬zi0=pi (+)(pi-1 +gi-1 ) ・・・・・(1) 但し、 pi =ai (+)bi gi =ai ・bi X・Yは、XとYの論理積、X+Yは、XとYの論理
和、X(+)Yは、XとYの排他的論理和、¬Xは、X
の論理否定を表す。
和、X(+)Yは、XとYの排他的論理和、¬Xは、X
の論理否定を表す。
【0034】(4)前記(2)の手段において、前記第
2の手段は、前記2つの浮動小数点数を、A(=an ,
an-1 ,…,a1 )およびB(=bn ,bn-1 ,…,b
1 )とするとき、下記(2)式に基づき算出される各ビ
ット値で構成される(¬zi1)のデータを出力する算出
手段と、前記算出手段から出力される(¬zi1)のデー
タの上位ビットから数えて最初に「1」となるビット以
降のビット値を全て「1」として、前記先行1数分だけ
上位ビットに「0」が連続する先行1数予測データを出
力する先行1数予測手段とを有することを特徴とする。
2の手段は、前記2つの浮動小数点数を、A(=an ,
an-1 ,…,a1 )およびB(=bn ,bn-1 ,…,b
1 )とするとき、下記(2)式に基づき算出される各ビ
ット値で構成される(¬zi1)のデータを出力する算出
手段と、前記算出手段から出力される(¬zi1)のデー
タの上位ビットから数えて最初に「1」となるビット以
降のビット値を全て「1」として、前記先行1数分だけ
上位ビットに「0」が連続する先行1数予測データを出
力する先行1数予測手段とを有することを特徴とする。
【0035】
【数4】 ¬zi1=gi-1 (+)¬(pi ) ・・・・・・(2) 但し、pi =ai (+)bi gi =ai ・bi X・Yは、XとYの論理積 X(+)Yは、XとYの排他的論理和、¬Xは、Xの論
理否定を表す。
理否定を表す。
【0036】(5)浮動小数点演算装置において、前記
(1)ないし(4)手段に記載された先行0、1数予測
回路と、前記先行0、1数予測回路に入力される2つの
浮動小数点数を加算する加算器と、前記先行0、1数予
測回路の先行0数あるいは先行1数に基づき加算器から
出力される加算結果をシフトする正規化シフタとを具備
することを特徴とする。
(1)ないし(4)手段に記載された先行0、1数予測
回路と、前記先行0、1数予測回路に入力される2つの
浮動小数点数を加算する加算器と、前記先行0、1数予
測回路の先行0数あるいは先行1数に基づき加算器から
出力される加算結果をシフトする正規化シフタとを具備
することを特徴とする。
【0037】(6)マイクロプロセッサにおいて、前記
(5)の手段に記載された浮動小数点演算装置を備える
ことを特徴とする。
(5)の手段に記載された浮動小数点演算装置を備える
ことを特徴とする。
【0038】(7)情報処理装置において、前記(6)
の手段に記載されたマイクロプロセッサを備えることを
特徴とする。
の手段に記載されたマイクロプロセッサを備えることを
特徴とする。
【0039】前記(1)ないし(4)の手段によれば、
先行0、1数予測回路において、2つの浮動小数点数の
加算処理に並行して、当該2つの浮動小数点数を入力と
し0および1が先行すると仮定して、先行0数および先
行1数を予測して出力し、当該先行0数および先行1数
の大小を比較して大きい方の先行数を出力するようにし
たので、簡単な構成で動作速度を向上させることが可能
となる。
先行0、1数予測回路において、2つの浮動小数点数の
加算処理に並行して、当該2つの浮動小数点数を入力と
し0および1が先行すると仮定して、先行0数および先
行1数を予測して出力し、当該先行0数および先行1数
の大小を比較して大きい方の先行数を出力するようにし
たので、簡単な構成で動作速度を向上させることが可能
となる。
【0040】前記(5)の手段によれば、浮動小数点演
算装置において、前記(1)ないし(4)手段の先行
0、1数予測回路を使用し、2つの浮動小数点数の加算
処理に並行して先行0数あるいは先行1数を予測するよ
うにしたので、演算速度を向上させることが可能とな
る。
算装置において、前記(1)ないし(4)手段の先行
0、1数予測回路を使用し、2つの浮動小数点数の加算
処理に並行して先行0数あるいは先行1数を予測するよ
うにしたので、演算速度を向上させることが可能とな
る。
【0041】前記(6)および(7)の手段によれば、
マイクロプロセッサおよび情報処理装置において、前記
(5)の手段の浮動小数点演算装置を備えるようにした
ので、演算速度を向上させることが可能となる。
マイクロプロセッサおよび情報処理装置において、前記
(5)の手段の浮動小数点演算装置を備えるようにした
ので、演算速度を向上させることが可能となる。
【0042】
【発明の実施の形態】以下、図面を参照して本発明の発
明の実施の形態を詳細に説明する。
明の実施の形態を詳細に説明する。
【0043】なお、本発明の実施の形態を説明するため
の全図において、同一機能を有するものは同一符号を付
け、その繰り返しの説明は省略する。
の全図において、同一機能を有するものは同一符号を付
け、その繰り返しの説明は省略する。
【0044】まず、先行0数予測、先行1数予測を行う
方法を説明する。
方法を説明する。
【0045】2つのオぺランドAとBの加算結果が、K
と一致(A+B=K)するかどうかは、通常の以下の方
法により評価される。
と一致(A+B=K)するかどうかは、通常の以下の方
法により評価される。
【0046】まず、2つのnビットのオぺランドA(=
an ,an-1 ,…,a1 )、B(=bn ,bn-1 ,…,
b1 )の加算を実行して加算結果R(=rn ,rn-1 ,
…,r1 )を求め、次に、この加算結果R(=rn ,r
n-1 ,…,r1 )とK(=kn ,kn-1 ,…,k1 )と
を比較する。
an ,an-1 ,…,a1 )、B(=bn ,bn-1 ,…,
b1 )の加算を実行して加算結果R(=rn ,rn-1 ,
…,r1 )を求め、次に、この加算結果R(=rn ,r
n-1 ,…,r1 )とK(=kn ,kn-1 ,…,k1 )と
を比較する。
【0047】即ち、
【0048】
【数5】 pi =ai (+)bi (3) gi =ai ・bi (4) ci =(pi ・ci-1 )+gi (5) (但し、c1 =g1 ) ri =pi (+)ci-1 (6) (但し、r1 =p1 ) により、加算結果Rを計算し、
【0049】
【数6】 ei =¬(ri (+)ki ) (7) E=En =en ・en-1 ・…e1 (8) より、RとKを比較する。Eがその比較結果である。
【0050】なお、前記各式において、X・YはXとY
との論理積、X+YはXとYとの論理和、X(+)Yは
XとYとの排他的論理和、¬XはXの論理否定を表わ
し、これ以降、本明細書中で記載する各式においても同
様とする。
との論理積、X+YはXとYとの論理和、X(+)Yは
XとYとの排他的論理和、¬XはXの論理否定を表わ
し、これ以降、本明細書中で記載する各式においても同
様とする。
【0051】これに対し、下記文献(ニ)に記載されて
いる方法によれば、2つのオぺランドAとBの加算結果
がKと一致(A+B=K)するかどうかは、下記式を計
算することにより評価することができる。
いる方法によれば、2つのオぺランドAとBの加算結果
がKと一致(A+B=K)するかどうかは、下記式を計
算することにより評価することができる。
【0052】即ち、下記文献(ニ)に記載されている方
法によれば、A(=an ,an-1 ,…,a1 )、B(=
bn ,bn-1 ,…,b1 )、K(=kn ,kn-1 ,…,
k1)から
法によれば、A(=an ,an-1 ,…,a1 )、B(=
bn ,bn-1 ,…,b1 )、K(=kn ,kn-1 ,…,
k1)から
【0053】
【数7】 vi =(pi ・¬ki )+gi (9) wi =pi+1 (+)ki+1 (10) zi =¬(vi-1 (+)wi-1 ) (11) (但し、z1 =¬(p1 (+)k1 )) Z=Zn =zn ・zn-1 ・…・z1 (12) によりZを計算すると、E=Zとなる。
【0054】よって、EのかわりにZを計算することに
A+B=Kを判定することができる。
A+B=Kを判定することができる。
【0055】(ニ)IEEE Trans. on Computers, vol.4
1, no.11, pp.1484-1488, Nov. 1992次に、以上の説明
を踏まえ、先行0あるいは先行1を予測する新しい方法
を導く。
1, no.11, pp.1484-1488, Nov. 1992次に、以上の説明
を踏まえ、先行0あるいは先行1を予測する新しい方法
を導く。
【0056】ここで、n>j≧1とすると、前記(8)
式、(12)式は、下記式のように表現できる。
式、(12)式は、下記式のように表現できる。
【0057】
【数8】 En =en ・en-1 ・…ej+1 ・ej ・ej-1 ・…e1 (13) Zn =zn ・zn-1 ・…zj+1 ・zj ・zj-1 ・…z1 (14) いま、最上位ビットMSBからi=jビットまでの
ei 、zi それぞれの論理積Enj、Znj、
ei 、zi それぞれの論理積Enj、Znj、
【0058】
【数9】 Enj=en ・en-1 ・…ej (15) Znj=zn ・zn-1 ・…zj (16) を考える。
【0059】(I)j=1のとき、En1=En 、Zn1=
Zn でありEn =Zn であるから
Zn でありEn =Zn であるから
【0060】
【数10】 Enj=Znj (17) (II)j≠1のとき、(13)式ないし(16)式よ
り、
り、
【0061】
【数11】 Enj-1=Enj・ej-1 (18) Znj-1=Znj・zj-1 (19) 従って、Enj-1=Znj-1=1ならば、Enj=Znj=1で
ある。
ある。
【0062】以上のことから、jー1までk=0あるい
はk=1の予測が一致するならばjビットまでの予測が
一致することがわかる。
はk=1の予測が一致するならばjビットまでの予測が
一致することがわかる。
【0063】即ち、この方法により、前記従来例の回路
と同様、1ビットの補正(追加シフト)以内で先行0数
(k=0)あるいは先行1数(k=1)を予測すること
ができる。
と同様、1ビットの補正(追加シフト)以内で先行0数
(k=0)あるいは先行1数(k=1)を予測すること
ができる。
【0064】本発明は、前記方法に基づいて、先行0数
(k=0)あるいは先行1数(k=1)を予測するよう
にしたものである。
(k=0)あるいは先行1数(k=1)を予測するよう
にしたものである。
【0065】(9)、(10)および(11)式から先
行0数予測回路(k=0)の場合には、
行0数予測回路(k=0)の場合には、
【0066】
【数12】 vi-1 =pi-1 +gi-1 (20) wi-1 =pi (21) ¬zi0=pi (+)(pi-1 +gi-1 ) (22) ここで、
【0067】
【数13】 pi-1 =ai-1 (+)bi-1 (23) =¬ai-1 ・bi-1 +ai-1 ・¬bi-1 (24) gi-1 =ai-1 ・bi-1 (25) 今、ai-1 =X、bi-1 =Yとすると、
【0068】
【数14】 pi-1 +gi-1 =(¬X・Y+X・¬Y)+X・Y =(¬X・Y+X・Y)+X・¬Y =(¬X+X)・Y+X・¬Y =Y+X・¬Y =(X+Y)・(Y+¬Y) =(X+Y) (26) したがって、(22)式は、
【0069】
【数15】 ¬zi0=pi (+)(ai-1 +bi-1 ) (27) 同様に、先行1数予測回路(k=1)の場合には、
【0070】
【数16】 vi-1 =gi-1 (28) wi-1 =¬pi (29) ¬zi1=gi-1 (+)¬pi (30) となる。
【0071】これら先行0数あるいは先行1数予測回路
の出力は¬zi であり、区別のためそれぞれを¬zi0、
¬zi1と記す。
の出力は¬zi であり、区別のためそれぞれを¬zi0、
¬zi1と記す。
【0072】図1は、本発明の一発明の実施の形態であ
る先行0、1数予測回路に使用される先行0数を予測す
る先行0数予測回路、および、先行1数を予測する先行
1数予測回路の一例を示す回路図である。
る先行0、1数予測回路に使用される先行0数を予測す
る先行0数予測回路、および、先行1数を予測する先行
1数予測回路の一例を示す回路図である。
【0073】図1に示す回路は、2つのnビットのオぺ
ランドA(=an ,an-1 ,…,a1 )とB(=bn ,
bn-1 ,…,b1 )とが入力され、前記2つのオぺラン
ドAおよびBの各ビット(ai ,bi )同志が、排他的
論理和回路(XOR1(i))、アンド回路(AND
(i))およびオア回路(OR(i))に入力される。
ランドA(=an ,an-1 ,…,a1 )とB(=bn ,
bn-1 ,…,b1 )とが入力され、前記2つのオぺラン
ドAおよびBの各ビット(ai ,bi )同志が、排他的
論理和回路(XOR1(i))、アンド回路(AND
(i))およびオア回路(OR(i))に入力される。
【0074】排他的論理和回路(XOR1(i))の出
力と、下位ビットのオア回路(OR(i−1))の出力
とが、排他的論理和回路(XOR2(i))に入力さ
れ、この排他的論理和回路(XOR2(i))の出力が
先行0数予測回路の出力(¬zi0)となる。
力と、下位ビットのオア回路(OR(i−1))の出力
とが、排他的論理和回路(XOR2(i))に入力さ
れ、この排他的論理和回路(XOR2(i))の出力が
先行0数予測回路の出力(¬zi0)となる。
【0075】同様に、インバータ回路(INV(i))
で反転された排他的論理和回路(XOR1(i))の出
力と、下位ビットのアンド回路(AND(i−1))の
出力とが、排他的論理和回路(XOR3(i))に入力
され、この排他的論理和回路(XOR3(i))の出力
が先行1数予測回路の出力(¬zi1)となる。
で反転された排他的論理和回路(XOR1(i))の出
力と、下位ビットのアンド回路(AND(i−1))の
出力とが、排他的論理和回路(XOR3(i))に入力
され、この排他的論理和回路(XOR3(i))の出力
が先行1数予測回路の出力(¬zi1)となる。
【0076】なお、図1に示す先行0数予測回路の出力
(¬zi0)および先行1数予測回路の出力(¬zi1)に
は、符号ビットの先行0予測および先行1予測も含まれ
ている。
(¬zi0)および先行1数予測回路の出力(¬zi1)に
は、符号ビットの先行0予測および先行1予測も含まれ
ている。
【0077】図1の先行0数予測回路は、前記文献
(ロ)に記載された先行0予測回路と次の点で異なる。
(ロ)に記載された先行0予測回路と次の点で異なる。
【0078】即ち、従来例の回路では、
【0079】
【数17】
【0080】の時に、その出力¬zi0が“1”になるの
に対し、図1の回路では
に対し、図1の回路では
【0081】
【数18】
【0082】の時に、その出力¬zi0が“1”になる。
【0083】これにより、従来の回路が扱えないケース
も図1の回路で扱うことができる。
も図1の回路で扱うことができる。
【0084】同様に、数19は、¬zi1が“1”になる
ケースを示している。
ケースを示している。
【0085】
【数19】
【0086】図2は、本発明の一発明の実施の形態であ
る先行0、1数予測回路の概略構成を示すブロック図で
ある。
る先行0、1数予測回路の概略構成を示すブロック図で
ある。
【0087】図2において、100は先行0、1数予測
回路、60は加算器、70は正規化シフタであり、先行
0、1数予測回路100は、先行0数予測回路10、先
行1数予測回路20、先行0カウンタ回路30、先行1
カウンタ回路40、大小比較・セレクタ回路50から構
成される。
回路、60は加算器、70は正規化シフタであり、先行
0、1数予測回路100は、先行0数予測回路10、先
行1数予測回路20、先行0カウンタ回路30、先行1
カウンタ回路40、大小比較・セレクタ回路50から構
成される。
【0088】なお、先行0数予測回路10と先行0カウ
ンタ回路30とが、請求項に記載された第1の手段を、
先行1数予測回路20と先行1カウンタ回路40とが、
請求項に記載された第2の手段を、大小比較・セレクタ
回路50が請求項に記載された第3の手段を構成する。
ンタ回路30とが、請求項に記載された第1の手段を、
先行1数予測回路20と先行1カウンタ回路40とが、
請求項に記載された第2の手段を、大小比較・セレクタ
回路50が請求項に記載された第3の手段を構成する。
【0089】ここで、先行0数予測回路10および先行
1数予測回路20は、図1に示す回路で構成される。
1数予測回路20は、図1に示す回路で構成される。
【0090】さらに、先行0数予測回路10と先行0カ
ウンタ回路30とが、それぞれ請求項3に記載された算
出手段と先行0数予測手段を構成し、同じく、先行1数
予測回路20と先行1カウンタ回路40とが、それぞれ
請求項4に記載された算出手段と先行1数予測手段を構
成する。
ウンタ回路30とが、それぞれ請求項3に記載された算
出手段と先行0数予測手段を構成し、同じく、先行1数
予測回路20と先行1カウンタ回路40とが、それぞれ
請求項4に記載された算出手段と先行1数予測手段を構
成する。
【0091】本発明の実施の形態の先行0、1数予測回
路100では、先行0数予測回路10から出力される先
行0予測数、および、先行1数予測回路20から出力さ
れる先行1予測数を、先行0カウンタ回路30、およ
び、先行1カウンタ回路40でカウントし、大小比較・
セレクタ回路50で、先行0カウンタ回路30でカウン
トされた先行0予測数、および、先行1カウンタ回路4
0でカウントされた先行1予測数の大小を比較し、大き
い方の予測結果を選択して、正規化シフタ70に出力す
る。
路100では、先行0数予測回路10から出力される先
行0予測数、および、先行1数予測回路20から出力さ
れる先行1予測数を、先行0カウンタ回路30、およ
び、先行1カウンタ回路40でカウントし、大小比較・
セレクタ回路50で、先行0カウンタ回路30でカウン
トされた先行0予測数、および、先行1カウンタ回路4
0でカウントされた先行1予測数の大小を比較し、大き
い方の予測結果を選択して、正規化シフタ70に出力す
る。
【0092】図3は本願発明者らにより本出願以前に検
討された先行0、1数予測回路の概略構成を示すブロッ
ク図である。
討された先行0、1数予測回路の概略構成を示すブロッ
ク図である。
【0093】図3において、200は先行0、1数予測
回路、60は加算器、70は正規化シフタであり、先行
0、1数予測回路200は、先行0数予測回路210、
先行1数予測回路220、先行0カウンタ回路230、
先行1カウンタ回路240、セレクタ回路250から構
成される。
回路、60は加算器、70は正規化シフタであり、先行
0、1数予測回路200は、先行0数予測回路210、
先行1数予測回路220、先行0カウンタ回路230、
先行1カウンタ回路240、セレクタ回路250から構
成される。
【0094】図3に示すように、先行0数予測回路21
0の出力、および、先行1数予測回路220の出力から
正しい一方の予測結果を選択する最も簡便な方法は、加
算器60での加算結果の符号を見て正しい方の予測結果
をセレクタ250により選択する方法である。
0の出力、および、先行1数予測回路220の出力から
正しい一方の予測結果を選択する最も簡便な方法は、加
算器60での加算結果の符号を見て正しい方の予測結果
をセレクタ250により選択する方法である。
【0095】この場合、先行0、1数予測回路200
で、正規化シフト信号を生成するためには、加算器60
での加算結果が出力されるのを待たなければならず、動
作速度の点で問題があった。
で、正規化シフト信号を生成するためには、加算器60
での加算結果が出力されるのを待たなければならず、動
作速度の点で問題があった。
【0096】これに対し、本発明の実施の形態の先行
0、1数予測回路100では、図1に示すように、加算
器60での加算結果の符号を、先行0カウンタ回路30
から出力される先行0予測数、および、先行1カウンタ
回路40から出力される先行1予測数の大小から予測
し、正しい方の予測結果を選択して、正規化シフタ70
に出力する。
0、1数予測回路100では、図1に示すように、加算
器60での加算結果の符号を、先行0カウンタ回路30
から出力される先行0予測数、および、先行1カウンタ
回路40から出力される先行1予測数の大小から予測
し、正しい方の予測結果を選択して、正規化シフタ70
に出力する。
【0097】このため、本発明の実施の形態の先行0、
1数予測回路100では、加算器60での加算結果(加
算結果の符号)を待たずに、正規化シフト信号を生成す
ることができ、動作速度を向上させることができる。
1数予測回路100では、加算器60での加算結果(加
算結果の符号)を待たずに、正規化シフト信号を生成す
ることができ、動作速度を向上させることができる。
【0098】以下、この動作を説明する。
【0099】符号ビットを含め最上位ビット(MSB)
から最下位ビット(LSB)へスキャンして¬zi0=¬
zi1=0で先行0予測、先行1予測とも予測一致となる
場合を考える。
から最下位ビット(LSB)へスキャンして¬zi0=¬
zi1=0で先行0予測、先行1予測とも予測一致となる
場合を考える。
【0100】(III)pi =0の場合 (22)式=(25)式=0から
【0101】
【数20】 pi-1 +gi-1 =0 (31) gi-1 =1 (32) これは起こりえない。
【0102】即ち、pi =0の場合、¬zi0、¬zi1の
うち少なくとも一方が1となり、予測不一致となる。
うち少なくとも一方が1となり、予測不一致となる。
【0103】即ち、オーバーフローしないよう加算器を
構成したとすると、最上位ビット(符号ビット)が
(0,0)でpi =0の場合、加算結果は正数となり、
先行1予測側の最上位ビットの¬zi1必ず1となる。
構成したとすると、最上位ビット(符号ビット)が
(0,0)でpi =0の場合、加算結果は正数となり、
先行1予測側の最上位ビットの¬zi1必ず1となる。
【0104】一方、最上位ビット(符号ビット)が
(1,1)でpi =0の場合、加算結果は負数となり、
先行0予測側の最上位ビットの¬zi0は必ず1となる。
(1,1)でpi =0の場合、加算結果は負数となり、
先行0予測側の最上位ビットの¬zi0は必ず1となる。
【0105】(IV)pi =1の場合 (22)式=(25)式=0から
【0106】
【数21】 pi-1 +gi-1 =1 (33) gi-1 =0 (34) したがって pi-1 =1 即ち、pi =pi-1 =1でpi =1が続く限り、先行0
予測、先行1予測とも予測一致と出力される。
予測、先行1予測とも予測一致と出力される。
【0107】次に、上記pi =1の連続の最後のpi ≠
1を考える。
1を考える。
【0108】これは以下の2ケースであり、いずれの場
合も正しくない予測側のiビット目¬zi に1が立ち、
一方正しい方の予測結果は0となりさらに0が連続す
る。
合も正しくない予測側のiビット目¬zi に1が立ち、
一方正しい方の予測結果は0となりさらに0が連続す
る。
【0109】(A)(ai-1 ,bi-1 )=(0, 0)
の場合 ¬zi0=1,¬zi1=0で加算結果は負数。
の場合 ¬zi0=1,¬zi1=0で加算結果は負数。
【0110】例えば、
【0111】
【数22】 (B)(ai-1 ,bi-1 )=(1, 1)の場合 ¬zi0=0,¬zi1=1で加算結果は正数。
【0112】例えば、
【0113】
【数23】 以上(III)、(IV)から、先行0予測数、先行1予測
数のうち、正しい方の予測数は正しくない方の予測数よ
りも必ず大きく、これを元に正しい方の予測数を選択す
ることができる。
数のうち、正しい方の予測数は正しくない方の予測数よ
りも必ず大きく、これを元に正しい方の予測数を選択す
ることができる。
【0114】図4は、図2に示す先行0カウンタ回路3
0、あるいは、先行1カウンタ回路40一例として、5
6ビットのカウンタ回路の回路構成を示す回路図であ
る。
0、あるいは、先行1カウンタ回路40一例として、5
6ビットのカウンタ回路の回路構成を示す回路図であ
る。
【0115】図4において、300は56ビットのカウ
ンタ回路、350は8ビットのカウンタ回路である。
ンタ回路、350は8ビットのカウンタ回路である。
【0116】図4に示すカウンタ回路300では、先行
0数予測回路10あるいは先行1数予測回路20の出力
である¬z56 〜¬z1を入力とし、所定の組み合わせに
基づき、カウンタ回路350内のオア回路(OR351
〜OR362)により各入力(¬z56 〜¬z1)の間で
論理和をとり、また、カウンタ回路300内のオア回路
(OR302〜OR316)により各カウンタ回路35
0の出力の間で論理和をとり、最上位ビットから数えて
最初に現れる“1”以降のビットを“1”にセットす
る。
0数予測回路10あるいは先行1数予測回路20の出力
である¬z56 〜¬z1を入力とし、所定の組み合わせに
基づき、カウンタ回路350内のオア回路(OR351
〜OR362)により各入力(¬z56 〜¬z1)の間で
論理和をとり、また、カウンタ回路300内のオア回路
(OR302〜OR316)により各カウンタ回路35
0の出力の間で論理和をとり、最上位ビットから数えて
最初に現れる“1”以降のビットを“1”にセットす
る。
【0117】例えば、入力(0001010……)に対
し、(0001111……)を出力する。
し、(0001111……)を出力する。
【0118】なお、図4に示すオア回路(OR301)
は、符号ビット分の先行0あるいは先行1予測の予測数
としてカウントしないように、最上位ビット分は、¬z
sign¬z56との論理和をとって、カウンタ回路300で
カウントのための論理和を取るようにしたものである。
は、符号ビット分の先行0あるいは先行1予測の予測数
としてカウントしないように、最上位ビット分は、¬z
sign¬z56との論理和をとって、カウンタ回路300で
カウントのための論理和を取るようにしたものである。
【0119】図4において、8ビット毎の信号を重複し
て生成しているのは、正規化シフタをバイトシフトとビ
ットシフトの2段構成とした場合のバイトシフト信号を
高速に生成するために負荷分けをしているためである。
て生成しているのは、正規化シフタをバイトシフトとビ
ットシフトの2段構成とした場合のバイトシフト信号を
高速に生成するために負荷分けをしているためである。
【0120】図5は、図2に示す大小比較・セレクタ5
0の概略構成を示す回路図である。
0の概略構成を示す回路図である。
【0121】図5において、400は、7個の排他的論
理和回路(XOR401〜XOR407)で構成され、
入力されるデータに対して、当該データを右に1ビット
シフトしたデータとの排他的論理和をとる回路である。
理和回路(XOR401〜XOR407)で構成され、
入力されるデータに対して、当該データを右に1ビット
シフトしたデータとの排他的論理和をとる回路である。
【0122】図5に示す大小比較・セレクタ50は、図
4に示すカウンタ回路300から構成される先行0カウ
ンタ回路30の出力および先行1カウンタ回路40の出
力を入力とし、両者の先行カウント数の大小を比較し、
正しい方のカウント数を、正規化シフト信号として正規
化シフタ70に出力する回路である。
4に示すカウンタ回路300から構成される先行0カウ
ンタ回路30の出力および先行1カウンタ回路40の出
力を入力とし、両者の先行カウント数の大小を比較し、
正しい方のカウント数を、正規化シフト信号として正規
化シフタ70に出力する回路である。
【0123】この場合に、正規化シフト信号は、正規化
シフト数をデコードした形のバイトシフト信号(SBY
1〜SBY7)、ビットシフト信号(SBI1〜SBI
8)として出力される。
シフト数をデコードした形のバイトシフト信号(SBY
1〜SBY7)、ビットシフト信号(SBI1〜SBI
8)として出力される。
【0124】まず、アンド回路(AND401〜AND
414)により、先行0カウンタ回路30の出力と先行
1カウンタ回路40の出力の各ビット毎の論理積をと
り、先行数の大きい方を選択する。
414)により、先行0カウンタ回路30の出力と先行
1カウンタ回路40の出力の各ビット毎の論理積をと
り、先行数の大きい方を選択する。
【0125】例えば、アンド回路(AND401〜AN
D414)で、先行0カウンタ回路30の出力(000
1111……)と先行1カウンタ回路40の出力(00
11111……)との各ビット毎の論理積をとることに
より、先行数(0の数)が大きい前者が出力される。
D414)で、先行0カウンタ回路30の出力(000
1111……)と先行1カウンタ回路40の出力(00
11111……)との各ビット毎の論理積をとることに
より、先行数(0の数)が大きい前者が出力される。
【0126】次に、アンド回路(AND401〜AND
414)により選択された先行数(0001111…
…)に対して、排他的論理和回路(XOR401〜XO
R407,XOR411〜XOR416)で、当該先行
数を右に1ビットシフトしたデータ(0000111…
…)との排他的論理和をとることにより、正規化シフト
のためのデコード信号(0001000……)が、バイ
トシフト信号(SBY1〜SBY7)(=000000
1)、および、ビットシフト信号(SBI1〜SBI
8)(=00001000)として出力される。
414)により選択された先行数(0001111…
…)に対して、排他的論理和回路(XOR401〜XO
R407,XOR411〜XOR416)で、当該先行
数を右に1ビットシフトしたデータ(0000111…
…)との排他的論理和をとることにより、正規化シフト
のためのデコード信号(0001000……)が、バイ
トシフト信号(SBY1〜SBY7)(=000000
1)、および、ビットシフト信号(SBI1〜SBI
8)(=00001000)として出力される。
【0127】図5に示すトライステートバッファ(TB
A401〜TBA407)はバイトシフト信号(SBY
1〜SBY7)によって制御され、1が存在するバイト
のビットシフト信号を選択してビットシフト信号(SB
I1〜SBI8)として出力する。
A401〜TBA407)はバイトシフト信号(SBY
1〜SBY7)によって制御され、1が存在するバイト
のビットシフト信号を選択してビットシフト信号(SB
I1〜SBI8)として出力する。
【0128】なお、本発明の先行0数予測回路10、先
行1数予測回路20、先行0カウンタ回路30、先行1
カウンタ回路40および大小比較・セレクタ50は、前
記図1、図4および図5の回路に限定されるものではな
く、種々の構成が可能であることは言うまでもない。
行1数予測回路20、先行0カウンタ回路30、先行1
カウンタ回路40および大小比較・セレクタ50は、前
記図1、図4および図5の回路に限定されるものではな
く、種々の構成が可能であることは言うまでもない。
【0129】図6は、本発明の先行0、1数予測回路を
具備してなる浮動小数点演算器を搭載するマイクロプロ
セッサの一例を示すブロック図である。
具備してなる浮動小数点演算器を搭載するマイクロプロ
セッサの一例を示すブロック図である。
【0130】図6において、501は分岐ユニット、5
02は命令キャッシュ、503はコンプリッション/デ
ィスパッチユニット、504は整数演算ユニット、50
5は整数レジスタ、506,509はリネームバッフ
ァ、507はロード/ストアユニット、508は浮動小
数点レジスタ、510は浮動小数点演算ユニット、51
1はバスインターフェイスユニット、512はデータキ
ャッシュである。
02は命令キャッシュ、503はコンプリッション/デ
ィスパッチユニット、504は整数演算ユニット、50
5は整数レジスタ、506,509はリネームバッフ
ァ、507はロード/ストアユニット、508は浮動小
数点レジスタ、510は浮動小数点演算ユニット、51
1はバスインターフェイスユニット、512はデータキ
ャッシュである。
【0131】図6において、バスインターフェイスユニ
ット511は、マイクロプロセッサとマイクロプロセッ
サシステムの図示していない残りの部分との間のデータ
の流れを制御する。
ット511は、マイクロプロセッサとマイクロプロセッ
サシステムの図示していない残りの部分との間のデータ
の流れを制御する。
【0132】バスインターフェイスユニット511は、
命令キャッシュ502とデータキャッシュ512とに接
続され、命令キャッシュ502は、命令列を分岐ユニッ
ト501とコンプリッション/ディスパッチユニット5
03に供給する。
命令キャッシュ502とデータキャッシュ512とに接
続され、命令キャッシュ502は、命令列を分岐ユニッ
ト501とコンプリッション/ディスパッチユニット5
03に供給する。
【0133】コンプリッション/ディスパッチユニット
503は、個々の命令を適切な演算ユニットに供給す
る。
503は、個々の命令を適切な演算ユニットに供給す
る。
【0134】また、図6に示すマイクロプロセッサは、
整数演算ユニット504、浮動小数点演算ユニット51
0およびロード/ストアユニット507を有する。
整数演算ユニット504、浮動小数点演算ユニット51
0およびロード/ストアユニット507を有する。
【0135】整数演算ユニット504とロード/ストア
ユニット507とは、整数レジスタ505あるいはリネ
ームバッファ506から処理すべきデータを読み出し、
処理結果をリネームバッファ506、さらに、リネーム
バッフア506を経由して整数レジスタ505に書き込
む。
ユニット507とは、整数レジスタ505あるいはリネ
ームバッファ506から処理すべきデータを読み出し、
処理結果をリネームバッファ506、さらに、リネーム
バッフア506を経由して整数レジスタ505に書き込
む。
【0136】浮動小数点演算ユニット510とロード/
ストアユニット507とは、浮動小数点レジスタ508
とリネームバッファ509とから処理すべきデータを読
み出し、処理結果をリネームバッファ509、さらに、
リネームバッフア509を経由して浮動小数点レジスタ
508に書き込む。
ストアユニット507とは、浮動小数点レジスタ508
とリネームバッファ509とから処理すべきデータを読
み出し、処理結果をリネームバッファ509、さらに、
リネームバッフア509を経由して浮動小数点レジスタ
508に書き込む。
【0137】浮動小数点演算ユニット510としては、
加算器、乗算器、除算器、開閉器、積和演算器等の演算
器が組み込まれる。
加算器、乗算器、除算器、開閉器、積和演算器等の演算
器が組み込まれる。
【0138】図7は、図6に示す浮動小数点ユニット5
10に組み込まれる積和演算器の一例として、A*B+
Cの演算を行う演算器の、仮数演算部の概略構成を示す
ブロック図である。
10に組み込まれる積和演算器の一例として、A*B+
Cの演算を行う演算器の、仮数演算部の概略構成を示す
ブロック図である。
【0139】図7において、604はアライナ、605
は乗算器、606は3−2キャリー保存加算器、607
は先行0、1数予測回路、608は加算器、609は正
規化シフタ、610は補正シフタ、611は丸め処理部
である。
は乗算器、606は3−2キャリー保存加算器、607
は先行0、1数予測回路、608は加算器、609は正
規化シフタ、610は補正シフタ、611は丸め処理部
である。
【0140】ここで、先行0、1数予測回路607は、
図2に示す先行0、1数予測回路100で構成される。
図2に示す先行0、1数予測回路100で構成される。
【0141】図7に示す積和演算器では、乗算器605
で、仮数A(602)と仮数B(603)との乗算を行
うとともに、仮数C(601)を乗算器605での乗算
結果と加算するためにアライナ604により、桁合わせ
のためのシフトを行う。
で、仮数A(602)と仮数B(603)との乗算を行
うとともに、仮数C(601)を乗算器605での乗算
結果と加算するためにアライナ604により、桁合わせ
のためのシフトを行う。
【0142】次に、乗算器605での乗算結果と、桁合
わせされた仮数C(601)は3入力2出力の桁上げ保
存加算器(フルアダー加算器)606により加算され、
この結果が2入力の加算器608に入力される。
わせされた仮数C(601)は3入力2出力の桁上げ保
存加算器(フルアダー加算器)606により加算され、
この結果が2入力の加算器608に入力される。
【0143】これと並行して、先行0、1数予測回路6
07では、前記加算器608への2入力をもとに加算結
果の先行0、1数を予測し、当該先行0、1数をシフト
数として次段の正規化シフタ609に入力する。
07では、前記加算器608への2入力をもとに加算結
果の先行0、1数を予測し、当該先行0、1数をシフト
数として次段の正規化シフタ609に入力する。
【0144】加算器608での加算結果は、前記先行
0、1数予測回路607からの先行0、1数のシフト分
だけ正規化シフタ609によりシフトされ、次に、補正
シフタ610に入力される。
0、1数予測回路607からの先行0、1数のシフト分
だけ正規化シフタ609によりシフトされ、次に、補正
シフタ610に入力される。
【0145】補正シフタ610では、先行0、1数予測
回路607で予測しきれなかったシフト分(1ビット)
がある場合に、1ビットシフトを行い、最後に、丸め処
理部611で丸め処理を行い、演算結果の仮数部612
が出力される。
回路607で予測しきれなかったシフト分(1ビット)
がある場合に、1ビットシフトを行い、最後に、丸め処
理部611で丸め処理を行い、演算結果の仮数部612
が出力される。
【0146】なお、積和演算器を具備した浮動小数点演
算器では、B=0として加算、C=0とした乗算も可能
である。
算器では、B=0として加算、C=0とした乗算も可能
である。
【0147】但し、比較命令等のために、別に加算器を
持つ構成も可能である。
持つ構成も可能である。
【0148】一方、積和演算をサポートしていない浮動
小数点演算器では、加算器と乗算器とを具備し、それぞ
れの演算を実行する。
小数点演算器では、加算器と乗算器とを具備し、それぞ
れの演算を実行する。
【0149】前記図8に示す従来の先行0数予測回路を
用いた加算演算処理に比して、本発明の先行0、1数予
測回路を用いた加算演算処理においては、演算結果が正
数でなければならないといった制約事項がないので、前
記図8に示す従来の先行0数予測回路を用いた加算演算
処理のように、仮数部の大小比較を行い、仮数部の大き
い方から小さい方を減算するように、ビット反転器を制
御する必要がなく、この分マイクロプロセッサを単純
化、高速化することが可能となる。
用いた加算演算処理に比して、本発明の先行0、1数予
測回路を用いた加算演算処理においては、演算結果が正
数でなければならないといった制約事項がないので、前
記図8に示す従来の先行0数予測回路を用いた加算演算
処理のように、仮数部の大小比較を行い、仮数部の大き
い方から小さい方を減算するように、ビット反転器を制
御する必要がなく、この分マイクロプロセッサを単純
化、高速化することが可能となる。
【0150】以上、本発明者によってなされた発明を、
前記発明の実施の形態に基づき具体的に説明したが、本
発明は、前記発明の実施の形態に限定されるものではな
く、その要旨を逸脱しない範囲において種々変更可能で
あることは勿論である。
前記発明の実施の形態に基づき具体的に説明したが、本
発明は、前記発明の実施の形態に限定されるものではな
く、その要旨を逸脱しない範囲において種々変更可能で
あることは勿論である。
【0151】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば、下
記のとおりである。
的なものによって得られる効果を簡単に説明すれば、下
記のとおりである。
【0152】(1)本発明によれば、先行0、1数予測
回路において、簡単な構成で、動作速度を向上させるこ
とが可能となる。
回路において、簡単な構成で、動作速度を向上させるこ
とが可能となる。
【0153】(2)本発明によれば、先行0、1数予測
回路において、先行0数と先行1数の予測結果の大小比
較により正しい先行数が出力できるので、加算結果の符
号が計算される前に正規化シフト数を求めることが可能
となる。
回路において、先行0数と先行1数の予測結果の大小比
較により正しい先行数が出力できるので、加算結果の符
号が計算される前に正規化シフト数を求めることが可能
となる。
【0154】(3)本発明によれば、浮動小数点演算器
において、加算演算および積和演算を高速に実行するこ
とが可能なり、加算演算および積和演算における処理時
間を短縮することが可能となる。
において、加算演算および積和演算を高速に実行するこ
とが可能なり、加算演算および積和演算における処理時
間を短縮することが可能となる。
【0155】(4)本発明によれば、マイクロプロセッ
サあるいは情報処理装置において、演算処理を高速に実
行することが可能となり、演算における処理時間を短縮
することが可能となる。
サあるいは情報処理装置において、演算処理を高速に実
行することが可能となり、演算における処理時間を短縮
することが可能となる。
【図1】本発明の一発明の実施の形態である先行0、1
数予測回路に使用される先行0数を予測する先行0数予
測回路、および、先行1数を予測する先行1数予測回路
の一例を示す回路図である。
数予測回路に使用される先行0数を予測する先行0数予
測回路、および、先行1数を予測する先行1数予測回路
の一例を示す回路図である。
【図2】本発明の一発明の実施の形態である先行0、1
数予測回路の概略構成を示すブロック図である。
数予測回路の概略構成を示すブロック図である。
【図3】本願発明者らにより本出願以前に検討された先
行0、1数予測回路の概略構成を示すブロック図であ
る。
行0、1数予測回路の概略構成を示すブロック図であ
る。
【図4】図2に示す先行0カウンタ回路30、あるい
は、先行1カウンタ回路40一例として、56ビットの
カウンタ回路の回路構成を示す回路図である。
は、先行1カウンタ回路40一例として、56ビットの
カウンタ回路の回路構成を示す回路図である。
【図5】図2に示す大小比較・セレクタ50の概略構成
を示す回路図である。
を示す回路図である。
【図6】本発明の先行0、1数予測回路を具備してなる
浮動小数点演算器を搭載するマイクロプロセッサの一例
を示すブロック図である。
浮動小数点演算器を搭載するマイクロプロセッサの一例
を示すブロック図である。
【図7】図6に示す浮動小数点ユニット510に組み込
まれる積和演算器の一例として、A*B+Cの演算を行
う演算器の、仮数演算部の概略構成を示すブロック図で
ある。
まれる積和演算器の一例として、A*B+Cの演算を行
う演算器の、仮数演算部の概略構成を示すブロック図で
ある。
【図8】先行0予測回路を備える従来の浮動小数点加算
器の仮数加算部の概略構成を示すブロック図である。
器の仮数加算部の概略構成を示すブロック図である。
AND…アンド回路、OR…オア回路、INV…インバ
ータ、XOR…排他的論理和回路、TBA…トライステ
ートバッファ、10,210…先行0数予測回路、2
0,220…先行1数予測回路、30,230…先行0
カウンタ回路、40,240…先行1カウンタ回路、5
0…大小比較・セレクタ回路、60…加算器、70…正
規化シフタ、100,200,607…先行0、1数予
測回路、250…セレクタ回路、300…56ビットの
カウンタ回路、350…8ビットのカウンタ回路、40
0…入力されるデータに対して当該データを右に1ビッ
トシフトしたデータとの排他的論理和をとる回路、50
1…分岐ユニット、502…命令キャッシュ、503…
コンプリッション/ディスパッチユニット、504…整
数演算ユニット、505…整数レジスタ、506,50
9…リネームバッファ、507…ロード/ストアユニッ
ト、508…浮動小数点レジスタ、510…浮動小数点
演算ユニット、511…バスインターフェイスユニッ
ト、512…データキャッシュ、604…アライナ、6
05…乗算器、606…3−2キャリー保存加算器、6
08,709…加算器、609,710…正規化シフ
タ、610,711…補正シフタ、611,712…丸
め処理部、703…スワッパ、704…比較器、705
…アライメントシフタ、706,707…ビット反転
器、708…先行0予測回路。
ータ、XOR…排他的論理和回路、TBA…トライステ
ートバッファ、10,210…先行0数予測回路、2
0,220…先行1数予測回路、30,230…先行0
カウンタ回路、40,240…先行1カウンタ回路、5
0…大小比較・セレクタ回路、60…加算器、70…正
規化シフタ、100,200,607…先行0、1数予
測回路、250…セレクタ回路、300…56ビットの
カウンタ回路、350…8ビットのカウンタ回路、40
0…入力されるデータに対して当該データを右に1ビッ
トシフトしたデータとの排他的論理和をとる回路、50
1…分岐ユニット、502…命令キャッシュ、503…
コンプリッション/ディスパッチユニット、504…整
数演算ユニット、505…整数レジスタ、506,50
9…リネームバッファ、507…ロード/ストアユニッ
ト、508…浮動小数点レジスタ、510…浮動小数点
演算ユニット、511…バスインターフェイスユニッ
ト、512…データキャッシュ、604…アライナ、6
05…乗算器、606…3−2キャリー保存加算器、6
08,709…加算器、609,710…正規化シフ
タ、610,711…補正シフタ、611,712…丸
め処理部、703…スワッパ、704…比較器、705
…アライメントシフタ、706,707…ビット反転
器、708…先行0予測回路。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 大久保 教夫 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 鈴木 裕司 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 (72)発明者 橋本 徹 神奈川県秦野市堀山下1番地 日立コンピ ュータエンジニアリング株式会社内 (72)発明者 磯部 敏子 神奈川県秦野市堀山下1番地 日立コンピ ュータエンジニアリング株式会社内
Claims (7)
- 【請求項1】 2つの浮動小数点数の加算処理に並行し
て先行0数あるいは先行1数を予測する先行0、1数予
測回路であって、前記2つの浮動小数点数を入力とし0
が先行すると仮定して先行0数を予測し出力する第1の
手段と、前記2つの浮動小数点数を入力とし1が先行す
ると仮定して先行1数を予測し出力する第2の手段と、
当該先行0数と先行1数との大小を比較し大きい方の先
行数を出力する第3の手段とを具備することを特徴とす
る先行0、1数予測回路。 - 【請求項2】 前記第1手段は、前記2つの浮動小数点
数の各ビット値に基づいて先行0数を予測し、当該先行
0数分だけ上位ビットに「0」が連続する先行0数予測
データを生成し、また、前記第2手段は、前記2つの浮
動小数点数の各ビット値に基づいて先行1数を予測し、
当該先行1数分だけ上位ビットに「0」が連続する先行
1数予測データを生成し、前記第3手段は、前記第1の
手段から出力される先行0数予測データと、前記第2の
手段から出力される先行1数予測データとの論理積を取
り、当該論理積を取った後のデータにおける、上位ビッ
トから「0」が連続するビット数を先行0数あるいは先
行1数として出力することを特徴とする請求項1に記載
された先行0、1数予測回路。 - 【請求項3】 前記第1の手段は、前記2つの浮動小数
点数を、A(=an,an-1 ,…,a1 )およびB(=
bn ,bn-1 ,…,b1 )とするとき、下記(1)式に
基づき算出される各ビット値で構成される(¬zi0)の
データを出力する算出手段と、前記算出手段から出力さ
れる(¬zi0)のデータの上位ビットから数えて最初に
「1」となるビット以降のビット値を全て「1」とし
て、前記先行0数分だけ上位ビットに「0」が連続する
先行0数予測データを出力する先行0数予測手段とを有
することを特徴とする請求項2に記載された先行0、1
数予測回路。 【数1】 ¬zi0=pi (+)(pi-1 +gi-1 ) ・・・・・(1) 但し、 pi =ai (+)bi gi =ai ・bi X・Yは、XとYの論理積、X+Yは、XとYの論理
和、X(+)Yは、XとYの排他的論理和、¬Xは、X
の論理否定を表す。 - 【請求項4】 前記第2の手段は、前記2つの浮動小数
点数を、A(=an,an-1 ,…,a1 )およびB(=
bn ,bn-1 ,…,b1 )とするとき、下記(2)式に
基づき算出される各ビット値で構成される(¬zi1)の
データを出力する算出手段と、前記算出手段から出力さ
れる(¬zi1)のデータの上位ビットから数えて最初に
「1」となるビット以降のビット値を全て「1」とし
て、前記先行1数分だけ上位ビットに「0」が連続する
先行1数予測データを出力する先行1数予測手段とを有
することを特徴とする請求項2に記載された先行0、1
数予測回路。 【数2】 ¬zi1=gi-1 (+)¬(pi ) ・・・・・・(2) 但し、pi =ai (+)bi gi =ai ・bi X・Yは、XとYの論理積 X(+)Yは、XとYの排他的論理和、¬Xは、Xの論
理否定を表す。 - 【請求項5】 請求項1ないし請求項4に記載された先
行0、1数予測回路と、前記先行0、1数予測回路に入
力される2つの浮動小数点数を加算する加算器と、前記
先行0、1数予測回路の先行0数あるいは先行1数に基
づき加算器から出力される加算結果をシフトする正規化
シフタとを具備することを特徴とする浮動小数点演算装
置。 - 【請求項6】 請求項5に記載された浮動小数点演算装
置を備えることを特徴とするマイクロプロセッサ。 - 【請求項7】 請求項6に記載されたマイクロプロセッ
サを備えることを特徴とする情報処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19436296A JPH1040078A (ja) | 1996-07-24 | 1996-07-24 | 先行0、1数予測回路、浮動小数点演算装置、マイクロプロセッサおよび情報処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19436296A JPH1040078A (ja) | 1996-07-24 | 1996-07-24 | 先行0、1数予測回路、浮動小数点演算装置、マイクロプロセッサおよび情報処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1040078A true JPH1040078A (ja) | 1998-02-13 |
Family
ID=16323325
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP19436296A Pending JPH1040078A (ja) | 1996-07-24 | 1996-07-24 | 先行0、1数予測回路、浮動小数点演算装置、マイクロプロセッサおよび情報処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1040078A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008096446A1 (ja) | 2007-02-09 | 2008-08-14 | Fujitsu Limited | 演算処理装置、情報処理装置、および演算方法 |
| JP2012530978A (ja) * | 2009-12-17 | 2012-12-06 | インテル・コーポレーション | 単一命令でシフトおよび排他的論理和演算を行う方法および装置 |
-
1996
- 1996-07-24 JP JP19436296A patent/JPH1040078A/ja active Pending
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008096446A1 (ja) | 2007-02-09 | 2008-08-14 | Fujitsu Limited | 演算処理装置、情報処理装置、および演算方法 |
| US8554819B2 (en) | 2007-02-09 | 2013-10-08 | Fujitsu Limited | System to implement floating point adder using mantissa, rounding, and normalization |
| JP2012530978A (ja) * | 2009-12-17 | 2012-12-06 | インテル・コーポレーション | 単一命令でシフトおよび排他的論理和演算を行う方法および装置 |
| JP2014160500A (ja) * | 2009-12-17 | 2014-09-04 | Intel Corp | 単一命令でシフトおよび排他的論理和演算を行う方法および装置 |
| JP2014194825A (ja) * | 2009-12-17 | 2014-10-09 | Intel Corp | 単一命令でシフトおよび排他的論理和演算を行う方法および装置 |
| JP2015164061A (ja) * | 2009-12-17 | 2015-09-10 | インテル・コーポレーション | 単一命令でシフト・アンド・排他的論理和演算を行う方法および装置 |
| US9495165B2 (en) | 2009-12-17 | 2016-11-15 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
| US9495166B2 (en) | 2009-12-17 | 2016-11-15 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
| US9501281B2 (en) | 2009-12-17 | 2016-11-22 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
| US9747105B2 (en) | 2009-12-17 | 2017-08-29 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
| JP2017152016A (ja) * | 2009-12-17 | 2017-08-31 | インテル・コーポレーション | 単一命令でシフト・アンド・排他的論理和演算を行うシステム |
| US10684855B2 (en) | 2009-12-17 | 2020-06-16 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2662196B2 (ja) | 演算結果正規化方法及び装置 | |
| US5963461A (en) | Multiplication apparatus and methods which generate a shift amount by which the product of the significands is shifted for normalization or denormalization | |
| US5010508A (en) | Prenormalization for a floating-point adder | |
| US5633819A (en) | Inexact leading-one/leading-zero prediction integrated with a floating-point adder | |
| KR20080055985A (ko) | 선택가능 준정밀도를 가진 부동―소수점 프로세서 | |
| JPH06236257A (ja) | データ・プロセッサにおいて浮動小数点実行ユニット内で後正規化を実行する方法および装置 | |
| US8185570B2 (en) | Three-term input floating-point adder-subtractor | |
| US20080288571A1 (en) | Arithmetic device for performing division or square root operation of floating point number and arithmetic method therefor | |
| JPH0542011B2 (ja) | ||
| JP2618374B2 (ja) | 最上位の数字の位置の検出 | |
| KR100465371B1 (ko) | 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치 | |
| KR100203468B1 (ko) | 부동소수점수를 위한 산술연산장치 | |
| EP0487814A2 (en) | Overflow determination for three-operand alus in a scalable compound instruction set machine | |
| US5623435A (en) | Arithmetic unit capable of performing concurrent operations for high speed operation | |
| CN108694037B (zh) | 用于在执行浮点减法时估计移位量的装置和方法 | |
| JPH057737B2 (ja) | ||
| USH1222H (en) | Apparatus for determining sticky bit value in arithmetic operations | |
| US7668892B2 (en) | Data processing apparatus and method for normalizing a data value | |
| US6178437B1 (en) | Method and apparatus for anticipating leading digits and normalization shift amounts in a floating-point processor | |
| US10275218B1 (en) | Apparatus and method for subtracting significand values of floating-point operands | |
| US6594679B1 (en) | Leading-zero anticipator having an independent sign bit determination module | |
| JPH1040078A (ja) | 先行0、1数予測回路、浮動小数点演算装置、マイクロプロセッサおよび情報処理装置 | |
| US6360238B1 (en) | Leading zero/one anticipator having an integrated sign selector | |
| JP4439060B2 (ja) | 浮動小数点加算器 | |
| JP3257278B2 (ja) | 冗長なシフト数予測とシフト誤り補正を用いた正規化装置 |