JP2624342B2 - バレルシフタ - Google Patents
バレルシフタInfo
- Publication number
- JP2624342B2 JP2624342B2 JP1248370A JP24837089A JP2624342B2 JP 2624342 B2 JP2624342 B2 JP 2624342B2 JP 1248370 A JP1248370 A JP 1248370A JP 24837089 A JP24837089 A JP 24837089A JP 2624342 B2 JP2624342 B2 JP 2624342B2
- Authority
- JP
- Japan
- Prior art keywords
- shift
- bit
- register
- input
- barrel shifter
- 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 - Fee Related
Links
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、シフト機能を有するデータ処理装置に関す
るものであり、特に少ない素子数で、かつ、集積化に適
した回路で、ローテイトを実現するシフト回路に関する
ものである。
るものであり、特に少ない素子数で、かつ、集積化に適
した回路で、ローテイトを実現するシフト回路に関する
ものである。
一般に、マイクロプロセッサ等のデータ処理装置は、
データの複数のビットのシフト処理を高速に行うために
バレルシフタを備えている。そして、論理演算、及び、
算術演算を行うため、バレルシフタは、論理シフト、算
術シフト、ローテイトの3種類の処理機能を備えてい
る。
データの複数のビットのシフト処理を高速に行うために
バレルシフタを備えている。そして、論理演算、及び、
算術演算を行うため、バレルシフタは、論理シフト、算
術シフト、ローテイトの3種類の処理機能を備えてい
る。
第6図は、従来の32ビットのバレルシフタの回路図で
ある。33は1ビットの固定桁シフト回路、34は2ビット
の固定桁シフト回路、35は4ビットの固定桁シフト回
路、36は8ビットの固定桁シフト回路、37は16ビットの
固定桁シフト回路である。入力信号線200〜231は32ビッ
トのデータの入力信号線である。41はANDゲート、42はO
Rゲートである。1ビットの固定桁シフト回路33におい
て、38は1ビットの左方向のシフトを行うための制御信
号、39はシフトせずに入力データをそのまま出力するた
めの制御信号、40は1ビットの右方向のシフトを行うた
めの制御信号である。2ビットの固定桁シフト回路34に
おいて、43は2ビットの左方向のシフトを行うための制
御信号、44はシフトせずに入力データをそのまま出力す
るための制御信号、45は2ビットの右方向のシフトを行
うための制御信号である。4ビット固定桁シフト回路35
において、46は4ビットの左方向のシフトを行うための
制御信号、47はシフトせずに入力データをそのまま出力
するための制御信号、48は4ビットの右方向のシフトを
行うための制御信号である。8ビットの固定桁シフト回
路36において、49は8ビットの左方向のシフトを行うた
めの制御信号、50はシフトせずに入力データをそのまま
出力するための制御信号、51は8ビットの右方向のシフ
トを行うための制御信号である。16ビットの固定桁シフ
ト回路37において、52は16ビットの左方向のシフトを行
うための制御信号、53はシフトせずに入力データをその
まま出力するための制御信号、54は16ビットの右方向の
シフトを行うための制御信号である。
ある。33は1ビットの固定桁シフト回路、34は2ビット
の固定桁シフト回路、35は4ビットの固定桁シフト回
路、36は8ビットの固定桁シフト回路、37は16ビットの
固定桁シフト回路である。入力信号線200〜231は32ビッ
トのデータの入力信号線である。41はANDゲート、42はO
Rゲートである。1ビットの固定桁シフト回路33におい
て、38は1ビットの左方向のシフトを行うための制御信
号、39はシフトせずに入力データをそのまま出力するた
めの制御信号、40は1ビットの右方向のシフトを行うた
めの制御信号である。2ビットの固定桁シフト回路34に
おいて、43は2ビットの左方向のシフトを行うための制
御信号、44はシフトせずに入力データをそのまま出力す
るための制御信号、45は2ビットの右方向のシフトを行
うための制御信号である。4ビット固定桁シフト回路35
において、46は4ビットの左方向のシフトを行うための
制御信号、47はシフトせずに入力データをそのまま出力
するための制御信号、48は4ビットの右方向のシフトを
行うための制御信号である。8ビットの固定桁シフト回
路36において、49は8ビットの左方向のシフトを行うた
めの制御信号、50はシフトせずに入力データをそのまま
出力するための制御信号、51は8ビットの右方向のシフ
トを行うための制御信号である。16ビットの固定桁シフ
ト回路37において、52は16ビットの左方向のシフトを行
うための制御信号、53はシフトせずに入力データをその
まま出力するための制御信号、54は16ビットの右方向の
シフトを行うための制御信号である。
1ビットの固定桁シフト回路33は、制御信号38を“H"
にすると1ビット左方向のローテイトを行うことがで
き、制御信号39を“H"にすると入力データをそのまま出
力することができる。制御信号40を“H"にすることによ
り、1ビットの右方向のローテイトを行うことができ
る。
にすると1ビット左方向のローテイトを行うことがで
き、制御信号39を“H"にすると入力データをそのまま出
力することができる。制御信号40を“H"にすることによ
り、1ビットの右方向のローテイトを行うことができ
る。
32ビットのバレルシフタを構成する場合、2ビット、
4ビット、8ビット、16ビットの固定桁シフト回路を1
ビットの固定桁シフト回路33と同様の構成で構成し、5
段直列に接続することにより任意ビットの左右方向のロ
ーテイトを実現していた。
4ビット、8ビット、16ビットの固定桁シフト回路を1
ビットの固定桁シフト回路33と同様の構成で構成し、5
段直列に接続することにより任意ビットの左右方向のロ
ーテイトを実現していた。
例えば、10ビットの右方向のローテイトを行う場合、
2ビットの固定桁シフト回路34で制御信号45を“H"にす
ることにより2ビットの右方向のローテイトを行い、前
記ローテイトを行ったデータについて8ビットの固定桁
シフト回路36の制御信号51を“H"にすることにより、8
ビットの右方向のローテイトを行う。そして、他の固定
桁シフト回路は入力信号をそのまま出力するように制御
信号39,47,53を“H"にすることにより、10ビットの右方
向のローテイトが実現できる。
2ビットの固定桁シフト回路34で制御信号45を“H"にす
ることにより2ビットの右方向のローテイトを行い、前
記ローテイトを行ったデータについて8ビットの固定桁
シフト回路36の制御信号51を“H"にすることにより、8
ビットの右方向のローテイトを行う。そして、他の固定
桁シフト回路は入力信号をそのまま出力するように制御
信号39,47,53を“H"にすることにより、10ビットの右方
向のローテイトが実現できる。
上記従来のバレルシフタでは、以上に述べたように、
多段の固定桁シフト回路が直列に接続され、多くのゲー
トを通過するために遅延が大きくなり、処理時間が長く
なり、LSIに実現する上で配線が複雑になるという問題
点があった。
多段の固定桁シフト回路が直列に接続され、多くのゲー
トを通過するために遅延が大きくなり、処理時間が長く
なり、LSIに実現する上で配線が複雑になるという問題
点があった。
また、上記バレルシフタはローテイト操作専用のもの
であり、更に、論理シフト、算術シフトの機能を追加し
ようとすると、制御信号の数、トランジスタの数が増加
してしまうという問題点があった。
であり、更に、論理シフト、算術シフトの機能を追加し
ようとすると、制御信号の数、トランジスタの数が増加
してしまうという問題点があった。
この発明は、上記従来のものの問題点を解消するため
になされたもので、少ないハードウェア量で、しかも、
集積化に適した回路でローテイト、論理シフト、算術シ
フトを行うことができるバレルシフタを提供することを
目的とする。
になされたもので、少ないハードウェア量で、しかも、
集積化に適した回路でローテイト、論理シフト、算術シ
フトを行うことができるバレルシフタを提供することを
目的とする。
この発明にかかるバレルシフタは、双方向のシフトマ
トリクスを有し、かつ、前記シフトマトリクスにおい
て、該第1のレジスタのNビット目のシフトデータ転送
用の入出力端子と該第2のレジスタのMビット目のシフ
トデータ転送用の入出力端子が接続している場合、N≧
Mならば、前記接続された端子間に1つのトランスミッ
ションゲートが接続されており、N<Mならば、前記接
続された端子間に2つのトランスミッションゲートが直
列に接続されているバレルシフタにおいて、該第1のレ
ジスタのNビット目のシフトデータ転送用の入出力端子
と該第2のレジスタのMビット目のシフトデータ転送用
の入出力端子が接続している場合、N<Mならば、前記
接続された端子間に2つのトランスミッションゲートが
直列に接続されており、かつ、前記第1のレジスタ側の
トランスミッションゲートがローテートと、シフトを行
うためのデータ転送経路のセレクタとなっており、前記
第1のレジスタ側のビットと同じビットに配置されるよ
う構成し、更にシフト動作時に、N<Mならば、直列接
続される前記2のトランスミッションゲートの接続点に
論理シフトと算術シフトを選択的に行うためのディスチ
ャージ回路を有するように構成し、更に内部をプリチャ
ージ方式で、かつ、高速化のため、反転論理でシフト動
作を行うようにバレルシフタを構成したものである。
トリクスを有し、かつ、前記シフトマトリクスにおい
て、該第1のレジスタのNビット目のシフトデータ転送
用の入出力端子と該第2のレジスタのMビット目のシフ
トデータ転送用の入出力端子が接続している場合、N≧
Mならば、前記接続された端子間に1つのトランスミッ
ションゲートが接続されており、N<Mならば、前記接
続された端子間に2つのトランスミッションゲートが直
列に接続されているバレルシフタにおいて、該第1のレ
ジスタのNビット目のシフトデータ転送用の入出力端子
と該第2のレジスタのMビット目のシフトデータ転送用
の入出力端子が接続している場合、N<Mならば、前記
接続された端子間に2つのトランスミッションゲートが
直列に接続されており、かつ、前記第1のレジスタ側の
トランスミッションゲートがローテートと、シフトを行
うためのデータ転送経路のセレクタとなっており、前記
第1のレジスタ側のビットと同じビットに配置されるよ
う構成し、更にシフト動作時に、N<Mならば、直列接
続される前記2のトランスミッションゲートの接続点に
論理シフトと算術シフトを選択的に行うためのディスチ
ャージ回路を有するように構成し、更に内部をプリチャ
ージ方式で、かつ、高速化のため、反転論理でシフト動
作を行うようにバレルシフタを構成したものである。
この発明において、双方向のシフトマトリクスを有
し、かつ、前記シフトマトリクスにおいて、該第1のレ
ジスタのNビット目のシフトデータ転送用の入出力端子
と該第2のレジスタのMビット目のシフトデータ転送用
の入出力端子が接続している場合、N≧Mならば、前記
接続された端子間に1つのトランスミッションゲートが
接続されており、N<Mならば、前記接続された端子間
に2つのトランスミッションゲートが直列に接続されて
いるバレルシフタにおいて、該第1のレジスタのNビッ
ト目のシフトデータ転送用の入出力端子と該第2のレジ
スタのMビット目のシフトデータ転送用の入出力端子が
接続している場合、N<Mならば、前記接続された端子
間に2つのトランスミッションゲートが直列に接続され
ており、かつ、前記第1のレジスタ側のトランスミッシ
ョンゲートがローテートと、シフトを行うためのデータ
転送経路のセレクタとなっており、前記第1のレジスタ
側のビットと同じビットに配置されるよう構成し、更に
シフト動作時に、N<Mならば、直列接続される前記2
つのトランスミッションゲートの接続点に論理シフトと
算術シフトを選択的に行うためのディスチャージ回路を
有するように構成することにより、少ないハードウェア
量で、かつ、集積化に適した回路構成で、ローテイト、
論理シフト、算術シフトの機能を有する高速なバレルシ
フタを実現することができる。
し、かつ、前記シフトマトリクスにおいて、該第1のレ
ジスタのNビット目のシフトデータ転送用の入出力端子
と該第2のレジスタのMビット目のシフトデータ転送用
の入出力端子が接続している場合、N≧Mならば、前記
接続された端子間に1つのトランスミッションゲートが
接続されており、N<Mならば、前記接続された端子間
に2つのトランスミッションゲートが直列に接続されて
いるバレルシフタにおいて、該第1のレジスタのNビッ
ト目のシフトデータ転送用の入出力端子と該第2のレジ
スタのMビット目のシフトデータ転送用の入出力端子が
接続している場合、N<Mならば、前記接続された端子
間に2つのトランスミッションゲートが直列に接続され
ており、かつ、前記第1のレジスタ側のトランスミッシ
ョンゲートがローテートと、シフトを行うためのデータ
転送経路のセレクタとなっており、前記第1のレジスタ
側のビットと同じビットに配置されるよう構成し、更に
シフト動作時に、N<Mならば、直列接続される前記2
つのトランスミッションゲートの接続点に論理シフトと
算術シフトを選択的に行うためのディスチャージ回路を
有するように構成することにより、少ないハードウェア
量で、かつ、集積化に適した回路構成で、ローテイト、
論理シフト、算術シフトの機能を有する高速なバレルシ
フタを実現することができる。
以下、本発明の一実施例を図について説明する。
第1図は、本発明の一実施例による32ビットのバレル
シフタを示す。1はBB00,BB01,BB02,…,BB31の32ビット
から構成される第1レジスタである。2はBA00,BA01,BA
02,…BA31の32ビットから構成される第2レジスタであ
る。上記レジスタのうちいずれか一方がシフト処理時の
データの入力レジスタとなり、他方がシフト結果の出力
レジスタとなる。3は双方向のシフトマトリクス、4は
データ入力バス、5はシフト結果の出力バスである。7i
j(0≦i≦3、0≦j≦9)はシフト幅に応じて“H"
となる制御信号であり、7ijはシフト幅がijビットの時
に“H"となる制御信号である。10はローテイトを行う場
合に“H"となる制御信号、11は算術シフト、かつ、右方
向のシフト、かつ、符号ビットが“1"の場合にのみ“H"
となる制御信号である。16はROT10が“H"である時にON
するトランジスタ群である。17はSHA11が“H"である時
にONするトランジスタ群である。5ijはSFTij(7ij)が
“H"の時にONするトランジスタ群である。800〜831は第
1レジスタ1に接続されるシフトパスであり、シフトパ
ス(8k1)(0≦k≦3、0≦1≦9)は第1レジスタ
1のk1ビット目のBBk1に接続している。900〜931は第2
レジスタ2に接続されるシフトパスであり、シフトパス
9st(0≦s≦3,0≦t≦9)は第2レジスタ2のstビッ
ト目のBAstに接続している。600〜631はローテイト、或
いは算術シフトを行う際に必要となるシフトパスであ
り、シフトパス(6gh)(0≦g≦3,0≦h≦9)はトラ
ンジスタ群16がONすることによりシフトパス(8gh)に
接続される。本発明の一実施例である第1図のバレルシ
フタの回路図をブロック図で表すと第2図のようにな
る。
シフタを示す。1はBB00,BB01,BB02,…,BB31の32ビット
から構成される第1レジスタである。2はBA00,BA01,BA
02,…BA31の32ビットから構成される第2レジスタであ
る。上記レジスタのうちいずれか一方がシフト処理時の
データの入力レジスタとなり、他方がシフト結果の出力
レジスタとなる。3は双方向のシフトマトリクス、4は
データ入力バス、5はシフト結果の出力バスである。7i
j(0≦i≦3、0≦j≦9)はシフト幅に応じて“H"
となる制御信号であり、7ijはシフト幅がijビットの時
に“H"となる制御信号である。10はローテイトを行う場
合に“H"となる制御信号、11は算術シフト、かつ、右方
向のシフト、かつ、符号ビットが“1"の場合にのみ“H"
となる制御信号である。16はROT10が“H"である時にON
するトランジスタ群である。17はSHA11が“H"である時
にONするトランジスタ群である。5ijはSFTij(7ij)が
“H"の時にONするトランジスタ群である。800〜831は第
1レジスタ1に接続されるシフトパスであり、シフトパ
ス(8k1)(0≦k≦3、0≦1≦9)は第1レジスタ
1のk1ビット目のBBk1に接続している。900〜931は第2
レジスタ2に接続されるシフトパスであり、シフトパス
9st(0≦s≦3,0≦t≦9)は第2レジスタ2のstビッ
ト目のBAstに接続している。600〜631はローテイト、或
いは算術シフトを行う際に必要となるシフトパスであ
り、シフトパス(6gh)(0≦g≦3,0≦h≦9)はトラ
ンジスタ群16がONすることによりシフトパス(8gh)に
接続される。本発明の一実施例である第1図のバレルシ
フタの回路図をブロック図で表すと第2図のようにな
る。
第1レジスタ1,第2レジスタ2の回路構成を第3図に
示す。23はデータを保持するラッチ、24は入力バス4か
ら第1レジスタ1、或いは、第2レジスタ2に入力デー
タを取り込む際に開くトランスミッションゲート、25は
シフト結果を第1レジスタ1、或いは第2レジスタ2に
取り込む際に開くトランスミッションゲート、26はイン
バータ、27はディスチャージのために直列に接続したN
チャンネルトランジスタ、28はプリチャージ用のPチャ
ネルトランジスタ、29のPATHはシフトパスである800〜8
31、900〜931に接続される。30はラッチ23の帰還用のト
ランスミッションゲート、31,32はインバータである。
示す。23はデータを保持するラッチ、24は入力バス4か
ら第1レジスタ1、或いは、第2レジスタ2に入力デー
タを取り込む際に開くトランスミッションゲート、25は
シフト結果を第1レジスタ1、或いは第2レジスタ2に
取り込む際に開くトランスミッションゲート、26はイン
バータ、27はディスチャージのために直列に接続したN
チャンネルトランジスタ、28はプリチャージ用のPチャ
ネルトランジスタ、29のPATHはシフトパスである800〜8
31、900〜931に接続される。30はラッチ23の帰還用のト
ランスミッションゲート、31,32はインバータである。
第4図は、第1図のシフト回路において、1ビット右
方向のローテイトを行う場合のタイミング図である。21
はシフト回路を含むデータ処理装置の内部動作クロック
であり、本発明の一実施例であるバレルシフタはA,B,C,
Dの4フェーズで動作する。22はプリチャージ用のPチ
ャネルトランジスタ28を制御するためのクロック信号φ
である。
方向のローテイトを行う場合のタイミング図である。21
はシフト回路を含むデータ処理装置の内部動作クロック
であり、本発明の一実施例であるバレルシフタはA,B,C,
Dの4フェーズで動作する。22はプリチャージ用のPチ
ャネルトランジスタ28を制御するためのクロック信号φ
である。
第3図と第4図を用いて第1レジスタ1,及び第2レジ
スタ2の動作について説明する。内部動作クロック21が
Aのタイミングの時、入力データ取り込み用のトランス
ミッションゲート24が開き、入力バス4からラッチ23に
入力データを取り込むことにより、第1レジスタ1に入
力データを格納する。内部動作クロック21がBのタイミ
ングになると制御クロックφ22が“L"となり、Pチャネ
ルトランジスタ28がONし、シフトパス600〜631、800〜8
31、900〜931がプリチャージされる。内部動作クロック
21がCのタイミングに、右方向のローテイト、算術シフ
ト、或いは論理シフトが行われる時、第1レジスタ1の
直列に接続したディスチャージトランジスタ27のゲート
信号の一方であるC4は“H"となる。この時、第1レジス
タ1のラッチ23に格納されているデータが“0"の場合、
PATH29はディスチャージされず、プリチャージされたデ
ータ“1"がPATH29上に出力される。PATH29上に出力され
たデータ“1"はシフトされ、第2レジスタ2のインバー
タ26により反転され、ラッチ23に取り込まれることによ
り、第2レジスタ2には、シフト結果である“0"が格納
される。逆に、第1レジスタ1のラッチ23に格納されて
いるデータが“1"の場合、PATH29はディスチャージトラ
ンジスタ27によりディスチャージされ、ディスチャージ
されたデータ“0"がPATH29上に出力される。PATH29上に
出力されたデータ“0"はシフトされ、第2レジスタ2の
インバータ26により反転され、ラッチ23に取り込まれる
ことにより、第2レジスタ2には、シフト結果である
“1"が格納される。このようにシフトマトリクス内では
反転論理でデータの転送が行われる。
スタ2の動作について説明する。内部動作クロック21が
Aのタイミングの時、入力データ取り込み用のトランス
ミッションゲート24が開き、入力バス4からラッチ23に
入力データを取り込むことにより、第1レジスタ1に入
力データを格納する。内部動作クロック21がBのタイミ
ングになると制御クロックφ22が“L"となり、Pチャネ
ルトランジスタ28がONし、シフトパス600〜631、800〜8
31、900〜931がプリチャージされる。内部動作クロック
21がCのタイミングに、右方向のローテイト、算術シフ
ト、或いは論理シフトが行われる時、第1レジスタ1の
直列に接続したディスチャージトランジスタ27のゲート
信号の一方であるC4は“H"となる。この時、第1レジス
タ1のラッチ23に格納されているデータが“0"の場合、
PATH29はディスチャージされず、プリチャージされたデ
ータ“1"がPATH29上に出力される。PATH29上に出力され
たデータ“1"はシフトされ、第2レジスタ2のインバー
タ26により反転され、ラッチ23に取り込まれることによ
り、第2レジスタ2には、シフト結果である“0"が格納
される。逆に、第1レジスタ1のラッチ23に格納されて
いるデータが“1"の場合、PATH29はディスチャージトラ
ンジスタ27によりディスチャージされ、ディスチャージ
されたデータ“0"がPATH29上に出力される。PATH29上に
出力されたデータ“0"はシフトされ、第2レジスタ2の
インバータ26により反転され、ラッチ23に取り込まれる
ことにより、第2レジスタ2には、シフト結果である
“1"が格納される。このようにシフトマトリクス内では
反転論理でデータの転送が行われる。
次に、第1図、第4図を用いてローテイトの動作を説
明する。まず、32ビットのデータで、1ビットの右方向
のローテイトを行う場合について説明を行う。
明する。まず、32ビットのデータで、1ビットの右方向
のローテイトを行う場合について説明を行う。
入力バス4から入力されたデータは、第1レジスタ1
に格納される。MSBがBB31である。ローテイトを行う時
には、ROT10は、内部動作クロック21がDの立ち上がり
から次のDの立ち上がりまで“H"となる。これによりト
ランジスタ群16が開く。算術シフトは行わないのでSHA1
1は“L"のままである。この例の場合においては1ビッ
トの右方向のローテイトなので、SFT01(701)だけが
“H"となり、SFT00(700),SFT02(702),…SFT31(73
1)は“L"となる。これによりトランジスタ群501がONす
る。トランジスタ群501がONすることにより、第1レジ
スタ1のBB01、…、BB31に格納された入力データが、ト
ランジスタ群501を通過し、シフトパス801〜831からシ
フトパス900〜930へ伝わり、第2レジスタ2のBA00,…B
A30にシフトされる。第1レジスタ1のBB00は、シフト
パス800からトランスミッションゲート16aを経てシフト
パス600へ伝わり、その後、トランスミッションゲート5
01aを経てシフトパス931に伝わり、第2レジスタ2のBA
31にローテイトされる。以上に述べたようにして1ビッ
ト右方向のローテイトが行われる。
に格納される。MSBがBB31である。ローテイトを行う時
には、ROT10は、内部動作クロック21がDの立ち上がり
から次のDの立ち上がりまで“H"となる。これによりト
ランジスタ群16が開く。算術シフトは行わないのでSHA1
1は“L"のままである。この例の場合においては1ビッ
トの右方向のローテイトなので、SFT01(701)だけが
“H"となり、SFT00(700),SFT02(702),…SFT31(73
1)は“L"となる。これによりトランジスタ群501がONす
る。トランジスタ群501がONすることにより、第1レジ
スタ1のBB01、…、BB31に格納された入力データが、ト
ランジスタ群501を通過し、シフトパス801〜831からシ
フトパス900〜930へ伝わり、第2レジスタ2のBA00,…B
A30にシフトされる。第1レジスタ1のBB00は、シフト
パス800からトランスミッションゲート16aを経てシフト
パス600へ伝わり、その後、トランスミッションゲート5
01aを経てシフトパス931に伝わり、第2レジスタ2のBA
31にローテイトされる。以上に述べたようにして1ビッ
ト右方向のローテイトが行われる。
以上,1ビットの右方向のローテイトについて述べた
が、1ビットの左方向のローテイトの場合でも、入力デ
ータが格納される入力レジスタが第2レジスタ2、シフ
ト結果が格納される出力レジスタが第1レジスタ1に変
わるだけで、動作については、1ビットの右方向のロー
テイトの場合と全く同じである。
が、1ビットの左方向のローテイトの場合でも、入力デ
ータが格納される入力レジスタが第2レジスタ2、シフ
ト結果が格納される出力レジスタが第1レジスタ1に変
わるだけで、動作については、1ビットの右方向のロー
テイトの場合と全く同じである。
以上では、32ビットのデータについて1ビットのロー
テイトを行う場合について述べたが、本発明の32ビット
のバレルシフタでは、32ビットのデータについてだけで
なく、ハーフワード(16ビット)、バイト(8ビット)
のデータについてもローテイトを実現できる。
テイトを行う場合について述べたが、本発明の32ビット
のバレルシフタでは、32ビットのデータについてだけで
なく、ハーフワード(16ビット)、バイト(8ビット)
のデータについてもローテイトを実現できる。
第5図は、この発明の一実施例における各種サイズの
処理方法を示す図である。第5図(a)に示すように、
16ビットのデータを扱う場合には、32ビットの第1レジ
スタ1の上位16ビット、及び下位16ビットの両方に16ビ
ットのデータを入力し、第5図(b)に示すように、右
方向ローテイトの場合には第2レジスタ2のMSB側の上
位16ビットを出力し、左方向ローテイトの場合には第2
レジスタ2のLSB側の下位16ビットを出力する。また、
8ビットのデータを扱う場合には、第5図(a)に示す
ように、32ビットの第1レジスタ1の上位8ビット、及
び下位8ビットの両方に8ビットのデータを入力し、第
5図(b)に示すように、右方向へのローテイトの場合
には第2レジスタ2のMSB側の上位8ビットを出力し、
左方向へのローテイトの場合には第2レジスタ2のLSB
側の下位8ビットを出力する。
処理方法を示す図である。第5図(a)に示すように、
16ビットのデータを扱う場合には、32ビットの第1レジ
スタ1の上位16ビット、及び下位16ビットの両方に16ビ
ットのデータを入力し、第5図(b)に示すように、右
方向ローテイトの場合には第2レジスタ2のMSB側の上
位16ビットを出力し、左方向ローテイトの場合には第2
レジスタ2のLSB側の下位16ビットを出力する。また、
8ビットのデータを扱う場合には、第5図(a)に示す
ように、32ビットの第1レジスタ1の上位8ビット、及
び下位8ビットの両方に8ビットのデータを入力し、第
5図(b)に示すように、右方向へのローテイトの場合
には第2レジスタ2のMSB側の上位8ビットを出力し、
左方向へのローテイトの場合には第2レジスタ2のLSB
側の下位8ビットを出力する。
1ビットの右方向の論理シフトを行う場合には、第4
図に示すタイミング図で、ROT10が“L"のままとなり、
他の信号はローテイトの場合と同じである。このため、
右方向の論理シフトの場合は、第1レジスタ1から第2
レジスタ2の31ビット目のBA31にシフトするパスが存在
しなくなる。その結果、プリチャージされたシフトパス
931の反転信号である“0"が、第2レジスタ2の31ビッ
ト目のBA31に取り込まれ、ゼロ拡張される。1ビットの
左方向の論理シフトの場合は、左方向の論理シフトの場
合と同様に、第2レジスタ2から第1レジスタ1の0ビ
ット目のBB00にシフトするパスが存在しなくなる。その
結果、プリチャージされたシフトパス800の反転信号で
ある“0"が、第1レジスタ1の0ビット目のBB00に取り
込まれ、ゼロ拡張される。
図に示すタイミング図で、ROT10が“L"のままとなり、
他の信号はローテイトの場合と同じである。このため、
右方向の論理シフトの場合は、第1レジスタ1から第2
レジスタ2の31ビット目のBA31にシフトするパスが存在
しなくなる。その結果、プリチャージされたシフトパス
931の反転信号である“0"が、第2レジスタ2の31ビッ
ト目のBA31に取り込まれ、ゼロ拡張される。1ビットの
左方向の論理シフトの場合は、左方向の論理シフトの場
合と同様に、第2レジスタ2から第1レジスタ1の0ビ
ット目のBB00にシフトするパスが存在しなくなる。その
結果、プリチャージされたシフトパス800の反転信号で
ある“0"が、第1レジスタ1の0ビット目のBB00に取り
込まれ、ゼロ拡張される。
次に算術シフトについて説明する。算術シフトの動作
で論理シフトの動作と違うのは右方向のシフトで、か
つ、符号ビットが“1"の場合だけである。従って、1ビ
ット右方向の算術シフト(符号ビットが“1")の場合に
ついて説明する。この場合には、SHA11がCのタイミン
グの1フェーズだけ“H"となる。これにより、右方向の
シフトを行うと共に、プリチャージされたシフトパス60
0〜631がトランジスタ群17によりディスチャージされ
“0"となり、トランスミッションゲート501aがONするこ
とによりディスチャージされたデータ“0"がシフトパス
931を通過し、そのデータ“0"を反転することにより、
符号拡張の必要がある第2レジスタ2の31ビット目のBA
31にデータ“1"を格納する。
で論理シフトの動作と違うのは右方向のシフトで、か
つ、符号ビットが“1"の場合だけである。従って、1ビ
ット右方向の算術シフト(符号ビットが“1")の場合に
ついて説明する。この場合には、SHA11がCのタイミン
グの1フェーズだけ“H"となる。これにより、右方向の
シフトを行うと共に、プリチャージされたシフトパス60
0〜631がトランジスタ群17によりディスチャージされ
“0"となり、トランスミッションゲート501aがONするこ
とによりディスチャージされたデータ“0"がシフトパス
931を通過し、そのデータ“0"を反転することにより、
符号拡張の必要がある第2レジスタ2の31ビット目のBA
31にデータ“1"を格納する。
以上の述べた動作により、算術シフトの動作で、か
つ、右方向のシフト、符号ビットが“1"の場合にも本回
路は動作できるものである。
つ、右方向のシフト、符号ビットが“1"の場合にも本回
路は動作できるものである。
なお、以上は1ビットの論理シフト、算術シフト、ロ
ーテイトについて述べたが、Nビットの論理シフト、算
術シフト、ローテイトについても同様に動作する。
ーテイトについて述べたが、Nビットの論理シフト、算
術シフト、ローテイトについても同様に動作する。
また、以上では32ビットバレルシフタの一例を示した
が、Nビットのバレルシフタについても同様に実現でき
る。
が、Nビットのバレルシフタについても同様に実現でき
る。
以上のように、この発明によれば、双方向のシフトマ
トリクスを有し、かつ、前記シフトマトリクスにおい
て、該第1のレジスタのNビット目のシフトデータ転送
用の入出力端子と該第2のレジスタのMビット目のシフ
トデータ転送用の入出力端子が接続している場合、N≧
Mならば、前記接続された端子間に1つのトランスミッ
ションゲートが接続されており、N<Mならば、前記接
続された端子間に2つのトランスミッションゲートが直
列に接続されているバレルシフタにおいて、該第1のレ
ジスタのNビット目のシフトデータ転送用の入出力端子
と該第2のレジスタのMビット目のシフトデータ転送用
の入出力端子が接続している場合、N<Mならば、前記
接続された端子間に2つのトランスミッションゲートが
直列に接続されており、かつ、前記第1のレジスタ側の
トランスミッションゲートがローテートと、シフトを行
うためのデータ転送経路のセレクタとなっており、前記
第1のレジスタ側のビットと同じビットに配置されるよ
う構成し、更にシフト動作時に、N<Mならば、直列接
続される前記2つのトランスミッションゲートの接続点
に論理シフトと算術シフトを選択的に行うためのディス
チャージ回路を有するように構成するようにしたので、
その回路構成は、簡単な繰り返し構造で、規則正しく集
積化に適した構成となり、ビットスライス的にレイアウ
トを行うことができる。また、双方向シフト可能な1段
或いは、2段のNチャネルMOSを用いてシフトパスを構
成できるので、シフトパスのゲート段数が少なく、高速
なバレルシフタを実現できる。更に、算術シフト時に必
要となる符号拡張のためにディスチャージトランジスタ
を付加するだけで、論理シフトと算術シフトとを選択的
に実現できる効果がある。
トリクスを有し、かつ、前記シフトマトリクスにおい
て、該第1のレジスタのNビット目のシフトデータ転送
用の入出力端子と該第2のレジスタのMビット目のシフ
トデータ転送用の入出力端子が接続している場合、N≧
Mならば、前記接続された端子間に1つのトランスミッ
ションゲートが接続されており、N<Mならば、前記接
続された端子間に2つのトランスミッションゲートが直
列に接続されているバレルシフタにおいて、該第1のレ
ジスタのNビット目のシフトデータ転送用の入出力端子
と該第2のレジスタのMビット目のシフトデータ転送用
の入出力端子が接続している場合、N<Mならば、前記
接続された端子間に2つのトランスミッションゲートが
直列に接続されており、かつ、前記第1のレジスタ側の
トランスミッションゲートがローテートと、シフトを行
うためのデータ転送経路のセレクタとなっており、前記
第1のレジスタ側のビットと同じビットに配置されるよ
う構成し、更にシフト動作時に、N<Mならば、直列接
続される前記2つのトランスミッションゲートの接続点
に論理シフトと算術シフトを選択的に行うためのディス
チャージ回路を有するように構成するようにしたので、
その回路構成は、簡単な繰り返し構造で、規則正しく集
積化に適した構成となり、ビットスライス的にレイアウ
トを行うことができる。また、双方向シフト可能な1段
或いは、2段のNチャネルMOSを用いてシフトパスを構
成できるので、シフトパスのゲート段数が少なく、高速
なバレルシフタを実現できる。更に、算術シフト時に必
要となる符号拡張のためにディスチャージトランジスタ
を付加するだけで、論理シフトと算術シフトとを選択的
に実現できる効果がある。
第1図は本発明の一実施例によるバレルシフタを示す
図、第2図は上記実施例のバレルシフタのブロック図、
第3図は第1レジスタ1,第2レジスタ2の回路構成図、
第4図は第1図のシフト回路において1ビットのローテ
イトを行う場合のタイミング図、第5図は各種サイズの
データの処理方法を示す図、第6図は従来の32ビットバ
レルシフタの一例を示す図である。 1は32ビットの第1レジスタ、2は32ビットの第2レジ
スタであり、上記レジスタのうちいずれか一方が入力デ
ータの入力レジスタとなり、他方がシフト結果の出力レ
ジスタとなる。3はシフト方向が双方向であるシフトマ
トリクス、4は入力データの入力バス、5はシフト結果
の出力バスである。 なお図中同一符号は同一又は相当部分を示す。
図、第2図は上記実施例のバレルシフタのブロック図、
第3図は第1レジスタ1,第2レジスタ2の回路構成図、
第4図は第1図のシフト回路において1ビットのローテ
イトを行う場合のタイミング図、第5図は各種サイズの
データの処理方法を示す図、第6図は従来の32ビットバ
レルシフタの一例を示す図である。 1は32ビットの第1レジスタ、2は32ビットの第2レジ
スタであり、上記レジスタのうちいずれか一方が入力デ
ータの入力レジスタとなり、他方がシフト結果の出力レ
ジスタとなる。3はシフト方向が双方向であるシフトマ
トリクス、4は入力データの入力バス、5はシフト結果
の出力バスである。 なお図中同一符号は同一又は相当部分を示す。
Claims (3)
- 【請求項1】複数のビットを有し、各々のビット毎に、
1つのデータ入出力端子と1つのシフトデータ転送用の
入出力端子とを備えた第1、及び、第2のレジスタと、 2組の前記第1,第2のレジスタの各々のビット数と等し
い数の端子群を持つ双方向のシフトマトリクスを有し、
かつ、 前記シフトマトリクスにおいて、該第1のレジスタのN
ビット目のシフトデータ転送用の入出力端子と該第2の
レジスタのMビット目のシフトデータ転送用の入出力端
子が接続している場合、 N≧Mならば、前記接続された端子間に1つのトランス
ミッションゲートが接続されており、 N<Mならば、前記接続された端子間に2つのトランス
ミッションゲートが直列に接続されているバレルシフタ
において、 該第1のレジスタのNビット目のシフトデータ転送用の
入出力端子と該第2のレジスタのMビット目のシフトデ
ータ転送用の入出力端子が接続している場合、 N<Mならば、前記接続された端子間に2つのトランス
ミッションゲートが直列に接続されており、かつ、前記
第1のレジスタ側のトランスミッションゲートがローテ
ートと、シフトを行うためのデータ転送経路のセレクタ
となっており、前記第1のレジスタ側のビットと同じビ
ットに配置されていることを特徴とするバレルシフタ。 - 【請求項2】シフト動作時に、N<Mならば、直列接続
される前記2つのトランスミッションゲートの接続点に
論理シフトと算術シフトを選択的に行うためのディスチ
ャージ回路を有することを特徴とする特許請求の範囲第
1項記載のバレルシフタ。 - 【請求項3】前記第1,第2のレジスタのシフトデータ転
送用の入出力端子において、プリチャージ回路を有し、
かつ、シフトデータの転送を反転論理で行うことを特徴
とする特許請求の範囲第1項又は第2項記載のバレルシ
フタ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1248370A JP2624342B2 (ja) | 1989-09-25 | 1989-09-25 | バレルシフタ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1248370A JP2624342B2 (ja) | 1989-09-25 | 1989-09-25 | バレルシフタ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03110625A JPH03110625A (ja) | 1991-05-10 |
JP2624342B2 true JP2624342B2 (ja) | 1997-06-25 |
Family
ID=17177090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1248370A Expired - Fee Related JP2624342B2 (ja) | 1989-09-25 | 1989-09-25 | バレルシフタ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2624342B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2556612B2 (ja) * | 1990-08-29 | 1996-11-20 | 日本電気アイシーマイコンシステム株式会社 | バレルシフタ回路 |
US8078833B2 (en) * | 2008-05-29 | 2011-12-13 | Axis Semiconductor, Inc. | Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59161731A (ja) * | 1983-03-07 | 1984-09-12 | Hitachi Ltd | バレルシフタ |
JPH0736150B2 (ja) * | 1985-01-31 | 1995-04-19 | 株式会社日立製作所 | バレルシフト回路 |
JPS62212724A (ja) * | 1986-03-13 | 1987-09-18 | Fujitsu Ltd | デ−タ変換回路 |
-
1989
- 1989-09-25 JP JP1248370A patent/JP2624342B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH03110625A (ja) | 1991-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4583197A (en) | Multi-stage pass transistor shifter/rotator | |
US4785421A (en) | Normalizing circuit | |
US5504919A (en) | Sorter structure based on shiftable content memory | |
US4709226A (en) | Circuitry for complementing binary numbers | |
EP0407177B1 (en) | Bit sequence reversing device | |
US4153939A (en) | Incrementer circuit | |
JPH061902B2 (ja) | プログラムド・ロジツク・アレイ | |
JPH03226016A (ja) | プライオリティ・エンコーダ | |
US5636157A (en) | Modular 64-bit integer adder | |
JPH073653B2 (ja) | シフタ | |
US5416731A (en) | High-speed barrel shifter | |
KR100298029B1 (ko) | 배럴시프터 | |
JP2624342B2 (ja) | バレルシフタ | |
US4349888A (en) | CMOS Static ALU | |
JPH0697431B2 (ja) | バレルシフタ | |
JPH0797308B2 (ja) | 比較回路 | |
JP3038757B2 (ja) | シフトレジスタ回路 | |
US5392229A (en) | Graphics processing apparatus with video memory for storing graphics data | |
US5499383A (en) | DMA control device controlling sequential storage of data | |
US6122651A (en) | Method and apparatus for performing overshifted rotate through carry instructions by shifting in opposite directions | |
JP2679820B2 (ja) | ビット反転装置 | |
US8122074B2 (en) | Digital electronic binary rotator and reverser | |
US5729706A (en) | Microcomputer with improved data processing and data transfer capabilities | |
US5926407A (en) | Combined add/shift structure | |
EP0208458A2 (en) | A data stack for data processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |