JPH0736149B2 - シフトフラグ生成回路 - Google Patents

シフトフラグ生成回路

Info

Publication number
JPH0736149B2
JPH0736149B2 JP59021699A JP2169984A JPH0736149B2 JP H0736149 B2 JPH0736149 B2 JP H0736149B2 JP 59021699 A JP59021699 A JP 59021699A JP 2169984 A JP2169984 A JP 2169984A JP H0736149 B2 JPH0736149 B2 JP H0736149B2
Authority
JP
Japan
Prior art keywords
digit
input data
shift
exclusive
result
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 - Lifetime
Application number
JP59021699A
Other languages
English (en)
Other versions
JPS60167030A (ja
Inventor
誠 花輪
忠彦 西向井
哲彦 岡田
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 JP59021699A priority Critical patent/JPH0736149B2/ja
Publication of JPS60167030A publication Critical patent/JPS60167030A/ja
Publication of JPH0736149B2 publication Critical patent/JPH0736149B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は演算器のフラグ生成方式及びその実現回路に係
り、特に、シフト命令を高速に実行するバレルシフタに
好適なフラグ生成回路に関する。
〔発明の背景〕
算術シフト処理におけるオーバーフローフラグは、あた
かも1桁づつシフトして処理した時、各ステツプにおい
て符号の値が1回でも変化したら“1"となるフラグであ
る。
従来のシフタでは、1桁シフトをカウント数だけ繰返し
て処理していたため、このオーバーフローフラグは各処
理において逐次的に検出していれば良かつた。
しかし、シフト処理を高速に行うためにバレルシフタを
導入するにあたり、このオーバーフローフラグを検出す
ることが難しくなつた。
〔発明の目的〕 本発明の目的は、1サイクルで任意の桁シフトを行うバ
レルシフタにおいて、逐次シフトを行つた場合と同じ演
算フラグを生成して、従来の命令仕様と互換性を保つフ
ラグ生成方式及びその生成回路を提供するところにあ
る。
〔発明の概要〕
算術左シフトを行つたときのオーバーフローフラグV
は、 で規定されている。ここで、Diは符号付き2進入力デー
タの1桁でDmはMSB(Most Significant Bit)であり、
符号ビツトとなり“1"のとき負の数を表わす。データ長
をnビツトとするとm=n−1である。また、rはシフ
トカウントである。
式(1)を変形すると、 V=DmDm-1+…+DmDm-r …………(2) となる。ここでは排他的論理和演算を示す。
すなわち、データ長nビットの入力をr桁算術左シフト
した際のオーバーフローの有無は、最上位桁からあふれ
た信号およびr桁算術左シフト後の最終的な符号ビット
がr桁算術左シフト前の符号ビットと同一か否かを判定
することにより可能となる。
従って、r桁算術左シフトによってデータ長n(m+
1)ビットの入力データのうち、最上位桁からあふれる
信号はそれぞれ左シフト前の右からm番目の信号Dm、m
−1番目の信号Dm-1、…n−r(m−r+1)番目の信
号Dm-r+1となり、r桁算術左シフトの最終的な符号ビッ
トは左シフト前のn−r−1(m−r)番目の信号Dm-r
となり、さらにDmDm=0であるので、r桁算術左シフ
トを行った時のオーバーフローフラグVは、信号Dm、Dm
-1、…Dm-r+1、Dm-rと信号Dmとの排他的論理和のそれぞ
れの包括的論理和となるので、式(1)もしくは式
(2)のように示されることができるものである。
DmDm=0であるから、更に変形すると、 となる。
式(3)は、n桁入力データDm…Doを(n−r−1)桁
だけ算術右シフト(つまり、入力データの符号Dm保存し
ながら右シフト)した結果 の各桁Dm,〜,Dm-rと入力データの符号Dmとの排他的論理
和をそれぞれ求め、その結果DmDm,〜,DmDm-rの全て
の桁の包含的論理和をとつた結果を表わしている。つま
り、上記排他的論理和の結果DmDm,〜,DmDm-rが全て
“0"であるか否かを検出すれば、算術左シフト時のオー
バーフローフラグVが得られることがわかる。
一方、シフタとしては一般にシフトカウントrが0から
データのビツト長nまで(r=0〜n)のとき正しいシ
フト結果が得られるものが多い。しかし、上記の方法で
は、r桁算術左シフトした時のオーバーフローフラグV
を求めるために、(n−r−1)桁の算術右シフトを行
う必要がある。つまり、r=0〜nであるので(n−r
−1)=−1〜n−1となり、(−1)桁の算術右シフ
トを行わなければならない。この操作は1桁算術左シフ
トで実現できるのが、(−1)桁の場合に限り特殊操作
を行うことになりシフタの制御を複雑にするという欠点
がある。
そこで式(3)を、 と変形すると、 を用いて、 V=V′+DmDm-r ………………………(6) と表わすことができる。
ここで、式(5)は式(3)と同様に、V′が入力デー
タDm…D0を(n−r)桁だけ算術右シフトした結果の各
桁と入力データの符号Dmとの排他的論理和をそれぞれ求
め、その結果の全ての桁の包含的論理和をとつた結果で
あることを表わしている。
また、Dm-rは入力データをr桁だけ算術左シフトした出
力の符号として求めることができるので、r桁算術左シ
フトしたときのオーバーフローフラグVを、このときの
出力の符号Dm-rと入力データの符号Dm及び、入力データ
を(n−r)桁右シフトすることにより得られる値V′
を用いて式(6)により生成することができる。
このとき、(n−r)はr=0〜nのとき同様に0から
nまでの値となり、一般のシフタにてサポートすること
ができる。
本願で開示される発明のうち、代表的なものの概要は下
記の通りである。
すなわち、最上位(MSB)桁で符号を表示するn桁の入
力データ(Dm…D0)を入力とし、上記n桁の入力データ
(Dm…D0)のr桁算術左シフト結果と上記n桁の入力デ
ータ(Dm…D0)の最上位桁ビット信号(Dm)を保存した
n−r桁算術右シフト結果とを並列に出力するシフタ
(100、101)と、 該シフタ(100、101)による上記n桁の入力データ(Dm
…D0)の上記r桁算術左シフト結果出力の最上位桁ビッ
ト信号(Dm-r)と上記n桁の入力データ(Dm…D0)の最
上位桁ビット信号(Dm)との排他的論理和(DmDm-r)
を出力する第1の排他的論理和回路(300:1)と、 上記シフタ(100、101)による上記n桁の入力データ
(Dm…D0)の上記最上位桁ビット信号(Dm)を保存した
上記n−r桁算術右シフト結果(Dm…DmDmDm-1……Dm-r
+1)と上記n桁の入力データ(Dm…D0)の上記最上位桁
ビット信号(Dm)との排他的論理和を各ビット毎に求
め、その結果(DmDm、…DmDm、DmDm、DmDm-1
…DmDm-r+1)を出力する第2の排他的論理和回路(20
1:1)と、 該第2の排他的論理和回路(201:1)の各ビットの排他
的論理和出力の論理和(DmDm+…DmDm+DmDm+Dm
Dm-1……DmDm-r+1)を出力する第1の論理ゲート
(201:2、3)と、 該第1の論理ゲート(201:2、3)の出力(51)と上記
第1の排他的論理和回路(300:1)の出力との論理和を
出力する第2の論理ゲート(300:4)とを具備してな
り、 該第2の論理ゲート(300:4)の論理和出力よりオーバ
ーフローフラグを得ることを特徴とする。
本発明のかかる代表的な構成によれば、シフタ(100、1
01)の出力(30、31)からn桁の入力データ(Dm…D0
のr桁算術左シフト結果出力とn−r桁算術右シフト結
果(Dm……DmDmDm-1……Dm-r+1)とが並列に同時に生成
されることができるので、1回のシフト動作によりこれ
らのシフト結果を用いてオーバーフローフラグを1サイ
クルで得ることができると言う顕著な作用・効果を奏す
る。
本発明のその他の特徴は、以下の実施例から明らかとな
ろう。
〔発明の実施例〕
以下、本発明の一実施例を図を用いて説明する。第1図
は、算術左シフトを行うときのバレルシフタの構成図で
ある。
バレルシフタ100は入力データ10に対してr桁算術左シ
フト指示20によりシフト結果30及びシフト時のこぼれ40
を出力する。ゼロ検出器200はシフト結果30を入力して
ゼロフラグ50を出力する。以上のようにして、シフト結
果30、シフトこぼれ40、及びゼロフラグ50を生成してい
る。
次に、オーバーフローフラグの生成について説明する。
バレルシフタ101は入力データ10に対して(n−r)桁
算術右シフト指示21によりシフト結果31及びシフト前の
入力データの符号61を出力する。ゼロ検出器201はシフ
ト結果31を入力データとして入力し、符号61を制御信号
としてゼロフラグ51を出力する。
ここで、上記ゼロ検出器200は、第2図のように構成さ
れており、制御信号210が0及び1のときそれぞれ入力
データ220のall“0"及びall“1"を検出して線50に出力
する。つまり、入力データ220のうち制御信号210と異な
るものが1ビツトでも存在すると、出力線50が1にな
り、それを検出できる。第1図のゼロ検出器200では制
御入力210を“0"に固定することにより、シフト結果30
のすべての桁が“0"であることを示すゼロフラグ50を生
成している。またオーバーフローフラグ生成のためのゼ
ロ検出器201では制御信号210としてシフト入力データ10
の符号61を入力することにより、シフト結果31の各桁と
符号61が全て等しいか否かを検出することができる。
つまり、n桁の入力データ10をDmDm-1…Do(m=n−
1)と表わすと(n−r)桁算術右シフトした結果31は となる。したがつて、オーバーフローフラグ生成のため
のゼロ検出器201の出力V′31は、 と表わされる。
算術左シフト時のオーバーフローフラグVは、式(6)
より、 V=V′+DmDm-r ………………(6) と同じで求められる。ここで、Dmは入力データの符号61
であり、Dm-rは左シフト結果30のMSBつまり符号32であ
る。式(6)の論理を実現する部分が第1図のオーバー
フローフラグ生成器300であり、オーバーフローフラグ7
0を出力する。また、その論理図を第3図に示す。
以上第1図のバレルシフタ構成図において、算術右シフ
トを行うバレルシフタ101及びゼロ検出器201は、それぞ
れバレルシフタ100とゼロ検出器200と同じ構成をしてお
り、シフト処理を2サイクルに分けて行えば、バレルシ
フタ100及びゼロ検出器200で代用することができハード
ウエアとしては不用となる。したがつて、オーバーフロ
ーフラグを生成するためには、その生成器300だけを持
つだけ良く、ハードウエア量の追加が少なくてすむとい
う効果がある。
第4図に、上記の実施例と比較される参考例におけるバ
レルシフタの動作を、(a)1サイクル目と(2)2サ
イクル目に分けて示す。先ず、(a)1サイクル目に入
力データ10を(n−r)桁算術右シフトした結果と入力
データの符号61との排他的論理和をそれぞれ求め、その
各桁が全てゼロであるか否かを検出し(信号線51)、こ
の結果を次のサイクルまで保持するフリツプフロツプ40
0へラツチする。(b)2サイクル目には、本来のr桁
算術左シフトを行い、シフト結果30、こぼれ40、ゼロフ
ラグ50を出力する。このとき、入力データの符号61とシ
フト結果の符号32と1サイクル目に求めフリツプフロツ
プ400に保持しておいた値51を用いてオーバーフローフ
ラグ70を生成することができる。
したがつて、第4図の本参考例によれば、ハードウエア
量の少ないオーバーフローフラグ生成器300とフリツプ
フロツプ400を追加し、データのall“0"もしくはall
“1"を検出することのできるゼロ検出器200を用い、バ
レルシフタ自身を使つて(n−r)桁算術右シフトをあ
らかじめ行うことにより、r桁算術左シフト時のオーバ
ーフローフラグ70を容易に生成することができ、シフタ
のハードウエア量が少ないと言う利点があるが、オーバ
ーフローフラグの出力に2サイクルを必要とすると言う
欠点がある。
〔発明の効果〕
本発明によれば、1サイクルで任意の桁シフトを行うバ
レルシフタにおいて、逐次シフトを行つた場合と同じ演
算フラグを生成できるので、従来の命令仕様と互換性を
保ちながら処理を高速に実行できる効果がある。
【図面の簡単な説明】
第1図は本発明の実施例によるバレルシフタの構成ブロ
ツク図、第2図はゼロ検出器の論理図、第3図はオーバ
ーフローフラグ生成器の論理図、第4図は本発明の実施
例と比較される参考例による算術左シフトのオーバーフ
ローフラグを生成するときのバレルシフタの動作説明図
である。 100,101……バレルシフタ、200,201……ゼロ検出器、30
0……オーバーフローフラグ生成器、1……排他的論理
和ゲート、2……反転器、3……NANDゲート、4……OR
ゲート、400……フリツプフロツプ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 岡田 哲彦 東京都国分寺市東恋ヶ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 昭49−91146(JP,A) 特開 昭57−50049(JP,A) 特開 昭58−142438(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】最上位桁で符号を表示するn桁の入力デー
    タを入力とし、上記n桁の入力データのr桁算術左シフ
    ト結果と上記n桁の入力データの最上位桁ビット信号を
    保存したn−r桁算術右シフト結果とを並列に出力する
    シフタと、 該シフタによる上記n桁の入力データの上記r桁算術左
    シフト結果出力の最上位桁ビット信号と上記n桁の入力
    データの最上位桁ビット信号との排他的論理和を出力す
    る第1の排他的論理和回路と、 上記シフタによる上記n桁の入力データの上記最上位桁
    ビット信号を保存した上記n−r桁算術右シフト結果と
    上記n桁の入力データの上記最上位桁ビット信号との排
    他的論理和を各ビット毎に求め、その結果を出力する第
    2の排他的論理和回路と、 該第2の排他的論理和回路の各ビットの排他的論理和出
    力の論理和を出力する第1の論理ゲートと、 該第1の論理ゲートの出力と上記第1の排他的論理和回
    路の出力との論理和を出力する第2の論理ゲートとを具
    備してなり、 該第2の論理ゲートの論理和出力よりオーバーフローフ
    ラグを得ることを特徴とするシフトフラグ生成回路。
JP59021699A 1984-02-10 1984-02-10 シフトフラグ生成回路 Expired - Lifetime JPH0736149B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59021699A JPH0736149B2 (ja) 1984-02-10 1984-02-10 シフトフラグ生成回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59021699A JPH0736149B2 (ja) 1984-02-10 1984-02-10 シフトフラグ生成回路

Publications (2)

Publication Number Publication Date
JPS60167030A JPS60167030A (ja) 1985-08-30
JPH0736149B2 true JPH0736149B2 (ja) 1995-04-19

Family

ID=12062312

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59021699A Expired - Lifetime JPH0736149B2 (ja) 1984-02-10 1984-02-10 シフトフラグ生成回路

Country Status (1)

Country Link
JP (1) JPH0736149B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6398729A (ja) * 1986-10-15 1988-04-30 Fujitsu Ltd バレルシフタ
JPS6421531A (en) * 1987-07-16 1989-01-24 Fujitsu Ltd Barrel shifter circuit
DE4304198A1 (de) * 1993-02-12 1994-08-18 Itt Ind Gmbh Deutsche Verfahren zur Beschleunigung der Datenverarbeitung eines Signalprozessors
US6292814B1 (en) 1998-06-26 2001-09-18 Hitachi America, Ltd. Methods and apparatus for implementing a sign function

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5533102B2 (ja) * 1972-12-29 1980-08-28
JPS5750049A (en) * 1980-09-09 1982-03-24 Toshiba Corp Shifting circuit

Also Published As

Publication number Publication date
JPS60167030A (ja) 1985-08-30

Similar Documents

Publication Publication Date Title
EP0127988B1 (en) A normalizing circuit
JP2585649B2 (ja) 除算回路
JPH0736149B2 (ja) シフトフラグ生成回路
JPH04350724A (ja) シフト量検出回路
JPH10283164A (ja) 除算回路
JP2766133B2 (ja) パラレル・シリアル・データ変換回路
JPS6227864A (ja) 累算回路
JP2907276B2 (ja) 演算処理装置
JP3482102B2 (ja) 絶対値距離演算回路
KR0175357B1 (ko) 고속화를 위한 연산기의 오버플로우 검출회로
JP3210356B2 (ja) データのゼロ判定装置
JP2615746B2 (ja) ビット操作回路
JP2569330B2 (ja) 乗算回路
JP2575856B2 (ja) 演算回路
JPH0553759A (ja) 固定小数点演算ユニツト
JP3539077B2 (ja) 並列演算方式による除算方法
JP2998324B2 (ja) 正規化シフト装置および正規化シフト方法
JPH0764767A (ja) 加算装置
JPH0553768A (ja) 除算器
JPS59217294A (ja) 信号シフト回路
JPH0764768A (ja) 絶対値累積加算装置
JPH06301516A (ja) 半導体集積回路
JPS63115229A (ja) エレメントシフト方式
JP2002351821A (ja) 調停制御方法および回路
JPH02238522A (ja) 絶対値演算回路