(57)【要約】【課題】絶対値をシフト算出する回路を削除して回路規模を縮小するとともに、動作周波数を高速化することができる最上位ビットが１であるｍビット負数を右にｎビット算術シフトした値を算出処理する算術右シフト装置を提供する。【解決手段】最上位ビットが１であるｍビット負数を入力保持する第１のラッチ回路（１２４）と、第１のラッチ回路（１２４）で保持したｍビット負数の１の補数を算出する第１の補数演算器（２）と、ｎビットシフト量を入力保持する第２のラッチ回路（１０１）と、第１の補数演算器（２）で算出した１の補数を、第２のラッチ回路（１０１）で保持したｎビットシフト量だけ論理右シフトを行なうシフタ演算器（４）と、シフタ演算器（４）で論理右シフトされた算出値の１の補数を算出する第２の補数演算器（６）を備える。【選択図】    図１
2005293092.tif 000002
【特許請求の範囲】
【請求項１】
最上位ビットが１であるｍビット負数をｎビットだけ右に算術シフトした値を算出処理する算術右シフト装置において、
第１および第２のラッチ回路と、
第１および第２の補数演算器と、
シフタ演算器と、を備え、
前記第１のラッチ回路（１２４）は、入力された前記最上位ビットが１であるｍビット負数（Ｄｍ）を保持するものであり、
前記第１の補数演算器（２）は、前記第１のラッチ回路（１２４）で保持したｍビット負数（Ｄｍ）を受けて１の補数（Ｃｏ）を算出するものであり、
前記第２のラッチ回路（１０１）は、入力された前記ｎビットシフト量（Ｓｎ）を保持するものであり、
前記シフタ演算器（４）は、前記第１の補数演算器（２）で算出した１の補数（Ｃｏ）と、前記第２のラッチ回路（１０１）で保持したｎビットシフト量（Ｓｎ）を受けて、前記第１の補数演算器（２）で算出した１の補数（Ｃｏ）を、前記第２のラッチ回路（１０１）で保持したｎビットシフト量（Ｓｎ）だけ論理右シフトを行なうものであり、
前記第２の補数演算器（６）は、前記シフタ演算器（４）で論理右シフトされた算出値（Ｓｏ）を受けて１の補数を算出することにより前記入力された負数（Ｄｍ）の算術右シフト値（Ｄｓ）を算出処理するものであることを特徴とする最上位ビットが１である負数の算術右シフト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサ装置及びデジタル信号処理プロセッサ装置に用いられる算術右シフト装置に関し、特に最上位ビットが１である負数の算術右シフト装置に関する。
【背景技術】
【０００２】
シフト演算には論理シフトと算術シフトがある。ｍビット２値数をシフト量ｎだけ論理右シフトすると、ｎ最上位ビットは０になり、それに続いてもとの数の（ｍ−ｎ）最上位ビットがくる。一方、算術右シフトは、シフトを行なうとき最上位ビットを保存する。すなわち、最上位ビットが１であるｍビット負数をｎビットだけ右に算術シフトすると、ｎ最上位ビットは１になり、それに続いてもとの数の（ｍ−ｎ）最上位ビットがくる。
【０００３】
従来の、最上位ビットが１であるｍビット負数をｎビットだけ右に算術シフトした値を算出処理する算術右シフト装置は、前記負数を順次１ビットづつ右に論理シフトして、シフト後に最上位ビットには０を挿入しこれをｎビット分行なった値と、シフトによって０を挿入した上位各ビットに新たに１を挿入するための値とを個別に算出してＯＲ演算して求めている（例えば、特許文献１参照）。
図２は、従来の最上位ビットが１である負数の算術右シフト装置を示す構成図である。
図２において、１０１、１２４はラッチ、１２０はシフト演算ハードウェア、２０２は左シフタ、２０４は右シフタ、２０８はＯＲゲート、２１６は左マスキング論理、２１８は左シフト演算のためのマルチプレクサ（ｍｕｘ）、２２０は右シフトマルチプレクサ（ｍｕｘ）、２２２は右マスキング論理、２２４は１の補数ハードウェア、２２６は１の補数セレクタ（ｍｕｘ）、Ｄｍはラッチ１２４に保持されているデータであり最上位ビットが１であるｍビット負数、Ｓｎはシフト量すなわち算術右シフトする量ｎ、Ｒｓは 右シフタ出力データ、Ｌｓは左シフタ出力データ、Ｄｓはシフト済みデータである。
以下、図２を用いて従来技術を説明する。ここで、データＤｍは“１０１０１１０１”であり、シフト量Ｓｎは３すなわち“０１１”だけ算術右シフトする場合を例に説明する。
データＤｍ“１０１０１１０１”はラッチ１２４を介して右シフトマルチプレクサ（ｍｕｘ）２２０に入力される。算術右シフトの場合は、右マスキング論理２２２からの入力を無視し、右シフタ２０４に対する入力としてデータＤｍ“１０１０１１０１”を渡す。
シフト量Ｓｎ“０１１”に従い、右シフタ２０４の出力データＲｓは３つだけ論理右シフトした値“０００１０１０１”となる。
一方、左マスキング論理２１６はオール１のマスクを生成し、左シフト演算のためのマルチプレクサ（ｍｕｘ）２１８内にそのマスク“１１１１１１１１”を入力する。算術右シフトの場合は、左シフト演算のためのマルチプレクサ（ｍｕｘ）２１８は“１１１１１１１１”のマスクを左シフタ２０２に渡すことになる。シフト量Ｓｎ“３”は１の補数セレクタ（ｍｕｘ）２２６及び１の補数ハードウェア２２４にも入力され、シフト量Ｓｎ“０１１”の１の補数“１００”が算出され左シフタ２０２に印加される。その結果、“１１１１１１１１”が“１００”すなわち４だけ左シフトされた“１１１１００００”が左シフタ２０２から出力される。
右シフタ２０４の出力Ｒｓ“０００１０１０１”と左シフタの出力データＬｓ“１１１１００００”のＯＲであるＯＲゲート２０８の出力Ｄｓは、“１１１１０１０１”となり、もとのデータＤｍ“１０１０１１０１”を シフト量Ｓｎ“３”だけ算術右シフトした値となる。
このように、従来の最上位ビットが１である負数の算術右シフト装置は、負数を順次１ビットづつ右に論理シフトして、シフト後に最上位ビットには「０」を挿入し、これをｎビット分行なった値と、シフトによって「０」を挿入した上位各ビットに新たに「１」を挿入するための値とを個別に算出してＯＲ演算して算出する構成となっている。
【特許文献１】特開２００２−１９６９２３号公報  （図２参照）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来技術は、以上述べた構成のため、符号をシフト算出する回路と、絶対値をシフト算出する回路とを必要とし、一元に右に算術シフトした値を算出することができないので、回路規模を縮小することができない、また動作周波数を高速化した場合、複雑な回路構成により発熱量が高くなり誤動作が発生するため、動作周波数を高速化することができないという問題があった。
本発明は、このような問題点に鑑みてなされたものであり、絶対値をシフト算出する回路を削除して回路規模を縮小するとともに動作周波数を高速化することができる最上位ビットが１である負数の算術右シフト装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記問題を解決するため、本発明は、最上位ビットが１であるｍビット負数をｎビットだけ右に算術シフトした値を算出処理する算術右シフト装置において、第１および第２のラッチ回路と、第１および第２の補数演算器と、シフタ演算器と、を備え、前記第１のラッチ回路は、入力された前記最上位ビットが１であるｍビット負数を保持するものであり、  前記第１の補数演算器は、前記第１のラッチ回路で保持したｍビット負数を受けて１の補数を算出するものであり、前記第２のラッチ回路は、入力された前記ｎビットシフト量を保持するものであり、前記シフタ演算器は、前記第１の補数演算器で算出した１の補数と、前記第２のラッチ回路で保持したｎビットシフト量を受けて、前記第１の補数演算器で算出した１の補数を、前記第２のラッチ回路で保持したｎビットシフト量だけ論理右シフトを行なうものであり、前記第２の補数演算器は、前記シフタ演算器で論理右シフトされた算出値を受けて１の補数を算出することにより前記入力された負数の算術右シフト値を算出処理するものであることを特徴している。
【発明の効果】
【０００６】
本発明によれば、絶対値をシフト算出する回路を削除することができるため、回路規模を縮小するとともに動作周波数を高速化することができる最上位ビットが１である負数の算術右シフト装置を実現できる。
さらには、入力データを保持した値を１の補数演算器に入力して、１の補数を求めることによって１の補数演算器出力値を得ることができるので、マイクロプロセッサ装置及びデジタル信号処理プロセッサ装置に組み込まれている１の補数演算器を個別にもつ必要がなくなるという効果もある。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の具体的実施例について、図に基づいて説明する。
【実施例１】
【０００８】
図１は、本発明の最上位ビットが１である負数の算術右シフト装置を示す構成図である。
図１において、１は最上位ビットが１である負数の算術右シフト装置、２は１の補数演算器であり第１の補数演算器、Ｃｏは１の補数演算器出力値、４はシフタ演算器、Ｓｏはシフタ演算器出力値、６は１の補数演算器であり第２の補数演算器、１０１はラッチすなわち第２のラッチ、１２４はラッチすなわち第１のラッチ、Ｓｎはシフト量、Ｄｍはデータ、ＤＳはシフト済みデータである。
本発明の特徴は以下のとおりである。すなわち、第１および第２のラッチ回路と、第１および第２の補数演算器と、シフタ演算器と、を備え、前記第１のラッチ回路１２４は、入力された前記最上位ビットが１であるｍビット負数Ｄｍを保持するものであり、前記第１の補数演算器２は、前記第１のラッチ回路１２４で保持したｍビット負数Ｄｍを受けて１の補数Ｃｏを算出するものであり、前記第２のラッチ回路１０１は、入力された前記ｎビットシフト量Ｓｎを保持するものであり、前記シフタ演算器４は、前記第１の補数演算器２で算出した１の補数Ｃｏと、前記第２のラッチ回路１０１で保持したｎビットシフト量Ｓｎを受けて、前記第１の補数演算器２で算出した１の補数Ｃｏを、前記第２のラッチ回路１０１で保持したｎビットシフト量Ｓｎだけ論理右シフトを行なうものであり、前記第２の補数演算器６は、前記シフタ演算器４で論理右シフトされた算出値Ｓｏを受けて１の補数を算出することにより前記入力された負数Ｄｍの算術右シフト値Ｄｓを算出処理するものとした点である。
具体的には本発明は、従来技術である図２を構成する左シフタ２０２、ＯＲゲート２０８、左シフト出力Ｌｓ、左マスキング論理２１６、左シフト演算のためのマルチプレクサ（ｍｕｘ）２１８、右シフトマルチプレクサ（ｍｕｘ）２２０、右マスキング論理２２２、及び１の補数セレクタ（ｍｕｘ）２２６を不要とした構成となっている。
【０００９】
以下、図１に基づいて本発明の機能を説明する。
ここで、ｍビットを８ビットとして、最上位ビットが１である８ビット負数データＤｍを“１０１０１１０１”とし、ｎビットシフト量Ｓｎを３ビットとし、すなわち“０１１”だけ算術右シフトする場合を例に説明する。
データＤｍとして“１０１０１１０１”を入力し、入力データＤｍを第１のラッチ１２４で保持する。保持した入力データＤｍ“１０１０１１０１”を第1の補数演算器２に入力して、１の補数を求めれば、１の補数演算器出力値Ｃｏとして“０１０１００１０”を得る。
また、シフト量Ｓｎとして“０１１”を入力し、シフト量Ｓｎを第２のラッチ１０１で保持する。シフタ演算器４に１の補数演算器出力値Ｃｏ“０１０１００１０”と、保持したシフト量Ｓｎ“０１１”を入力し、“０１０１００１０”をシフト量Ｓｎすなわち３ビットだけ右に論理シフト演算を行ない“００００１０１０”をシフタ演算器出力値Ｓｏとして出力する。
さらにシフタ演算器出力値Ｓｏ“００００１０１０”を第２の補数演算器６に入力して、１の補数を求め“１１１１０１０１”を得る。
このようにして、“１１１１０１０１”をシフト済みデータＤｓとして出力すれば、最上位ビットが１である８ビット負数を右に３ビット算術シフトした値を算出したことになる。
【００１０】
以上述べたように、本発明の実施例に係る最上位ビットが１である負数の算術右シフト装置は、最上位ビットが１であるｍビット負数を入力保持する第１のラッチ回路１２４と、第１のラッチ回路１２４で保持したｍビット負数の１の補数を算出する第１の補数演算器２と、ｎビットシフト量を入力保持する第２のラッチ回路１０１と、第１の補数演算器２で算出した１の補数を第２のラッチ回路１０１で保持したｎビットシフト量だけ論理右シフトを行なうシフタ演算器４と、シフタ演算器４で論理右シフトされた算出値の１の補数を算出する第２の補数演算器６を備えたので、従来技術である図２を構成するのに重要な、左シフタ２０２、ＯＲゲート２０８、左シフト出力Ｌｓ、左マスキング論理２１６、左シフト演算のためのマルチプレクサ（ｍｕｘ）２１８、右シフトマルチプレクサ（ｍｕｘ）２２０、右マスキング論理２２２、及び１の補数セレクタ（ｍｕｘ）２２６を不要とし、すなわち絶対値をシフト算出する回路を削除することができるため、回路規模を縮小するとともに動作周波数を高速化することができる最上位ビットが１である負数の算術右シフト装置を実現できる。
さらには、入力データを保持した値を１の補数演算器に入力して、１の補数を求めることによって１の補数演算器出力値を得ることができるので、マイクロプロセッサ装置及びデジタル信号処理プロセッサ装置に組み込まれている１の補数演算器を個別にもつ必要がなくなる。
【産業上の利用可能性】
【００１１】
用途に制限無く、マイクロプロセッサ装置及びデジタル信号処理プロセッサ装置を利用したあらゆる装置に適用が可能である。
【図面の簡単な説明】
【００１２】
【図１】本発明の最上位ビットが１である負数の算術右シフト装置を示す構成図
【図２】従来の最上位ビットが１である負数の算術右シフト装置を示す構成図
【符号の説明】
【００１３】
１  最上位ビットが１である負数の算術右シフト装置
２、６  １の補数演算器
４  シフタ演算器
１０１、１２４ ラッチ
１２０  シフト演算ハードウェア
２０２  左シフタ
２０４  右シフタ
２０８  ＯＲゲート
２１６  左マスキング論理
２１８  左シフト演算のためのマルチプレクサ（ｍｕｘ）
２２０  右シフトマルチプレクサ（ｍｕｘ）
２２２  右マスキング論理
２２４  １の補数ハードウェア
２２６  １の補数セレクタ（ｍｕｘ）
Ｃｏ１の補数演算器出力値
Ｓｏ  シフタ演算器出力値
Ｓｎ  シフト量ｎ
Ｄｍ  データ
Ｄｓ  シフト済みデータ
Ｒｓ  右シフト出力データ
Ｌｓ  左シフト出力データ
【図１】
2005293092.tif 000003
【図２】
2005293092.tif 000004