JPH10116183A - マイクロプロセッサ - Google Patents
マイクロプロセッサInfo
- Publication number
- JPH10116183A JPH10116183A JP8268858A JP26885896A JPH10116183A JP H10116183 A JPH10116183 A JP H10116183A JP 8268858 A JP8268858 A JP 8268858A JP 26885896 A JP26885896 A JP 26885896A JP H10116183 A JPH10116183 A JP H10116183A
- Authority
- JP
- Japan
- Prior art keywords
- storage means
- data
- bit
- bits
- stored
- 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
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】
【課題】 平方根演算の処理に時間が掛かっていた。ま
た、演算部のハードウェア構成に平方根命令を持つもの
が無いという課題があった。 【解決手段】 レジスタ1〜3、減算器4、セレクタ
5,10、シフタ6,7、ビット設定機能付きセレクタ
8、ビット設定回路9から成るデータパス部100と、
メモリ101と、そのメモリ101に格納された制御プ
ログラムに基づいてデータパス部100を制御するプロ
グラム制御部102とを備えたので、平方根演算および
除算のためのハードウェアを構成できると共に、ソフト
ウェアのみで実現した場合に比べて速く平方根または除
算が実行できるものである。
た、演算部のハードウェア構成に平方根命令を持つもの
が無いという課題があった。 【解決手段】 レジスタ1〜3、減算器4、セレクタ
5,10、シフタ6,7、ビット設定機能付きセレクタ
8、ビット設定回路9から成るデータパス部100と、
メモリ101と、そのメモリ101に格納された制御プ
ログラムに基づいてデータパス部100を制御するプロ
グラム制御部102とを備えたので、平方根演算および
除算のためのハードウェアを構成できると共に、ソフト
ウェアのみで実現した場合に比べて速く平方根または除
算が実行できるものである。
Description
【0001】
【発明の属する技術分野】この発明は、平方根演算と除
算を行うための命令を備えたマイクロプロセッサに関す
るものである。
算を行うための命令を備えたマイクロプロセッサに関す
るものである。
【0002】
【従来の技術】マイクロプロセッサのデータ演算部で各
種の演算を行う場合に、異なる演算に対して共通のハー
ドウェアを用いることでハードウェア量を削減すること
ができる。例えば、加算器に対して、加算器への入力の
一方とキャリー入力をビット反転する手段を設けること
で加減算を同じハードウェアで実現することができる。
また、加算器とシフタを持つ演算部では、シフトと加算
を繰り返すことで乗算を実現することができる。
種の演算を行う場合に、異なる演算に対して共通のハー
ドウェアを用いることでハードウェア量を削減すること
ができる。例えば、加算器に対して、加算器への入力の
一方とキャリー入力をビット反転する手段を設けること
で加減算を同じハードウェアで実現することができる。
また、加算器とシフタを持つ演算部では、シフトと加算
を繰り返すことで乗算を実現することができる。
【0003】除算については、減算器とシフタを持つ演
算部でシフトと減算を繰り返すことで実現できるが、商
を得るための減算が通常条件付きとなるため、除算を行
うには、この条件付きの減算と、条件が満たされている
かどうかによって商を立てる手段を、専用ハードウェア
の形で設けることで除算のサイクル数を削減することが
できる。
算部でシフトと減算を繰り返すことで実現できるが、商
を得るための減算が通常条件付きとなるため、除算を行
うには、この条件付きの減算と、条件が満たされている
かどうかによって商を立てる手段を、専用ハードウェア
の形で設けることで除算のサイクル数を削減することが
できる。
【0004】このような専用ハードウェアを用いる方法
とは別に、命令を組み合わせてソフトウェアで求める方
法がある。例えば、積和演算ができるDSP(ディジタ
ルシグナル プロセッサ)に対して、除算および平方根
演算が、乗算および加算を組み合わせて順に近似値を得
るニュートン・ラプソン法で実現することができる。
とは別に、命令を組み合わせてソフトウェアで求める方
法がある。例えば、積和演算ができるDSP(ディジタ
ルシグナル プロセッサ)に対して、除算および平方根
演算が、乗算および加算を組み合わせて順に近似値を得
るニュートン・ラプソン法で実現することができる。
【0005】例えば、5〜1.0の間に正規化されたa
の平方根を求めるには、 Xi+1 =2*Xi *(0.75+(−a)*Xi *X
i ) X0 =(1−√2)a+(√2−0.5) の演算(i=0,1,2・・・)の繰り返しにより 1/(2*√a) の近似値としてXi を求め、2*aを乗算して√aを求
めることができる。
の平方根を求めるには、 Xi+1 =2*Xi *(0.75+(−a)*Xi *X
i ) X0 =(1−√2)a+(√2−0.5) の演算(i=0,1,2・・・)の繰り返しにより 1/(2*√a) の近似値としてXi を求め、2*aを乗算して√aを求
めることができる。
【0006】
【発明が解決しようとする課題】従来のマイクロプロセ
ッサは以上のように構成されているので、ニュートン・
ラプソン法による平方根演算では専用ハードウェアは不
要である。しかしながら、例えば16ビット乗算器を備
えたDSPでは32ビットの倍精度演算が必要であり、
そのためには20サイクルの処理を4回程度繰り返すこ
とが必要で、前後の処理を含めると、aから最終的に√
aを得るまでには合計100サイクル程度が必要にな
り、処理に時間が掛かってしまう課題があった。また、
従来のDSPに用いられていた演算部のハードウェア構
成では、除算命令を持つものはあったが、平方根命令を
持つものが無く、平方根命令はソフトウェアで実現する
しかないなどの課題があった。
ッサは以上のように構成されているので、ニュートン・
ラプソン法による平方根演算では専用ハードウェアは不
要である。しかしながら、例えば16ビット乗算器を備
えたDSPでは32ビットの倍精度演算が必要であり、
そのためには20サイクルの処理を4回程度繰り返すこ
とが必要で、前後の処理を含めると、aから最終的に√
aを得るまでには合計100サイクル程度が必要にな
り、処理に時間が掛かってしまう課題があった。また、
従来のDSPに用いられていた演算部のハードウェア構
成では、除算命令を持つものはあったが、平方根命令を
持つものが無く、平方根命令はソフトウェアで実現する
しかないなどの課題があった。
【0007】この発明は上記のような課題を解決するた
めになされたもので、平方根および除算を共通化したハ
ードウェア構成で実現すると共に、平方根および除算の
処理を容易に行うことができるマイクロプロセッサを得
ることを目的とする。
めになされたもので、平方根および除算を共通化したハ
ードウェア構成で実現すると共に、平方根および除算の
処理を容易に行うことができるマイクロプロセッサを得
ることを目的とする。
【0008】
【課題を解決するための手段】請求項1記載の発明に係
るマイクロプロセッサは、第1から第3の記憶手段、減
算器、第1の選択手段、第1のシフタ、第2の選択手
段、第2のシフタ、ビット設定機能付き選択手段、ビッ
ト設定手段から成る演算手段と、その演算手段とデータ
の入出力を行うと共にその演算手段の制御プログラムを
記憶する第4の記憶手段と、その第4の記憶手段に格納
された制御プログラムに基づいてその演算手段を制御す
る命令制御手段とを備えたものである。
るマイクロプロセッサは、第1から第3の記憶手段、減
算器、第1の選択手段、第1のシフタ、第2の選択手
段、第2のシフタ、ビット設定機能付き選択手段、ビッ
ト設定手段から成る演算手段と、その演算手段とデータ
の入出力を行うと共にその演算手段の制御プログラムを
記憶する第4の記憶手段と、その第4の記憶手段に格納
された制御プログラムに基づいてその演算手段を制御す
る命令制御手段とを備えたものである。
【0009】請求項2記載の発明に係るマイクロプロセ
ッサは、第1の記憶手段のデータを第2のシフタに入力
し、左1ビット算術シフトを行い、その第1の記憶手段
に再び格納するようにしたものである。
ッサは、第1の記憶手段のデータを第2のシフタに入力
し、左1ビット算術シフトを行い、その第1の記憶手段
に再び格納するようにしたものである。
【0010】請求項3記載の発明に係るマイクロプロセ
ッサは、ビット設定手段により第1の記憶手段のデータ
から上位2ビットを取り出し、第2の記憶手段のデータ
の下位2ビットに設定すると共に、第1の記憶手段のデ
ータを第2のシフタに入力し、左2ビット算術シフトを
行い、その第1の記憶手段に再び格納するようにしたも
のである。
ッサは、ビット設定手段により第1の記憶手段のデータ
から上位2ビットを取り出し、第2の記憶手段のデータ
の下位2ビットに設定すると共に、第1の記憶手段のデ
ータを第2のシフタに入力し、左2ビット算術シフトを
行い、その第1の記憶手段に再び格納するようにしたも
のである。
【0011】請求項4記載の発明に係るマイクロプロセ
ッサは、減算結果データの符号ビットが0の時には、そ
の減算器からの出力を第1のシフタに入力し左2ビット
算術シフトを行いその第2の記憶手段に再び格納すると
共に、その第3の記憶手段のデータを第2のシフタに入
力し左1ビット算術シフトしてビット機能付き選択手段
によって下位3ビットを101に設定しその結果をその
第3の記憶手段に再び格納し、減算結果データの符号ビ
ットが1の時には、その第2の記憶手段のデータを第1
のシフタに入力し左2ビット算術シフトを行いその第2
の記憶手段に再び格納すると共に、その第3の記憶手段
のデータを第2のシフタに入力し左1ビット算術シフト
してそのビット機能付き選択手段によって下位3ビット
を001に設定しその結果をその第3の記憶手段に再び
格納するようにしたものである。
ッサは、減算結果データの符号ビットが0の時には、そ
の減算器からの出力を第1のシフタに入力し左2ビット
算術シフトを行いその第2の記憶手段に再び格納すると
共に、その第3の記憶手段のデータを第2のシフタに入
力し左1ビット算術シフトしてビット機能付き選択手段
によって下位3ビットを101に設定しその結果をその
第3の記憶手段に再び格納し、減算結果データの符号ビ
ットが1の時には、その第2の記憶手段のデータを第1
のシフタに入力し左2ビット算術シフトを行いその第2
の記憶手段に再び格納すると共に、その第3の記憶手段
のデータを第2のシフタに入力し左1ビット算術シフト
してそのビット機能付き選択手段によって下位3ビット
を001に設定しその結果をその第3の記憶手段に再び
格納するようにしたものである。
【0012】請求項5記載の発明に係るマイクロプロセ
ッサは、第3の記憶手段のデータを第2のシフタに入力
し、右1ビット論理シフトし、その結果をその第3の記
憶手段に再び格納するようにしたものである。
ッサは、第3の記憶手段のデータを第2のシフタに入力
し、右1ビット論理シフトし、その結果をその第3の記
憶手段に再び格納するようにしたものである。
【0013】請求項6記載の発明に係るマイクロプロセ
ッサは、第1の記憶手段に被開平数を設定、第2の記憶
手段に16進数の0を設定、第3の記憶手段に16進数
の1を設定し、その第1の記憶手段のデータを左1ビッ
ト算術シフトすると共にその第1の記憶手段に再び格納
し、その第1の記憶手段のデータの上位から2ビットを
取り出しその第2の記憶手段に設定し、その第1の記憶
手段のデータを左2ビット算術シフトすると共にその第
1の記憶手段に再び格納し、その第2の記憶手段のデー
タからその第3の記憶手段のデータを減算し、減算結果
データの符号ビットが0である時には減算結果データを
左2ビット算術シフトしてその第2の記憶手段に格納
し、その第3の記憶手段のデータを左1ビット算術シフ
トすると共に下位3ビットを101に設定してその第3
の記憶手段に再び格納し、減算結果データの符号ビット
が1である時にはその第2の記憶手段のデータを左2ビ
ット算術シフトしてその第2の記憶手段に格納し、その
第3の記憶手段のデータを左1ビット算術シフトすると
共に下位3ビットを001に設定してその第3の記憶手
段に再び格納し、その第3の記憶手段のデータを右1ビ
ット論理シフトしてその第3の記憶手段に再び格納する
ようにしたものである。
ッサは、第1の記憶手段に被開平数を設定、第2の記憶
手段に16進数の0を設定、第3の記憶手段に16進数
の1を設定し、その第1の記憶手段のデータを左1ビッ
ト算術シフトすると共にその第1の記憶手段に再び格納
し、その第1の記憶手段のデータの上位から2ビットを
取り出しその第2の記憶手段に設定し、その第1の記憶
手段のデータを左2ビット算術シフトすると共にその第
1の記憶手段に再び格納し、その第2の記憶手段のデー
タからその第3の記憶手段のデータを減算し、減算結果
データの符号ビットが0である時には減算結果データを
左2ビット算術シフトしてその第2の記憶手段に格納
し、その第3の記憶手段のデータを左1ビット算術シフ
トすると共に下位3ビットを101に設定してその第3
の記憶手段に再び格納し、減算結果データの符号ビット
が1である時にはその第2の記憶手段のデータを左2ビ
ット算術シフトしてその第2の記憶手段に格納し、その
第3の記憶手段のデータを左1ビット算術シフトすると
共に下位3ビットを001に設定してその第3の記憶手
段に再び格納し、その第3の記憶手段のデータを右1ビ
ット論理シフトしてその第3の記憶手段に再び格納する
ようにしたものである。
【0014】請求項7記載の発明に係るマイクロプロセ
ッサは、減算器により第2の記憶手段のデータから第3
の記憶手段のデータを減算し、減算結果データの符号ビ
ットが0の時にはその減算器からの出力を第1のシフタ
に入力し、左1ビット算術シフトを行い第2の記憶手段
に再び格納すると共にその第1の記憶手段のデータを第
2のシフタに入力し、左1ビットシフトし、ビット機能
付き選択手段によって下位1ビットを1に設定し、その
結果をその第1の記憶手段に再び格納し、減算結果デー
タの符号ビットが1の時にはその第2の記憶手段のデー
タをその第1のシフタに入力し、左1ビット算術シフト
を行いその第2の記憶手段に再び格納すると共にその第
1の記憶手段のデータをその第2のシフタに入力し、左
1ビット算術シフトし、そのビット機能付き選択手段に
よって下位1ビットを1に設定し、その結果をその第1
の記憶手段に再び格納するようにしたものである。
ッサは、減算器により第2の記憶手段のデータから第3
の記憶手段のデータを減算し、減算結果データの符号ビ
ットが0の時にはその減算器からの出力を第1のシフタ
に入力し、左1ビット算術シフトを行い第2の記憶手段
に再び格納すると共にその第1の記憶手段のデータを第
2のシフタに入力し、左1ビットシフトし、ビット機能
付き選択手段によって下位1ビットを1に設定し、その
結果をその第1の記憶手段に再び格納し、減算結果デー
タの符号ビットが1の時にはその第2の記憶手段のデー
タをその第1のシフタに入力し、左1ビット算術シフト
を行いその第2の記憶手段に再び格納すると共にその第
1の記憶手段のデータをその第2のシフタに入力し、左
1ビット算術シフトし、そのビット機能付き選択手段に
よって下位1ビットを1に設定し、その結果をその第1
の記憶手段に再び格納するようにしたものである。
【0015】請求項8記載の発明に係るマイクロプロセ
ッサは、第2の記憶手段に被除数を設定、第3の記憶手
段に除数を設定し、その第2の記憶手段のデータから第
1の記憶手段のデータを減算し、減算結果データの符号
ビットが0である時には減算結果データを左2ビット算
術シフトしてその第2の記憶手段に格納し、その第1の
記憶手段のデータを左1ビット算術シフトして、下位1
ビットを1に設定しその第1の記憶手段に再び格納し、
減算結果データの符号ビットが1である時にはその第2
の記憶手段のデータを左2ビット算術シフトしてその第
2の記憶手段に格納し、その第1の記憶手段のデータを
左1ビット算術シフトして、下位1ビットを1に設定し
第1の記憶手段に再び格納するようにしたものである。
ッサは、第2の記憶手段に被除数を設定、第3の記憶手
段に除数を設定し、その第2の記憶手段のデータから第
1の記憶手段のデータを減算し、減算結果データの符号
ビットが0である時には減算結果データを左2ビット算
術シフトしてその第2の記憶手段に格納し、その第1の
記憶手段のデータを左1ビット算術シフトして、下位1
ビットを1に設定しその第1の記憶手段に再び格納し、
減算結果データの符号ビットが1である時にはその第2
の記憶手段のデータを左2ビット算術シフトしてその第
2の記憶手段に格納し、その第1の記憶手段のデータを
左1ビット算術シフトして、下位1ビットを1に設定し
第1の記憶手段に再び格納するようにしたものである。
【0016】
【発明の実施の形態】以下、この発明の実施の一形態を
説明する。 実施の形態1.図1はこの発明の実施の形態1によるマ
イクロプロセッサを示す構成図であり、以下の説明でデ
ータは第0ビットをLSB(リースト シグニフィカン
ト ビット)、第31ビットをMSB(モースト シグ
ニフィカント ビット)とする。図において、1〜3は
それぞれ32ビットのデータを記憶するレジスタ(第1
〜第3の記憶手段)、4はレジスタ2のデータからレジ
スタ3のデータを減算する32ビットの減算器である。
5はレジスタ2のデータと減算器4の減算結果データか
ら一方を選択して出力するセレクタ(第1の選択手
段)、6はセレクタ5の出力データを左に1ビットまた
は左に2ビットシフトし、シフトアウトしたビットは切
り捨て、0をシフトインする32ビットのシフタ(第1
のシフタ)である。
説明する。 実施の形態1.図1はこの発明の実施の形態1によるマ
イクロプロセッサを示す構成図であり、以下の説明でデ
ータは第0ビットをLSB(リースト シグニフィカン
ト ビット)、第31ビットをMSB(モースト シグ
ニフィカント ビット)とする。図において、1〜3は
それぞれ32ビットのデータを記憶するレジスタ(第1
〜第3の記憶手段)、4はレジスタ2のデータからレジ
スタ3のデータを減算する32ビットの減算器である。
5はレジスタ2のデータと減算器4の減算結果データか
ら一方を選択して出力するセレクタ(第1の選択手
段)、6はセレクタ5の出力データを左に1ビットまた
は左に2ビットシフトし、シフトアウトしたビットは切
り捨て、0をシフトインする32ビットのシフタ(第1
のシフタ)である。
【0017】7は32ビットのデータを右または左に算
術シフトまたは論理シフトするシフタ(第2のシフ
タ)、8はシフタ7の出力をそのまま出力するか、もし
くはビット31〜ビット3についてはシフタ7の出力の
ビット31〜ビット3迄の29ビットをそのまま出力
し、ビット2〜0について001または101の設定の
いずれかを選択し出力するか、もしくはシフタ7の出力
のビット31〜ビット1迄の31ビットをそのまま出力
し、ビット0に1または0のいずれかを選択し設定する
ビット設定機能付きセレクタ(ビット機能付き選択手
段)である。9はレジスタ1からビット31,30を取
り出し、それぞれレジスタ2のビット1,0に直接設定
するビット設定回路(ビット設定手段)、10はレジス
タ1のデータとレジスタ3のデータの一方を選択してシ
フタ7に出力するセレクタ(第2の選択手段)であり、
これらの構成によりデータ演算を行うデータパス部(演
算手段)100を構成する。101は命令およびデータ
を記憶し、読み出しおよび書き込みを行うメモリ(第4
の記憶手段)、102はメモリ101からの命令をデコ
ードし、データパス部100の命令制御およびデータの
転送制御を行うプログラム制御部(命令制御手段)であ
る。
術シフトまたは論理シフトするシフタ(第2のシフ
タ)、8はシフタ7の出力をそのまま出力するか、もし
くはビット31〜ビット3についてはシフタ7の出力の
ビット31〜ビット3迄の29ビットをそのまま出力
し、ビット2〜0について001または101の設定の
いずれかを選択し出力するか、もしくはシフタ7の出力
のビット31〜ビット1迄の31ビットをそのまま出力
し、ビット0に1または0のいずれかを選択し設定する
ビット設定機能付きセレクタ(ビット機能付き選択手
段)である。9はレジスタ1からビット31,30を取
り出し、それぞれレジスタ2のビット1,0に直接設定
するビット設定回路(ビット設定手段)、10はレジス
タ1のデータとレジスタ3のデータの一方を選択してシ
フタ7に出力するセレクタ(第2の選択手段)であり、
これらの構成によりデータ演算を行うデータパス部(演
算手段)100を構成する。101は命令およびデータ
を記憶し、読み出しおよび書き込みを行うメモリ(第4
の記憶手段)、102はメモリ101からの命令をデコ
ードし、データパス部100の命令制御およびデータの
転送制御を行うプログラム制御部(命令制御手段)であ
る。
【0018】次に動作について説明する。まず、この構
成のマイクロプロセッサにおいて平方根演算のために用
いる命令動作について説明する。図2はASH(アリス
メティック シフト)[+1]命令の動作を示す説明図
であり、図2により、平方根演算の被開平数の桁合わせ
を行う命令(ASH[+1]とニーモニックで示す)の
動作を説明する。まず、レジスタ1のデータをセレクタ
10を介してシフタ7に入力し、シフタ7において左1
ビットの算術シフトを行い、出力を再びレジスタ1に格
納する。図3はLSX(ロジカル シフト)[+2]命
令の動作を示す説明図であり、図3により、平方根演算
に必要な機能の一部を行う左1ビット算術シフトの命令
(LSX[+2]とニーモニックで示す)の動作を説明
する。レジスタ2のビット1,0にレジスタ1のビット
31,30をビット設定回路9で設定し、同時にレジス
タ1のデータをセレクタ10を介してシフタ7に出力
し、シフタ7によって左2ビット算術シフトし、レジス
タ1に再び格納する。
成のマイクロプロセッサにおいて平方根演算のために用
いる命令動作について説明する。図2はASH(アリス
メティック シフト)[+1]命令の動作を示す説明図
であり、図2により、平方根演算の被開平数の桁合わせ
を行う命令(ASH[+1]とニーモニックで示す)の
動作を説明する。まず、レジスタ1のデータをセレクタ
10を介してシフタ7に入力し、シフタ7において左1
ビットの算術シフトを行い、出力を再びレジスタ1に格
納する。図3はLSX(ロジカル シフト)[+2]命
令の動作を示す説明図であり、図3により、平方根演算
に必要な機能の一部を行う左1ビット算術シフトの命令
(LSX[+2]とニーモニックで示す)の動作を説明
する。レジスタ2のビット1,0にレジスタ1のビット
31,30をビット設定回路9で設定し、同時にレジス
タ1のデータをセレクタ10を介してシフタ7に出力
し、シフタ7によって左2ビット算術シフトし、レジス
タ1に再び格納する。
【0019】図4はSQRT(スクェア ルート)命令
の動作を示す説明図であり、図4により、平方根演算に
必要な機能の一部を行う命令(SQRTとニーモニック
で示す)の動作を説明する。レジスタ2のデータからレ
ジスタ3のデータを減算器4により減算して減算結果デ
ータの符号が負になる場合はレジスタ2のデータ、正ま
たは0になる場合は減算器4の減算結果データをセレク
タ5で選択して出力し、さらに、シフタ6によって左2
ビットの算術シフトを行い、結果をレジスタ2に格納す
ると共に、レジスタ3のデータをシフタ7によって左1
ビットの算術シフトを行い、さらに、セレクタ8により
下位3ビットに減算器4による減算結果データの符号が
負になる場合は001、正または0になる場合は101
を選択して設定し、結果をレジスタ3に格納する。
の動作を示す説明図であり、図4により、平方根演算に
必要な機能の一部を行う命令(SQRTとニーモニック
で示す)の動作を説明する。レジスタ2のデータからレ
ジスタ3のデータを減算器4により減算して減算結果デ
ータの符号が負になる場合はレジスタ2のデータ、正ま
たは0になる場合は減算器4の減算結果データをセレク
タ5で選択して出力し、さらに、シフタ6によって左2
ビットの算術シフトを行い、結果をレジスタ2に格納す
ると共に、レジスタ3のデータをシフタ7によって左1
ビットの算術シフトを行い、さらに、セレクタ8により
下位3ビットに減算器4による減算結果データの符号が
負になる場合は001、正または0になる場合は101
を選択して設定し、結果をレジスタ3に格納する。
【0020】図5はLSH(ロジカル シフト)[−
1]命令の動作を示す説明図であり、図5により、平方
根演算の結果の桁合わせを行う命令(LSH[−1]と
ニーモニックで示す)の動作を説明する。レジスタ3の
データをセレクタ10を介してシフタ7に出力し、シフ
タ7において右1ビットの論理シフトを行い、出力をレ
ジスタ3に格納する。
1]命令の動作を示す説明図であり、図5により、平方
根演算の結果の桁合わせを行う命令(LSH[−1]と
ニーモニックで示す)の動作を説明する。レジスタ3の
データをセレクタ10を介してシフタ7に出力し、シフ
タ7において右1ビットの論理シフトを行い、出力をレ
ジスタ3に格納する。
【0021】次に、このマイクロプロセッサでは、図2
〜図5に示した動作を行う命令を用いることで開平によ
る平方根演算を実現できることを説明する。そのため、
まず、開平により平方根演算を行うアルゴリズムをフロ
ーチャートおよびレジスタ説明図で説明し、次に先ほど
述べた命令がこのフローチャートの各ステップを実現し
ていることにより、開平が実現できることを示す。図6
は開平により平方根演算を行うアルゴリズムを示すフロ
ーチャート、図7〜図9はレジスタ説明図である。図6
において示す各ステップ毎に説明する。
〜図5に示した動作を行う命令を用いることで開平によ
る平方根演算を実現できることを説明する。そのため、
まず、開平により平方根演算を行うアルゴリズムをフロ
ーチャートおよびレジスタ説明図で説明し、次に先ほど
述べた命令がこのフローチャートの各ステップを実現し
ていることにより、開平が実現できることを示す。図6
は開平により平方根演算を行うアルゴリズムを示すフロ
ーチャート、図7〜図9はレジスタ説明図である。図6
において示す各ステップ毎に説明する。
【0022】ステップ1 レジスタ1に被開平数を、レジスタ3に開平演算のため
の部分和の初期値である00000001を、レジスタ
2に開平演算のための余りの初期値である000000
00をそれぞれ設定する。 ステップ2 レジスタ1の被開平数を左1ビット算術シフトしてレジ
スタ1に格納、被開平数に対して開平演算のための桁合
わせを行う。 ステップ3 被開平数から2ビット取り出すために、レジスタ1から
上位2ビットを取り出しレジスタ2の下位2ビットに設
定、余りに2ビット追加する。また、レジスタ1を左2
ビット算術シフトして再びレジスタ1に格納し、次の被
開平数の取り出しビットを準備する。
の部分和の初期値である00000001を、レジスタ
2に開平演算のための余りの初期値である000000
00をそれぞれ設定する。 ステップ2 レジスタ1の被開平数を左1ビット算術シフトしてレジ
スタ1に格納、被開平数に対して開平演算のための桁合
わせを行う。 ステップ3 被開平数から2ビット取り出すために、レジスタ1から
上位2ビットを取り出しレジスタ2の下位2ビットに設
定、余りに2ビット追加する。また、レジスタ1を左2
ビット算術シフトして再びレジスタ1に格納し、次の被
開平数の取り出しビットを準備する。
【0023】ステップ4 レジスタ2のデータからレジスタ3のデータを減算し、
根の最下位ビットに1が来ると仮定した時の余りを求め
る。余りが0または正の値であれば根の最下位は1であ
るので、減算した結果を新しい余りとし、左2ビット算
術シフトしてレジスタ2に格納し、次の余りの取り出し
の準備をする。また、レジスタ3のデータを左1ビット
算術シフトして下位3ビットを101に設定し、根の次
のビットに1を設定すると共に次の根のビットが1であ
ったときの部分和を準備をする。また、余りが負の値で
あれば根の最下位は0であるので、レジスタ2のデータ
をそのまま新しい余りとし、左2ビット算術シフトして
レジスタ2に格納し、次の余りの取り出しの準備をす
る。また、レジスタ3のデータを左1ビット算術シフト
して下位3ビットを001に設定し、根の最下位ビット
に0を設定すると共に次の根のビットが1であったとき
の部分和を準備する。 ステップ5 レジスタ3のデータを右1ビット論理シフトし、再びレ
ジスタ3に格納する。
根の最下位ビットに1が来ると仮定した時の余りを求め
る。余りが0または正の値であれば根の最下位は1であ
るので、減算した結果を新しい余りとし、左2ビット算
術シフトしてレジスタ2に格納し、次の余りの取り出し
の準備をする。また、レジスタ3のデータを左1ビット
算術シフトして下位3ビットを101に設定し、根の次
のビットに1を設定すると共に次の根のビットが1であ
ったときの部分和を準備をする。また、余りが負の値で
あれば根の最下位は0であるので、レジスタ2のデータ
をそのまま新しい余りとし、左2ビット算術シフトして
レジスタ2に格納し、次の余りの取り出しの準備をす
る。また、レジスタ3のデータを左1ビット算術シフト
して下位3ビットを001に設定し、根の最下位ビット
に0を設定すると共に次の根のビットが1であったとき
の部分和を準備する。 ステップ5 レジスタ3のデータを右1ビット論理シフトし、再びレ
ジスタ3に格納する。
【0024】ステップ1からステップ5を図6〜図9に
示したように実行することで、32ビットの被開平数に
対して30から31ビット精度で開平を行うことができ
る。次に、以上に示したアルゴリズムのうちステップ2
からステップ5を、アセンブラ言語で実現した場合のコ
ーディング例を示す。 ニーモニック 番号 ASH[+1] 1 LSX[+2] 2 SQRT 3 LSX[+2] 4 SQRT 5 …… …… LSX[+2] 31 SQRT 32 SQRT 33 …… …… SQRT 46 SQRT 47 LSH[−2] 48 番号 1 (1サイクル)1命令 2〜33 (32サイクル)2命令(LSX[+2]
とSQRT)の繰り返し16回 34〜47 (14サイクル)1命令(SQRT)の繰
り返し14回 48 (1サイクル)1命令 以上に示したとおり、この発明の実施の形態1によるマ
イクロプロセッサにおいては、30から31ビット精度
での平方根演算を48サイクルで実現できる。
示したように実行することで、32ビットの被開平数に
対して30から31ビット精度で開平を行うことができ
る。次に、以上に示したアルゴリズムのうちステップ2
からステップ5を、アセンブラ言語で実現した場合のコ
ーディング例を示す。 ニーモニック 番号 ASH[+1] 1 LSX[+2] 2 SQRT 3 LSX[+2] 4 SQRT 5 …… …… LSX[+2] 31 SQRT 32 SQRT 33 …… …… SQRT 46 SQRT 47 LSH[−2] 48 番号 1 (1サイクル)1命令 2〜33 (32サイクル)2命令(LSX[+2]
とSQRT)の繰り返し16回 34〜47 (14サイクル)1命令(SQRT)の繰
り返し14回 48 (1サイクル)1命令 以上に示したとおり、この発明の実施の形態1によるマ
イクロプロセッサにおいては、30から31ビット精度
での平方根演算を48サイクルで実現できる。
【0025】実施の形態2.図10はこの発明の実施の
形態2によるマイクロプロセッサを示す構成図である。
上記実施の形態1では、平方根の実現について示した
が、次に、図1に示した構成のマイクロプロセッサによ
る除算のために用いる命令とその動作を説明する。図1
0に図1の構成において除算に必要な機能を行う命令
(DIVとニーモニックで示す)の動作を説明する。
形態2によるマイクロプロセッサを示す構成図である。
上記実施の形態1では、平方根の実現について示した
が、次に、図1に示した構成のマイクロプロセッサによ
る除算のために用いる命令とその動作を説明する。図1
0に図1の構成において除算に必要な機能を行う命令
(DIVとニーモニックで示す)の動作を説明する。
【0026】レジスタ2のデータからレジスタ3のデー
タを減算器4により減算して減算結果データの符号が負
になる場合はレジスタ2のデータ、正または0になる場
合は減算器4の減算結果データをセレクタ5で選択して
出力し、さらに、シフタ6によって左1ビットの算術シ
フトを行い、結果をレジスタ2に格納すると共に、レジ
スタ1のデータをシフタ7によって左1ビットの算術シ
フトを行い、さらに、セレクタ8により下位1ビットに
減算器4による減算結果の符号が負になる場合は0、正
または0になる場合は1を選択して設定し、結果をレジ
スタ1に格納する。
タを減算器4により減算して減算結果データの符号が負
になる場合はレジスタ2のデータ、正または0になる場
合は減算器4の減算結果データをセレクタ5で選択して
出力し、さらに、シフタ6によって左1ビットの算術シ
フトを行い、結果をレジスタ2に格納すると共に、レジ
スタ1のデータをシフタ7によって左1ビットの算術シ
フトを行い、さらに、セレクタ8により下位1ビットに
減算器4による減算結果の符号が負になる場合は0、正
または0になる場合は1を選択して設定し、結果をレジ
スタ1に格納する。
【0027】さて、このマイクロプロセッサでは図10
の動作を行う命令を用いることで除算を実現できること
を説明する。そのため、まず、除算を行うアルゴリズム
をフローチャートおよびレジスタ説明図で説明し、次に
先ほど述べた命令がこのフローチャートの各ステップを
実現していることにより、除算が実現できることを示
す。図11は除算を行うアルゴリズムを示すフローチャ
ート、図12,13はレジスタ説明図である。図11に
おいて示す各ステップ毎に説明する。
の動作を行う命令を用いることで除算を実現できること
を説明する。そのため、まず、除算を行うアルゴリズム
をフローチャートおよびレジスタ説明図で説明し、次に
先ほど述べた命令がこのフローチャートの各ステップを
実現していることにより、除算が実現できることを示
す。図11は除算を行うアルゴリズムを示すフローチャ
ート、図12,13はレジスタ説明図である。図11に
おいて示す各ステップ毎に説明する。
【0028】ステップ1 レジスタ2に被除数を、レジスタ3に除数をそれぞれ設
定する。 ステップ2 レジスタ2のデータからレジスタ3のデータを減算し、
商の最下位に1が来ると仮定した時の余りを求める。余
りが0または正の値であれば商の最下位は1であるの
で、減算した結果を新しい余りとし、左1ビット算術シ
フトしてレジスタ2に格納し、次の余りの取り出しを準
備する。また、レジスタ1のデータを左1ビット算術シ
フトして下位1ビットを1に設定して、商の最下位1を
設定する。また、余りが負の値であれば根の最下位は0
であるので、レジスタ2のデータをそのまま新しい余り
とし、左1ビット算術シフトしてレジスタ2に格納し、
次の余りの取り出しを準備する。また、レジスタ1のデ
ータを左1ビット算術シフトして下位1ビットを0に設
定して、商の最下位に0を設定する。
定する。 ステップ2 レジスタ2のデータからレジスタ3のデータを減算し、
商の最下位に1が来ると仮定した時の余りを求める。余
りが0または正の値であれば商の最下位は1であるの
で、減算した結果を新しい余りとし、左1ビット算術シ
フトしてレジスタ2に格納し、次の余りの取り出しを準
備する。また、レジスタ1のデータを左1ビット算術シ
フトして下位1ビットを1に設定して、商の最下位1を
設定する。また、余りが負の値であれば根の最下位は0
であるので、レジスタ2のデータをそのまま新しい余り
とし、左1ビット算術シフトしてレジスタ2に格納し、
次の余りの取り出しを準備する。また、レジスタ1のデ
ータを左1ビット算術シフトして下位1ビットを0に設
定して、商の最下位に0を設定する。
【0029】次に、以上に示したアルゴリズムのうち、
ステップ2を、アセンブラ言語で実現した場合のコーデ
ィング例を示す。 ニーモニック 番号 DIV 1 DIV 2 DIV 3 …… …… DIV 31 DIV 32 番号 1〜32 (32サイクル)1命令(DIV)の繰り
返し32回 以上に示したとおり、32ビットの除算が32サイクル
で実現できる。また、除算を実現するために必要なハー
ドウェアは、平方根を実現するためのハードウェアとほ
とんど共通化でき、これらの機能を備えたマイクロプロ
セッサの実現に必要なハードウェア量を削減できる。
ステップ2を、アセンブラ言語で実現した場合のコーデ
ィング例を示す。 ニーモニック 番号 DIV 1 DIV 2 DIV 3 …… …… DIV 31 DIV 32 番号 1〜32 (32サイクル)1命令(DIV)の繰り
返し32回 以上に示したとおり、32ビットの除算が32サイクル
で実現できる。また、除算を実現するために必要なハー
ドウェアは、平方根を実現するためのハードウェアとほ
とんど共通化でき、これらの機能を備えたマイクロプロ
セッサの実現に必要なハードウェア量を削減できる。
【0030】
【発明の効果】以上のように、請求項1記載の発明によ
れば、第1から第3の記憶手段、減算器、第1の選択手
段、第1のシフタ、第2の選択手段、第2のシフタ、ビ
ット設定機能付き選択手段、ビット設定手段から成る演
算手段と、第4の記憶手段と、その第4の記憶手段に格
納された制御プログラムに基づいて演算手段を制御する
命令制御手段とを備えるように構成したので、平方根演
算および除算のためのハードウェアを構成できると共
に、平方根演算および除算のどちらか一方だけを実現し
た場合と同じ程度のハードウェア量で実現できるため、
全体として小型化することができ、かつ、ソフトウェア
のみで実現した場合に比べて速く平方根または除算が実
行できる効果がある。
れば、第1から第3の記憶手段、減算器、第1の選択手
段、第1のシフタ、第2の選択手段、第2のシフタ、ビ
ット設定機能付き選択手段、ビット設定手段から成る演
算手段と、第4の記憶手段と、その第4の記憶手段に格
納された制御プログラムに基づいて演算手段を制御する
命令制御手段とを備えるように構成したので、平方根演
算および除算のためのハードウェアを構成できると共
に、平方根演算および除算のどちらか一方だけを実現し
た場合と同じ程度のハードウェア量で実現できるため、
全体として小型化することができ、かつ、ソフトウェア
のみで実現した場合に比べて速く平方根または除算が実
行できる効果がある。
【0031】請求項2記載の発明によれば、第2のシフ
タにより左1ビット算術シフトするように構成したの
で、被開平数の桁合わせを行い、2ビットずつ取り出す
演算を容易にすることができる効果がある。
タにより左1ビット算術シフトするように構成したの
で、被開平数の桁合わせを行い、2ビットずつ取り出す
演算を容易にすることができる効果がある。
【0032】請求項3記載の発明によれば、ビット設定
手段により上位2ビットを取り出し、下位2ビットに設
定すると共に、第2のシフタにより左2ビット算術シフ
トするように構成したので、平方根の被開平数を2ビッ
トずつ取り出し、平方根演算のための値の設定ができる
効果がある。
手段により上位2ビットを取り出し、下位2ビットに設
定すると共に、第2のシフタにより左2ビット算術シフ
トするように構成したので、平方根の被開平数を2ビッ
トずつ取り出し、平方根演算のための値の設定ができる
効果がある。
【0033】請求項4記載の発明によれば、減算結果デ
ータの符号ビットが0の時には、減算器からの出力を左
2ビット算術シフトし第2の記憶手段に格納すると共
に、第3の記憶手段のデータを左1ビット算術シフトし
て下位3ビットを101に設定しその結果を第3の記憶
手段に再び格納し、減算結果データの符号ビットが1の
時には、第2の記憶手段のデータを左2ビット算術シフ
トして第2の記憶手段に格納すると共に、第3の記憶手
段のデータを左1ビット算術シフトして下位3ビットを
001に設定しその結果を第3の記憶手段に再び格納す
るように構成したので、根の1桁と余りを求め、また、
根を+1ビットシフト、余りを+2ビットシフトして、
次の開平のための桁合わせを同時に1サイクルで行える
効果がある。
ータの符号ビットが0の時には、減算器からの出力を左
2ビット算術シフトし第2の記憶手段に格納すると共
に、第3の記憶手段のデータを左1ビット算術シフトし
て下位3ビットを101に設定しその結果を第3の記憶
手段に再び格納し、減算結果データの符号ビットが1の
時には、第2の記憶手段のデータを左2ビット算術シフ
トして第2の記憶手段に格納すると共に、第3の記憶手
段のデータを左1ビット算術シフトして下位3ビットを
001に設定しその結果を第3の記憶手段に再び格納す
るように構成したので、根の1桁と余りを求め、また、
根を+1ビットシフト、余りを+2ビットシフトして、
次の開平のための桁合わせを同時に1サイクルで行える
効果がある。
【0034】請求項5記載の発明によれば、第2のシフ
タにより右1ビット論理シフトするように構成したの
で、第1の記憶手段の桁合わせと下位2ビットに設定し
た01の値をクリアして、小数点位置を正しくすること
で根を得ることができる効果がある。
タにより右1ビット論理シフトするように構成したの
で、第1の記憶手段の桁合わせと下位2ビットに設定し
た01の値をクリアして、小数点位置を正しくすること
で根を得ることができる効果がある。
【0035】請求項6記載の発明によれば、第1の記憶
手段に被開平数を設定、第2の記憶手段に16進数の0
を設定、第3の記憶手段に16進数の1を設定し、第1
の記憶手段のデータを左1ビット算術シフトすると共に
第1の記憶手段に再び格納し、第1の記憶手段のデータ
の上位から2ビットを取り出し第2の記憶手段に設定
し、第1の記憶手段のデータを左2ビット算術シフトす
ると共に第1の記憶手段に再び格納し、第2の記憶手段
のデータからその第3の記憶手段のデータを減算し、減
算結果データの符号ビットが0である時には減算結果デ
ータを左2ビット算術シフトして第2の記憶手段に格納
し、第3の記憶手段のデータを左1ビット算術シフトす
ると共に下位3ビットを101に設定して第3の記憶手
段に再び格納し、減算結果データの符号ビットが1であ
る時には第2の記憶手段のデータを左2ビット算術シフ
トして第2の記憶手段に格納し、第3の記憶手段のデー
タを左1ビット算術シフトすると共に下位3ビットを0
01に設定して第3の記憶手段に再び格納し、第3の記
憶手段のデータを右1ビット論理シフトしてその第3の
記憶手段に再び格納するように構成したので、開平によ
り平方根演算を行うことができる効果がある。
手段に被開平数を設定、第2の記憶手段に16進数の0
を設定、第3の記憶手段に16進数の1を設定し、第1
の記憶手段のデータを左1ビット算術シフトすると共に
第1の記憶手段に再び格納し、第1の記憶手段のデータ
の上位から2ビットを取り出し第2の記憶手段に設定
し、第1の記憶手段のデータを左2ビット算術シフトす
ると共に第1の記憶手段に再び格納し、第2の記憶手段
のデータからその第3の記憶手段のデータを減算し、減
算結果データの符号ビットが0である時には減算結果デ
ータを左2ビット算術シフトして第2の記憶手段に格納
し、第3の記憶手段のデータを左1ビット算術シフトす
ると共に下位3ビットを101に設定して第3の記憶手
段に再び格納し、減算結果データの符号ビットが1であ
る時には第2の記憶手段のデータを左2ビット算術シフ
トして第2の記憶手段に格納し、第3の記憶手段のデー
タを左1ビット算術シフトすると共に下位3ビットを0
01に設定して第3の記憶手段に再び格納し、第3の記
憶手段のデータを右1ビット論理シフトしてその第3の
記憶手段に再び格納するように構成したので、開平によ
り平方根演算を行うことができる効果がある。
【0036】請求項7記載の発明によれば、減算結果デ
ータの符号ビットが0の時には減算器からの出力を左1
ビット算術シフトし第2の記憶手段に再び格納すると共
に第1の記憶手段のデータを左1ビットシフトし、下位
1ビットを1に設定し、第1の記憶手段に再び格納し、
減算結果データの符号ビットが1の時には第2の記憶手
段のデータを左1ビット算術シフトし第2の記憶手段に
再び格納すると共に第1の記憶手段のデータを左1ビッ
ト算術シフトし、下位1ビットを1に設定し、その結果
を第1の記憶手段に再び格納するように構成したので、
商の1桁と余りを求め、また、商を+1ビットシフト、
余りを+2ビットシフトして、次の除算のための桁合わ
せを同時に1サイクルで行える効果がある。
ータの符号ビットが0の時には減算器からの出力を左1
ビット算術シフトし第2の記憶手段に再び格納すると共
に第1の記憶手段のデータを左1ビットシフトし、下位
1ビットを1に設定し、第1の記憶手段に再び格納し、
減算結果データの符号ビットが1の時には第2の記憶手
段のデータを左1ビット算術シフトし第2の記憶手段に
再び格納すると共に第1の記憶手段のデータを左1ビッ
ト算術シフトし、下位1ビットを1に設定し、その結果
を第1の記憶手段に再び格納するように構成したので、
商の1桁と余りを求め、また、商を+1ビットシフト、
余りを+2ビットシフトして、次の除算のための桁合わ
せを同時に1サイクルで行える効果がある。
【0037】請求項8記載の発明によれば、第2の記憶
手段に被除数を設定、第3の記憶手段に除数を設定し、
第2の記憶手段のデータから第1の記憶手段のデータを
減算し、減算結果データの符号ビットが0である時には
減算結果データを左2ビット算術シフトして第2の記憶
手段に格納し、第1の記憶手段のデータを左1ビット算
術シフトして、下位1ビットを1に設定し第1の記憶手
段に再び格納し、減算結果データの符号ビットが1であ
る時には第2の記憶手段のデータを左2ビット算術シフ
トして第2の記憶手段に格納し、第1の記憶手段のデー
タを左1ビット算術シフトして、下位1ビットを1に設
定し第1の記憶手段に再び格納するように構成したの
で、開平により除算を行うことができる効果がある。
手段に被除数を設定、第3の記憶手段に除数を設定し、
第2の記憶手段のデータから第1の記憶手段のデータを
減算し、減算結果データの符号ビットが0である時には
減算結果データを左2ビット算術シフトして第2の記憶
手段に格納し、第1の記憶手段のデータを左1ビット算
術シフトして、下位1ビットを1に設定し第1の記憶手
段に再び格納し、減算結果データの符号ビットが1であ
る時には第2の記憶手段のデータを左2ビット算術シフ
トして第2の記憶手段に格納し、第1の記憶手段のデー
タを左1ビット算術シフトして、下位1ビットを1に設
定し第1の記憶手段に再び格納するように構成したの
で、開平により除算を行うことができる効果がある。
【図1】 この発明の実施の形態1によるマイクロプロ
セッサを示す構成図である。
セッサを示す構成図である。
【図2】 ASH命令の動作を示す説明図である。
【図3】 LSX命令の動作を示す説明図である。
【図4】 SQRT命令の動作を示す説明図である。
【図5】 LSH命令の動作を示す説明図である。
【図6】 開平により平方根演算を行うアルゴリズムを
示すフローチャートである。
示すフローチャートである。
【図7】 レジスタ説明図である。
【図8】 レジスタ説明図である。
【図9】 レジスタ説明図である。
【図10】 この発明の実施の形態2によるマイクロプ
ロセッサを示す構成図である。
ロセッサを示す構成図である。
【図11】 除算を行うアルゴリズムを示すフローチャ
ートである。
ートである。
【図12】 レジスタ説明図である。
【図13】 レジスタ説明図である。
1〜3 レジスタ(第1〜第3の記憶手段)、4 減算
器、5 セレクタ(第1の選択手段)、6 シフタ(第
1のシフタ)、7 シフタ(第2のシフタ)、8 ビッ
ト設定機能付きセレクタ(ビット機能付き選択手段)、
9 ビット設定回路(ビット設定手段)、10 セレク
タ(第2の選択手段)、100 データパス部(演算手
段)、101 メモリ(第4の記憶手段)、102 プ
ログラム制御部(命令制御手段)。
器、5 セレクタ(第1の選択手段)、6 シフタ(第
1のシフタ)、7 シフタ(第2のシフタ)、8 ビッ
ト設定機能付きセレクタ(ビット機能付き選択手段)、
9 ビット設定回路(ビット設定手段)、10 セレク
タ(第2の選択手段)、100 データパス部(演算手
段)、101 メモリ(第4の記憶手段)、102 プ
ログラム制御部(命令制御手段)。
Claims (8)
- 【請求項1】 8の整数倍のビット長のデータを基本単
位として扱うマイクロプロセッサにおいて、データを記
憶する第1から第3の記憶手段、上記第2の記憶手段か
ら被減数データを入力すると共に上記第3の記憶手段か
ら減数データを入力してそれらの減算結果データを出力
する減算器、上記減算器から入力された減算結果データ
の符号ビットに基づいてその減算器の減算結果データお
よび上記第2の記憶手段のデータのうち一方を選択して
出力する第1の選択手段、上記第1の選択手段により選
択されたデータを1ビットまたは2ビット左シフトして
上記第2の記憶手段に設定する第1のシフタ、上記第1
の記憶手段および上記第3の記憶手段のデータのうち一
方を選択して出力する第2の選択手段、上記第2の選択
手段により選択されたデータを左1ビット算術シフト,
左2ビット算術シフトまたは右1ビット論理シフトして
出力する第2のシフタ、上記第2のシフタから入力され
たデータに対して、全ビットそのまま出力するか、もし
くは下位3ビットについては001または101のいず
れかのビットを設定し他のビットは入力データをそのま
ま出力するか、もしくは下位1ビットについては0また
は1のいずれかのビットを設定し他のビットは入力デー
タをそのまま出力するかを選択するビット設定機能付き
選択手段、上記第1の記憶手段のデータの上位2ビット
を上記第2の記憶手段の下位2ビットに設定するビット
設定手段から成る演算手段と、上記演算手段とデータの
入出力を行うと共にその演算手段の制御プログラムを記
憶する第4の記憶手段と、上記第4の記憶手段に格納さ
れた制御プログラムに基づいて上記演算手段を制御する
命令制御手段とを備えたことを特徴とするマイクロプロ
セッサ。 - 【請求項2】 演算手段は、命令制御手段の制御に基づ
いて、第1の記憶手段のデータを第2の選択手段を介し
て第2のシフタに入力し、左1ビット算術シフトを行
い、ビット設定機能付き選択手段を介してその第1の記
憶手段に再び格納することを特徴とする請求項1記載の
マイクロプロセッサ。 - 【請求項3】 演算手段は、命令制御手段の制御に基づ
いて、ビット設定手段により第1の記憶手段のデータか
ら上位2ビットを取り出し、第2の記憶手段のデータの
下位2ビットに設定すると共に第1の記憶手段のデータ
を第2の選択手段を介して第2のシフタに入力し、左2
ビット算術シフトを行いビット設定機能付き選択手段を
介してその第1の記憶手段に再び格納することを特徴と
する請求項1記載のマイクロプロセッサ。 - 【請求項4】 演算手段は、命令制御手段の制御に基づ
いて、減算器により第2の記憶手段のデータから第3の
記憶手段のデータを減算し、減算結果データの符号ビッ
トが0の時にはその減算器からの出力を第1の選択手段
を介して第1のシフタに入力し左2ビット算術シフトを
行い、その第2の記憶手段に再び格納すると共に、その
第3の記憶手段のデータを第2の選択手段を介して第2
のシフタに入力し左1ビット算術シフトして、ビット機
能付き選択手段によって下位3ビットを101に設定
し、その結果をその第3の記憶手段に再び格納し、減算
結果データの符号ビットが1の時にはその第2の記憶手
段のデータをその第1の選択手段を介して第1のシフタ
に入力し、左2ビット算術シフトを行いその第2の記憶
手段に再び格納すると共に、その第3の記憶手段のデー
タをその第2の選択手段を介して第2のシフタに入力
し、左1ビット算術シフトし、そのビット機能付き選択
手段によって下位3ビットを001に設定し、その結果
をその第3の記憶手段に再び格納することを特徴とする
請求項1記載のマイクロプロセッサ。 - 【請求項5】 演算手段は、命令制御手段の制御に基づ
いて、第3の記憶手段のデータを第2の選択手段を介し
て第2のシフタに入力し、右1ビット論理シフトし、そ
の結果をその第3の記憶手段に再び格納することを特徴
とする請求項1記載のマイクロプロセッサ。 - 【請求項6】 演算手段は、命令制御手段の制御に基づ
いて、第1の記憶手段に被開平数を設定、第2の記憶手
段に16進数の0を設定、第3の記憶手段に16進数の
1を設定し、請求項2記載のマイクロプロセッサによ
り、その第1の記憶手段のデータを左1ビット算術シフ
トすると共にその第1の記憶手段に再び格納し、請求項
3記載のマイクロプロセッサにより、その第1の記憶手
段のデータの上位から2ビットを取り出しその第2の記
憶手段に設定し、その第1の記憶手段のデータを左2ビ
ット算術シフトすると共にその第1の記憶手段に再び格
納し、請求項4記載のマイクロプロセッサにより、その
第2の記憶手段のデータからその第3の記憶手段のデー
タを減算し、減算結果データの符号ビットが0である時
には減算結果データを左2ビット算術シフトしてその第
2の記憶手段に格納し、その第3の記憶手段のデータを
左1ビット算術シフトすると共に下位3ビットを101
に設定してその第3の記憶手段に再び格納し、減算結果
データの符号ビットが1である時にはその第2の記憶手
段のデータを左2ビット算術シフトしてその第2の記憶
手段に格納し、その第3の記憶手段のデータを左1ビッ
ト算術シフトすると共に下位3ビットを001に設定し
てその第3の記憶手段に再び格納し、請求項5記載のマ
イクロプロセッサにより、その第3の記憶手段のデータ
を右1ビット論理シフトしてその第3の記憶手段に再び
格納することを特徴とするマイクロプロセッサ。 - 【請求項7】 演算手段は、命令制御手段の制御に基づ
いて、減算器により第2の記憶手段のデータから第3の
記憶手段のデータを減算し、減算結果データの符号ビッ
トが0の時にはその減算器からの出力を第1の選択手段
を介して第1のシフタに入力し、左1ビット算術シフト
を行い第2の記憶手段に再び格納すると共にその第1の
記憶手段のデータを第2の選択手段を介して第2のシフ
タに入力し、左1ビットシフトし、ビット機能付き選択
手段によって下位1ビットを1に設定し、その結果をそ
の第1の記憶手段に再び格納し、減算結果データの符号
ビットが1の時にはその第2の記憶手段のデータをその
第1の選択手段を介してその第1のシフタに入力し、左
1ビット算術シフトを行いその第2の記憶手段に再び格
納すると共にその第1の記憶手段のデータをその第2の
選択手段を介してその第2のシフタに入力し、左1ビッ
ト算術シフトし、そのビット機能付き選択手段によって
下位1ビットを1に設定し、その結果をその第1の記憶
手段に再び格納することを特徴とする請求項1記載のマ
イクロプロセッサ。 - 【請求項8】 演算手段は、命令制御手段の制御に基づ
いて、第2の記憶手段に被除数を設定、第3の記憶手段
に除数を設定し、請求項7記載のマイクロプロセッサに
より、その第2の記憶手段のデータから第1の記憶手段
のデータを減算し、減算結果データの符号ビットが0で
ある時には減算結果データを左2ビット算術シフトして
その第2の記憶手段に格納し、その第1の記憶手段のデ
ータを左1ビット算術シフトして、下位1ビットを1に
設定しその第1の記憶手段に再び格納し、減算結果デー
タの符号ビットが1である時にはその第2の記憶手段の
データを左2ビット算術シフトしてその第2の記憶手段
に格納し、その第1の記憶手段のデータを左1ビット算
術シフトして、下位1ビットを1に設定し第1の記憶手
段に再び格納することを特徴とするマイクロプロセッ
サ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8268858A JPH10116183A (ja) | 1996-10-09 | 1996-10-09 | マイクロプロセッサ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8268858A JPH10116183A (ja) | 1996-10-09 | 1996-10-09 | マイクロプロセッサ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10116183A true JPH10116183A (ja) | 1998-05-06 |
Family
ID=17464253
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8268858A Pending JPH10116183A (ja) | 1996-10-09 | 1996-10-09 | マイクロプロセッサ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH10116183A (ja) |
-
1996
- 1996-10-09 JP JP8268858A patent/JPH10116183A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4939686A (en) | Method and apparatus for shared radix 4 division and radix 4 square root | |
| JP2622896B2 (ja) | 除算装置 | |
| JP2835153B2 (ja) | 高基数除算器 | |
| JP3583474B2 (ja) | 乗算装置 | |
| EP0890899B1 (en) | Multiplication method and apparatus | |
| JPH0713742A (ja) | 乗算装置 | |
| JP3418460B2 (ja) | 倍精度除算回路および方法 | |
| JPS63123125A (ja) | 浮動小数点数の加算装置 | |
| JPH1195982A (ja) | 演算処理回路及び演算処理方法並びに演算処理システム | |
| JPH10116183A (ja) | マイクロプロセッサ | |
| US5912904A (en) | Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method | |
| JP3638218B2 (ja) | シフト機能付きalu命令を持つマイクロプロセッサ | |
| JP3517162B2 (ja) | 除算・開平演算装置 | |
| JPH10333883A (ja) | 乗算方法および乗算回路 | |
| JP2664750B2 (ja) | 演算装置及び演算処理方法 | |
| JPS5932038A (ja) | 浮動小数点加算器 | |
| JP3122622B2 (ja) | 除算装置 | |
| JP3953220B2 (ja) | ユークリッド互除法実行回路及び演算回路 | |
| JP3213982B2 (ja) | 除算回路 | |
| JP2001243051A (ja) | 除算器 | |
| JP3205020B2 (ja) | 演算装置 | |
| JP2607759B2 (ja) | 除算器 | |
| JPH0769788B2 (ja) | 平方根演算処理方式 | |
| JP3068640B2 (ja) | 計算装置 | |
| JPS61118835A (ja) | ハ−ドウエア除算器 |