JPH07225672A - バレルシフタ及び制御方法 - Google Patents

バレルシフタ及び制御方法

Info

Publication number
JPH07225672A
JPH07225672A JP6018672A JP1867294A JPH07225672A JP H07225672 A JPH07225672 A JP H07225672A JP 6018672 A JP6018672 A JP 6018672A JP 1867294 A JP1867294 A JP 1867294A JP H07225672 A JPH07225672 A JP H07225672A
Authority
JP
Japan
Prior art keywords
shift
bit
selecting means
signal
selection
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
Application number
JP6018672A
Other languages
English (en)
Inventor
Toshio Sugimura
敏夫 杉村
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP6018672A priority Critical patent/JPH07225672A/ja
Publication of JPH07225672A publication Critical patent/JPH07225672A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 大規模なハードウェアの追加や演算時間の増
加を招く事なく、同一資源の有効利用を図ることができ
るバレルシフタ及びその制御方法を提供すること。 【構成】 入力データに対してシフト側データ又は非シ
フト側データを選択する5段の選択手段1〜4,105
と、5段の選択手段1〜4,105のうち、何れの選択
手段によってもシフト側データが選択されない場合は、
入力されたマスクパターン13のマスク信号17を出力
し、5段の選択手段1〜4,105のうち、少なくとも
1つの選択手段によりシフト側データが選択された場合
は、第5の選択手段105に対するシフト許可信号16
に応じて、シフト側データ又は非シフト側データを選択
するマスク信号17を出力する制御部15を備える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、高速な信号処理等で必
要となるデータの桁合わせを柔軟に行うことができるバ
レルシフタ及びその制御方法に関するものである。
【0002】
【従来の技術】近年の信号処理アルゴリズムの複雑化に
より、高速な信号処理システムが求められている。従来
このような信号処理で扱うデータの桁合わせを柔軟に行
なう為に図4に示すようなバレルシフタが考案され、こ
れを応用したディジタル信号処理プロセッサが数多く考
案されている。
【0003】以下、図面を参照しながら、上記した従来
のバレルシフタの一例について説明する。
【0004】図4は、バレルシフタのブロック図であ
る。図4に示すように、バレルシフタは、入力データ1
1に対して左1ビットシフトを行なうための第1の選択
手段1、その第1の選択手段の出力データに対して左2
ビットシフトを行なうための第2の選択手段2、以下同
様に、左4ビットシフトを行なうための第3の選択手段
3、左8ビットシフトを行なうための第4の選択手段
4、右16ビットシフトを行なうための第5の選択手段
5により構成されている。
【0005】各選択手段には、第1の選択手段1の選択
制御を行なう第1の選択信号6、第2の選択手段2の選
択制御を行なう第2の選択信号7、第3の選択手段3の
選択制御を行なう第3の選択信号8、第4の選択手段4
の選択制御を行なう第4の選択信号9、第5の選択手段
5の選択制御を行なう第5の選択信号10が、それぞれ
入力される。入力データ11は、第1の選択手段1に入
力された後、各選択信号に応じてシフトされ、その結果
として出力データ12が第5の選択手段5から出力され
る。
【0006】図5は、図4に示すバレルシフタの第1選
択手段1から第5の選択手段5の内部構成を示すブロッ
ク図である。すなわち、各選択手段1〜5は、それぞれ
選択信号の反転信号を生成するインバータゲート100
及び信号を選択するマルチプレクサ101により構成さ
れ、ビットk(k:0〜15)の信号(非シフト側デー
タ)102及び、ビットk−i(i:1,2,4,8,
−16)の信号(シフト側データ)103の何れかを、
選択信号に応じて選択する。
【0007】次に、以上のように構成された従来のバレ
ルシフタの動作について説明する。 (ケース1)まず、図4で第5の選択信号10から第1
の選択信号6がx”1f”の右1ビットシフトの場合の
動作を説明する。
【0008】入力データ11が16ビットデータで第1
の選択信号6から第5の選択信号10の値が全て”1”
の時、第1の選択手段1から第5の選択手段5まで全て
シフト動作を選択する。
【0009】この時、第1の選択手段1は入力データ1
1の各ビットk(k:0〜15)に対してビットk−1
の値を選択し、結果として左1ビットシフトが実行され
る。
【0010】次に、第2の選択手段2は入力データの各
ビットkに対してビットk−2の値を選択し、結果とし
て左2ビットシフトが実行される。
【0011】次に、第3の選択手段3は入力データの各
ビットkに対してビットk−4の値を選択し、結果とし
て左4ビットシフトが実行される。
【0012】次に、第4の選択手段4は入力データの各
ビットkに対してビットk−8の値を選択し、結果とし
て左8ビットシフトが実行される。
【0013】次に、第5の選択手段5は入力データの各
ビットkに対してビットk+16の値を選択し、結果と
して右16ビットシフトが実行される。
【0014】以上のように、全ての選択手段1〜5がシ
フト動作を行なうことで最終的に右1ビットシフトが実
行される。 (ケース2)次に、右16ビットシフトの場合の動作を
説明する。
【0015】入力データ11が16ビットデータで第5
の選択信号10から第1の選択信号6の値がx”10”
の時、第1の選択手段1から第4の選択手段4までは全
て非シフト動作を選択し、第5の選択手段5のみシフト
動作を選択する。
【0016】この時、第1の選択手段1は入力データ1
1の各ビットk(k:0〜15)に対してビットkの値
を選択し、結果としてシフト処理は実行されない。
【0017】次に、第2の選択手段2は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理は実行されない。
【0018】次に、第3の選択手段3は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理は実行されない。
【0019】次に、第4の選択手段4は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理が実行されない。
【0020】次に、第5の選択手段5は入力データの各
ビットkに対してビットk+16の値を選択し、結果と
して右16ビットシフトが実行される。
【0021】以上のように、第1の選択手段1から第4
の選択手段4まではシフト処理を行なわず、第5の選択
手段5だけがシフト動作を行なうことで最終的に右16
ビットシフトが実行される。 (ケース3)次に、左1ビットシフトの場合の動作を説
明する。
【0022】入力データ11が16ビットデータで第5
の選択信号10から第1の選択信号6の値がx”01”
の時、第2の選択手段2から第5の選択手段5までは全
て非シフト動作を選択し、第1の選択手段1のみシフト
動作を選択する。
【0023】この時、第1の選択手段1は入力データ1
1の各ビットk(k:0〜15)に対してビットk−1
の値を選択し、結果として左1ビットシフトが実行され
る。
【0024】次に、第2の選択手段2は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理は実行されない。
【0025】次に、第3の選択手段3は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理は実行されない。
【0026】次に、第4の選択手段4は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理が実行されない。
【0027】次に、第5の選択手段5は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理が実行されない。
【0028】以上のように、第1の選択手段1だけがシ
フト処理を行ない、第2の選択手段2から第5の選択手
段5まではシフト処理を行なわないことで最終的に左1
ビットシフトが実行される。(ケース4)最後にシフト
処理を実行しない場合の動作を説明する。
【0029】入力データ11が16ビットデータで第1
の選択信号6から第5の選択信号10の値が全て”0”
の時、第1の選択手段1から第5の選択手段5まで全て
非シフト動作を選択する。
【0030】この時、第1の選択手段1は入力データの
各ビットk(k:0〜15)に対してビットkの値を選
択し、結果としてシフト処理は実行されない。
【0031】次に、第2の選択手段2は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理は実行されない。
【0032】次に、第3の選択手段3は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理は実行されない。
【0033】次に、第4の選択手段4は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理が実行されない。
【0034】次に、第5の選択手段5は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理が実行されない。
【0035】以上のように、第1の選択手段1から第5
の選択手段5までの全てがシフト処理を行なわないこと
で最終的にシフト処理が実行されず、入力データ11が
そのまま出力データ12として出力される。
【0036】
【発明が解決しようとする課題】しかしながら、上記の
ような従来の構成では、シフト処理を必要としない演算
ではバレルシフタは単なるデータの経路でしかなく演算
器として意味をなさない為、資源の利用効率が悪いとい
った課題を有していた。
【0037】本発明は、従来のバレルシフタのこのよう
な課題を考慮し、大規模なハードウェアの追加や演算時
間の増加を招く事なく、同一資源の有効利用を図ること
ができるバレルシフタ及びその制御方法を提供すること
を目的とするものである。
【0038】
【課題を解決するための手段】本発明は、選択信号に応
じて、入力データに対してシフト側データ又は非シフト
側データを選択するN段の選択手段を有し、右2N-1
ット、左2N-1−1ビットのシフトが可能なバレルシフ
タにおいて、N段の選択手段のうち、何れの選択手段に
よってもシフト側データが選択されない場合は、入力さ
れたマスク信号を出力し、N段の選択手段のうち、少な
くとも1つの選択手段によりシフト側データが選択され
た場合は、最終段の選択手段に対する選択信号に応じ
て、シフト側データ又は非シフト側データを選択するマ
スク信号を出力する制御部を備えたバレルシフタであ
る。
【0039】
【作用】本発明は、制御部が、N段の選択手段のうち、
何れの選択手段によってもシフト側データが選択されな
い場合は、入力されたマスク信号を出力し、N段の選択
手段のうち、少なくとも1つの選択手段によりシフト側
データが選択された場合は、最終段の選択手段に対する
選択信号に応じて、シフト側データ又は非シフト側デー
タを選択する。
【0040】
【実施例】以下に、本発明をその実施例を示す図面に基
づいて説明する。
【0041】図1は、本発明にかかる一実施例のバレル
シフタのブロック図である。図1において、第1の選択
手段1から第4の選択手段4は、従来例の図4で述べた
構成と同じであり、同様の動作を行なう。
【0042】従来例のバレルシフタと異なる点は、第5
の選択手段105の構成と、制御部15が付加されてい
る点である。制御部15は、マスク処理時のマスクパタ
ーン13、シフト実行を要求するシフト実行信号14及
び、第5の選択信号10が入力し、それら第5の選択信
号10、マスクパターン13、及びシフト実行信号14
に基づいて、後述のシフト許可信号16とマスク信号1
7とを第5の選択手段105へ出力する(図2は制御部
15における入力信号と出力信号との関係を示す図であ
る)。すなわち、シフト許可信号16はシフト実行時に
有効となり、マスク信号17は非シフト処理実行時に有
効となる。
【0043】図3は、本実施例のバレルシフタにおける
第5の選択手段105の内部構成図である。第5の選択
手段105が他の選択手段(図5参照)と異なる点は、
インバータゲートにより反転された反転選択信号の替わ
りにマスク信号17が入力されている点である。
【0044】次に、上記実施例のバレルシフタの動作に
ついて、図2を用いて説明する。 (図2のケース11の場合)まず、図2で第5の選択信
号10から第1の選択信号6がx”1f”でシフト実行
信号14が”1”の右1ビットシフトの場合の動作を説
明する。
【0045】入力データ11が16ビットデータで第1
の選択信号6から第4の選択信号9の値が全て”1”の
時、第1の選択手段1から第4の選択手段4まで全てシ
フト動作を選択する。
【0046】この時、第1の選択手段1は入力データの
各ビットk(k:0〜15)に対してビットk−1の値
を選択し、結果として左1ビットシフトが実行される。
【0047】次に、第2の選択手段2は入力データの各
ビットkに対してビットk−2の値を選択し、結果とし
て左2ビットシフトが実行される。
【0048】次に、第3の選択手段3は入力データの各
ビットkに対してビットk−4の値を選択し、結果とし
て左4ビットシフトが実行される。
【0049】次に、第4の選択手段4は入力データの各
ビットkに対してビットk−8の値を選択し、結果とし
て左8ビットシフトが実行される。
【0050】次に、第5の選択手段105は制御部15
から出力されるシフト許可信号16が”1”で、マスク
信号17がx”0000”であるため、非シフト側デー
タ(図3の信号102側)は無効とされ、入力データの
各ビットkに対してビットk+16の値(シフト側デー
タ、図3の信号103側)を選択し、結果として右16
ビットシフトが実行される。
【0051】従って、最終的に右1ビットシフトが実行
される。 (図2のケース12の場合)次に、図2で第5の選択信
号10から第1の選択信号6がx”10”でシフト実行
信号14が”1”の右16ビットシフトの場合の動作を
説明する。
【0052】入力データ11が16ビットデータで第1
の選択信号6から第4の選択信号9の値が全て”0”の
時、第1の選択手段1から第4の選択手段4まで全て非
シフト動作を選択する。
【0053】この時、第1の選択手段1は入力データの
各ビットk(k:0〜15)に対してビットkの値を選
択し、結果としシフト処理が実行されない。
【0054】次に、第2の選択手段2は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理が実行されない。
【0055】次に、第3の選択手段3は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理が実行されない。
【0056】次に、第4の選択手段4は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理が実行されない。
【0057】次に、第5の選択手段105は制御部15
から出力されるシフト許可信号16が”1”で、マスク
信号17がX”0000”であるため、前述のケース1
と同様に、入力データの各ビットkに対してビットk+
16の値を選択し、結果として右16ビットシフト処理
が実行される。
【0058】従って、最終的に右16ビットシフトが実
行される。 (図2のケース13の場合)次に、図2で第5の選択信
号10から第1の選択信号6がx”01”でシフト実行
信号14が”1”の左1ビットシフトの場合の動作を説
明する。
【0059】入力データ11が16ビットデータで第2
の選択信号7から第5の選択信号10の値が全て”0”
の時、第2の選択手段2から第5の選択手段105まで
全て非シフト動作を選択する。
【0060】この時、第1の選択手段1は入力データの
各ビットk(k:0〜15)に対してビットk−1の値
を選択し、結果とし左1ビットシフトが実行される。
【0061】次に、第2の選択手段2は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理が実行されない。
【0062】次に、第3の選択手段3は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理が実行されない。
【0063】次に、第4の選択手段4は入力データの各
ビットkに対してビットkの値を選択し、結果としてシ
フト処理が実行されない。
【0064】次に、第5の選択手段105は制御部15
から出力されるシフト許可信号16が”0”で、マスク
信号17がX”ffff”であるため、入力データの各
ビットkに対してビットkの値(図3の信号102側)
を選択し、結果としてシフト処理が実行されない。
【0065】従って、最終的に左1ビットシフトが実行
される。 (図2のケース14の場合)次に、図2で第4の選択信
号9から第1の選択信号6がx”0”でシフト実行信号
14が”0”の全てのビットをイネーブルにするマスク
処理の場合の動作を説明する。
【0066】入力データ11が16ビットデータで第1
の選択信号6から第4の選択信号9の値が全て”0”の
時、第1の選択手段1から第4の選択手段4まで全て非
シフト動作を選択する。
【0067】この時、第1の選択手段1から第4の選択
手段4までは入力データの各ビットk(k:0〜15)
に対してビットkの値を選択し、結果としシフト処理が
実行されない。
【0068】次に、第5の選択手段105は制御部15
から出力されるシフト許可信号16が”0”で、マスク
信号17がX”ffff”であるため、入力データの各
ビットに対してマスク処理を行ない全てのデータが有効
となる。従って、最終的に入力データ11がそのまま出
力データ12として出力される。 (図2のケース15の場合)次に、図2で第4の選択信
号9から第1の選択信号6がx”0”でシフト実行信号
14が”0”のビット4から7の4ビットのみ有効にす
るマスク処理の場合の動作を説明する。
【0069】入力データ11が16ビットデータで第1
の選択信号6から第4の選択信号9の値が全て”0”の
時、前述のケース14と同様に、第1の選択手段1から
第4の選択手段4まで全て非シフト動作を選択する。
【0070】この時、第1の選択手段1から第4の選択
手段4までは入力データの各ビットk(k:0〜15)
に対してビットkの値を選択し、結果としシフト処理が
実行されない。
【0071】次に、第5の選択手段105は制御部15
から出力されるシフト許可信号16が”0”で、マスク
信号17がX”00f0”であるため、入力データのビ
ット4から7に対してマスク処理を行なう。従って、最
終的にはビット0から3、及びビット8から15は0が
出力され、入力データ11の内ビット4からビット7の
データがそのまま出力データ12として出力される。こ
れによってビット4から7のデータの切り出しが実現で
きたことになる。
【0072】以上のように、本実施例によれば、バレル
シフタを構成するN段の選択手段の内、最終段の選択手
段に対し、入力されるシフト実行信号が有効でない時に
は、非シフト側の入力データに対するマスク処理を行な
うためのマスク信号を出力し、入力されるシフト実行信
号が有効である時にはシフト側の入力データを選択する
ためのシフト許可信号を出力する制御部を設けることに
よって、従来のシフト処理に加え、非シフト処理実行時
には、バレルシフタの最終段で制御部から出力されるマ
スク信号によって特定ビットのマスク処理あるいはビッ
ト切り出しを同一ハードウェアにより行ない、非シフト
処理実行時にも資源の利用効率を高めることができる。
【0073】なお、上記実施例では、選択手段にマルチ
プレクサを用いたが、これに限らず、同様の機能を果た
す別の回路、装置等でもよい。
【0074】また、上記実施例では、制御部と最終段の
選択手段を独立に持たせる構成としたが、これに限ら
ず、一体化した構成としてもよい。
【0075】また、上記実施例では、係数N=5として
5段の選択手段により構成したが、これに限らず、他の
値でもよく、いくつでもよい。
【0076】
【発明の効果】以上述べたところから明らかなように本
発明は、N段の選択手段のうち、何れの選択手段によっ
てもシフト側データが選択されない場合は、入力された
マスク信号を出力し、N段の選択手段のうち、少なくと
も1つの選択手段によりシフト側データが選択された場
合は、最終段の選択手段に対する選択信号に応じて、シ
フト側データ又は非シフト側データを選択するマスク信
号を出力する制御部を備えているので、大規模なハード
ウェアの追加や演算時間の増加を招く事なく、同一資源
の有効利用を図ることができるという長所を有する。
【図面の簡単な説明】
【図1】本発明にかかる一実施例のバレルシフタのブロ
ック図である。
【図2】同実施例における制御部の動作を説明する図で
ある。
【図3】同実施例における第5の選択手段の内部構成図
である。
【図4】従来のバレルシフタのブロック図である。
【図5】従来のバレルシフタにおける選択手段の内部構
成図である。
【符号の説明】
1 第1の選択手段 2 第2の選択手段 3 第3の選択手段 4 第4の選択手段 5 第5の選択手段 15 制御部 16 シフト許可信号 17 マスク信号 100 インバータゲート 101 マルチプレクサ 102 ビットkの信号 103 ビットk−iの信号 105 第5の選択手段

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 選択信号に応じて、入力データに対して
    シフト側データ又は非シフト側データを選択するN段の
    選択手段を有し、右2N-1ビット、左2N-1−1ビットの
    シフトが可能なバレルシフタにおいて、前記N段の選択
    手段のうち、何れの選択手段によってもシフト側データ
    が選択されない場合は、入力されたマスク信号を出力
    し、前記N段の選択手段のうち、少なくとも1つの選択
    手段によりシフト側データが選択された場合は、最終段
    の選択手段に対する選択信号に応じて、シフト側データ
    又は非シフト側データを選択するマスク信号を出力する
    制御部を備えたことを特徴とするバレルシフタ。
  2. 【請求項2】 選択信号に応じて、入力データに対して
    シフト側データ又は非シフト側データを選択するN段の
    選択手段によって、右2N-1ビット、左2N-1−1ビット
    のシフトが可能なバレルシフタ制御方法において、前記
    N段の選択手段のうち、何れの選択手段によってもシフ
    ト側データが選択されない場合は、入力されたマスク信
    号を出力し、前記N段の選択手段のうち、少なくとも1
    つの選択手段によりシフト側データが選択された場合
    は、最終段の選択手段に対する選択信号に応じて、シフ
    ト側データ又は非シフト側データを選択するマスク信号
    を出力することを特徴とするバレルシフタ制御方法。
JP6018672A 1994-02-15 1994-02-15 バレルシフタ及び制御方法 Pending JPH07225672A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6018672A JPH07225672A (ja) 1994-02-15 1994-02-15 バレルシフタ及び制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6018672A JPH07225672A (ja) 1994-02-15 1994-02-15 バレルシフタ及び制御方法

Publications (1)

Publication Number Publication Date
JPH07225672A true JPH07225672A (ja) 1995-08-22

Family

ID=11978103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6018672A Pending JPH07225672A (ja) 1994-02-15 1994-02-15 バレルシフタ及び制御方法

Country Status (1)

Country Link
JP (1) JPH07225672A (ja)

Similar Documents

Publication Publication Date Title
JP2983542B2 (ja) 処理高速化装置
JP3378444B2 (ja) シフト回路
US5764550A (en) Arithmetic logic unit with improved critical path performance
US4878191A (en) Multiplication circuit capable of operating at a high speed with a small amount of hardware
US5719802A (en) Adder circuit incorporating byte boundaries
JPH07225672A (ja) バレルシフタ及び制御方法
JPS63219227A (ja) 算術演算装置
JP4278320B2 (ja) シフト演算装置及びシステム
US5623434A (en) Structure and method of using an arithmetic and logic unit for carry propagation stage of a multiplier
JPS6017534A (ja) 浮動小数点数値正規化回路
KR0166403B1 (ko) 연산장치
JPH0799808B2 (ja) 算術論理演算装置
JPS60253315A (ja) 可変遅延回路
JP2856791B2 (ja) バレルシフタおよび浮動小数点演算器
JPS622328B2 (ja)
JP3111695B2 (ja) 演算処理装置
US6041341A (en) Method and circuit for adding operands of multiple size
JPH02293928A (ja) マイクロコンピュータ
JPS60245046A (ja) ロジカルシフト演算回路
JPH01259415A (ja) データ補正回路
JPH051498B2 (ja)
JPH08137669A (ja) 演算回路
JPH0318926A (ja) 演算回路
JPH06214758A (ja) 演算回路
JPH0683577A (ja) シフト演算装置