JP3378444B2 - シフト回路 - Google Patents

シフト回路

Info

Publication number
JP3378444B2
JP3378444B2 JP21004596A JP21004596A JP3378444B2 JP 3378444 B2 JP3378444 B2 JP 3378444B2 JP 21004596 A JP21004596 A JP 21004596A JP 21004596 A JP21004596 A JP 21004596A JP 3378444 B2 JP3378444 B2 JP 3378444B2
Authority
JP
Japan
Prior art keywords
shift
shift circuit
selector
input
signal
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
Application number
JP21004596A
Other languages
English (en)
Other versions
JPH1055262A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP21004596A priority Critical patent/JP3378444B2/ja
Priority to US08/905,276 priority patent/US5844828A/en
Publication of JPH1055262A publication Critical patent/JPH1055262A/ja
Application granted granted Critical
Publication of JP3378444B2 publication Critical patent/JP3378444B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/015Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/768Data position reversal, e.g. bit reversal, byte swapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Shift Register Type Memory (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、2n ビットから
なる入力データを上位又は下位方向に所定量シフトする
シフト回路に関し、特にマイクロプロセッサやDSP
(ディジタル・シグナル・プロセッサ)等に使用される
シフト回路に関する。
【0002】
【従来の技術】従来、この種のシフト回路としては、例
えば図9に示すものが知られている。
【0003】図9において、シフト回路100は、32
ビットの入力データa[31:0]を受けて上位(図面
左)又は下位(図面右)方向に所定のビット数シフトし
て、32ビットの出力データb[31:0]を得る。
【0004】シフト回路100は、入力データを受けて
0〜7ビットのシフトを行う第1のシフト回路101
と、この第1のシフト回路101のシフト結果を受けて
8ビットのシフトを行う第2のシフト回路102と、こ
の第2のシフト回路102のシフト結果を受けて16ビ
ットのシフトを行う第3のシフト回路103が縦続接続
されて構成されている。それぞれのシフト回路101、
102、103にはシフト方向を示すシフトレフト信号
が共通に与えられ、シフトレフト信号がアクティブ(例
えば“1”レベル)ならば上位方向にシフトされ、非ア
クティブ(“0”レベル)ならば下位方向にシフトされ
る。シフトされるビット数は、2進数としてエンコード
されたシフト量信号(S4,S3,S2,S1,S0)
で指示され、3ビットのシフト量信号S0,S1,S2
が第1のシフト回路101に与えられ、1ビットのシフ
ト量信号S3が第2のシフト回路102に与えられ、1
ビットのシフト量信号S4が第3のシフト回路103に
与えられている。
【0005】8ビットのシフトを行う第2のシフト回路
102は、4つのセレクタ102a,102b,102
c,102dからなり、それぞれのセレクタは図10に
示すように3入力(A[7:0],B[7:0],C
[7:0])1出力(Y[7:0])のセレクタから構
成され、それぞれのセレクタ102a〜102dにはシ
フトレフト信号と8ビットのシフトを示すシフト量信号
S3が共通に与えられている。それぞれのセレクタ10
2a〜102dは、シフト量信号が“1”レベルにおい
てシフトレフト信号が“1”レベルであれば入力Aを選
択し、シフトレフト信号が“0”レベルであれば入力C
を選択し、シフト量信号が“0”レベルであるならばシ
フトレフト信号にかかわらず入力Bを選択し、出力Yと
している。
【0006】セレクタ102aは、入力A[7:0]を
第1のシフト回路101の出力[23:16]とし、入
力B[7:0]を第1のシフト回路101の出力[3
1:24]とし、入力C[7:0]を“0”とし、セレ
クタ102bは、入力A[7:0]を第1のシフト回路
101の出力[15:8]とし、入力B[7:0]を第
1のシフト回路101の出力[23:16]とし、入力
C[7:0]を第1のシフト回路101の出力[31:
24]とし、セレクタ102cは、入力A[7:0]を
第1のシフト回路101の出力[7:0]とし、入力B
[7:0]を第1のシフト回路101の出力[15:
8]とし、入力C[7:0]を第1のシフト回路101
の出力[23:16]とし、セレクタ102dは、入力
A[7:0]を“0”とし、入力B[7:0]を第1の
シフト回路101の出力[7:0]とし、入力C[7:
0]を第1のシフト回路101の出力[15:8]とし
ている。
【0007】16ビットのシフトを行う第3のシフト回
路103は、4つのセレクタ103a,103b,10
3c,103dからなり、それぞれのセレクタ103a
〜103dにはシフトレフト信号と16ビットのシフト
を示すシフト量信号S4が共通に与えられている。それ
ぞれのセレクタ103a〜103dは、シフト量信号が
“1”レベルにおいてシフトレフト信号が“1”レベル
であれば入力Aを選択し、シフトレフト信号が“0”レ
ベルであれば入力Cを選択し、シフト量信号が“0”レ
ベルであるならばシフトレフト信号にかかわらず入力B
を選択し、出力Yとしている。
【0008】セレクタ103aは、入力A[7:0]を
第2のシフト回路102のセレクタ102cの出力[1
5:8]とし、入力B[7:0]を第2のシフト回路1
02のセレクタ102aの出力[31:24]とし、入
力C[7:0]を“0”とし、セレクタ103bは、入
力A[7:0]を第2のシフト回路102のセレクタ1
2dの出力[7:0]とし、入力B[7:0]を第2の
シフト回路102のセレクタ102bの出力[23:1
6]とし、入力C[7:0]を“0”とし、セレクタ1
03cは、入力A[7:0]を“0”とし、入力B
[7:0]を第2のシフト回路102のセレクタ102
cの出力[15:8]とし、入力C[7:0]を第2の
シフト回路102のセレクタ102aの出力[31:2
4]とし、セレクタ103dは、入力A[7:0]を
“0”とし、入力B[7:0]を第2のシフト回路10
2のセレクタ102dの出力[7:0]とし、入力C
[7:0]を第2のシフト回路102のセレクタ102
bの出力[23:16]としている。
【0009】このような構成において、シフトレフト信
号が“1”レベルであれば、出力データbは、a[31-
(S4,S3,S2,S1,S0):0]‖0 (S4,S3,S2,S1,S0)と表され、
シフトレフト信号が“0”レベルであれば、出力データ
bは、0 (S4,S3,S2,S1,S0)‖a[31:(S4,S3,S2,S1,S0)]
と表されるように動作する。なお、‖はビットの連結を
示し、0 (S4,S3,S2,S1,S0)は(S4,S3,S2,S1,S0)ビット分
の“0”を示すものとする。
【0010】このような従来のシフト回路100におい
ては、シフト方向を示す信号がそれぞれのシフト回路1
01,102,103に共通に入力されていた。すなわ
ち、3つのシフト回路101,102,103は同時に
同一方向のシフトしかできなかった。また、第2のシフ
ト回路102及び第3のシフト回路103は、それぞれ
のシフト回路を構成するセレクタにシフト量信号が共通
に入力されていた。すなわち、それぞれのセレクタはす
べて同時にシフト量信号で示されるビット数のシフトを
行うか否かであって、それぞれセレクタ毎に個別にシフ
トを行うことができなかった。
【0011】これらにより、図9に示す従来のシフト回
路100にあっては、入力データの全ビットを一括して
単に上位又は下位方向に所定のビット数シフトすること
しかできず、例えば入力データa[31:0](A[3
1:24],B[23:16],C[15:8],D
[7:0])のそれぞれのバイトデータA,B,C,D
の順序を操作して出力データb[31:0](D[3
1:24],C[23:16],B[15:8],A
[7:0])とするバイトリバース操作等の様々なシフ
ト操作を容易に行うことができなかった。このため、こ
れらのシフト操作を行うためには、専用の回路が必要に
なっていた。
【0012】
【発明が解決しようとする課題】以上説明したように、
従来のシフト回路にあって、入力データに対してすべて
同一方向かつ全ビットが一括してシフトされていたの
で、一部のビットだけを独立してシフトしたり、入力デ
ータの部分毎にシフトする方向やシフト量を変えるとい
った様々なシフト操作を行うことができなかった。この
ため、プロセッサ等で要求される様々なデータ操作を行
うことができず、データ操作の面で汎用性を欠いてい
た。
【0013】したがって、従来では、これらのシフト操
作を行う場合には専用のハードウェアを用意する必要が
あり、構成の複雑化や大型化を招いていた。
【0014】そこで、この発明は、上記に鑑みてなされ
たものであり、その目的とするところは、入力データに
対してシフト操作を多様化し、様々なデータ操作を可能
にしたシフト回路を提供することにある。
【0015】
【課題を解決するための手段】上記目的を達成するため
に、課題を解決する第1の手段は、第1段目のシフト回
路は、2ビット(n≧5)からなる入力データを受
け、この入力データを上位又は下位方向に0〜7ビット
シフトし、この結果を第2段目のシフト回路に与え、第
2段目から第m(2≦m≦n−2)段目のシフト回路は
前段のシフト回路の2ビットのシフト結果を受けて、
該シフト結果をバイト単位で、それぞれ独立して上位又
は下位方向に2(m+1)ビットシフトすることを特徴
とする。
【0016】第2の手段は、前記第1の手段において、
前記第2段目のシフト回路は、バイト単位の複数のセレ
クタから構成され、各セレクタにはそれぞれ独立したシ
フトレフト信号及びシフト量信号が与えられることを特
徴とする。
【0017】第3の手段は、前記第1の手段において、
前記m(m≧3)段目のシフト回路は、バイト単位の複
数のセレクタから構成され、各セレクタにはそれぞれ独
立したシフトレフト信号及びシフト量信号が与えられる
ことを特徴とする。第4の手段は、前記第2又は第3の
手段において、前記セレクタは、第1、第2及び第3の
入力の内の特定の1つの入力を選択する3入力1出力の
セレクタであることを特徴とする。第5の手段は、前記
第4の手段において、前記セレクタは、シフト量信号が
“1”であれば、シフトレフト信号“1”の時に第1の
入力を選択し、シフトレフト信号“0”の時には第3の
入力を選択し、シフト量信号が“0”であれば、シフト
レフト信号の値にかかわらず第2の入力を選択すること
を特徴とする。第6の手段は、前記第4の手段におい
て、前記複数のセレクタの内の最下位のセレクタの第1
の入力及び最上位のセレクタの第3の入力が“0”であ
ることを特徴とする。第7の手段は、前記第4の手段に
おいて、前記セレクタの第1又は第3の入力は“0”で
あることを特徴とする。第8の手段は、前記第1の手段
において、前記第2段目から第m段目のシフト回路は、
バイト単位で選択的に“0”を出力することを特徴とす
る。第9の手段は、第1、第2及び第3段目のシフト回
路を有するシフト回路であって、第1段目のシフト回路
は、16ビットからなる入力データを受けて、この入力
データを上位又は下位方向に0〜3ビットシフトし、そ
の結果を第2段目のシフト回路に与え、第2段目のシフ
ト回路は、第1段目のシフト回路のシフト結果を受け
て、該シフト結果を4ビット単位で、それぞれ独立して
上位又は下位方向に4ビットシフトし、第3段目のシフ
ト回路は、第2段目のシフト回路のシフト結果を受け
て、該シフト結果を4ビット単位で、それぞれ独立して
上位又は下位方向に8ビットシフトすることを特徴とす
る。第10の手段は、前記第9の手段において、前記第
2及び第3段目のシフト回路は、それぞれ4ビット単位
の複数のセレクタから構成され、各セレクタには、それ
ぞれ独立したシフトレフト信号及びシフト量信号が与え
られることを特徴とする。第11の手段は、前記第10
の手段において、前記セレクタは、第1、第2及び第3
の入力の内の特定の1つの入力を選択する3入力1出力
のセレクタであることを特徴とする。第12の手段は、
前記第11の手段において、前記セレクタは、シフト量
信号が“1”であれば、シフトレフト信号“1”の時に
1の入力を選択し、シフトレフト信号“0”の時には第
3の入力を選択し、シフト量信号が“0”であれば、シ
フトレフト信号の値にかかわらず第2の入力を選択する
ことを特徴とする。第13の手段は、前記第11の手段
において、前記第2段目のシフト回路を構成している複
数のセレクタの内の最下位のセレクタの第1の入力及び
最上位のセレクタの第3の入力が“0”であることを特
徴とする。第14の手段は、前記第11の手段におい
て、前記第3段目のシフト回路を構成している各セレク
タの第1又は第3の入力が“0”であることを特徴とす
る。第15の手段は、前記第10の手段において、前記
第2及び第3段目のシフト回路は4ビット単位で選択的
に“0”を出力することを特徴とする。
【0018】
【発明の実施の形態】以下、図面を用いてこの発明の実
施の形態を説明する。
【0019】図1はこの発明の一実施形態に係わるシフ
ト回路の構成を示す図である。
【0020】図1において、シフト回路0は、32ビッ
トの入力データa[31:0]を受けて上位(図面左)
又は下位(図面右)方向に所定のビット数シフトして、
32ビットの出力データb[31:0]として出力す
る。
【0021】シフト回路0は、入力データを受けて0〜
7ビットのシフトを行う第1のシフト回路1と、この第
1のシフト回路1の32ビットのシフト結果を受けてバ
イト単位で8ビットのシフトを行う第2のシフト回路2
と、この第2のシフト回路2の32ビットのシフト結果
を受けてバイト単位で16ビットのシフトを行う第3の
シフト回路3が縦続接続されて構成されている。
【0022】第1のシフト回路1は、図9に示す第1の
シフト回路101と同様であり、シフト方向を示すシフ
トレフト信号がアクティブ(例えば“1”レベル)なら
ば入力データを上位方向にシフトし、非アクティブ
(“0”レベル)ならば下位方向にシフトする。シフト
するビット数は、2進数としてエンコードされた3ビッ
トのシフト量信号(S2,S1,S0)で指示され、0
〜7ビットの範囲で入力データをシフトする。
【0023】第2のシフト回路2は、4つのセレクタ2
a,2b,2c,2dからなり、それぞれのセレクタは
図10に示すものと同様の3入力1出力のセレクタから
構成され、第1のシフト回路1と第2のシフト回路2の
入出力関係は図9と同様である。
【0024】一方、図1に示すセレクタ2a,2b,2
c,2dは、図10に示すセレクタに比べて、シフト方
向を示す1ビットのシフトレフト信号SL2a,SL2
b,SL2c,SL2dがそれぞれ独立して個別に与え
られており、セレクタ2aにはシフトレフト信号SL2
aが与えられ、セレクタ2bにはシフトレフト信号SL
2bが与えられ、セレクタ2cにはシフトレフト信号S
L2cが与えられ、セレクタ2dにはシフトレフト信号
SL2dが与えられている。
【0025】また、第2のシフト回路2は、シフトする
ビット数(8ビット)を示すシフト量信号S3−2a,
S3−2b,S3−2c,S3−2dがそれぞれのセレ
クタ2a,2b,2c,2dに独立して個別に与えられ
ており、セレクタ2aにはシフト量信号S3−2aが与
えられ、セレクタ2bにはシフト量信号S3−2bが与
えられ、セレクタ2cにはシフト量信号S3−2cが与
えられ、セレクタ2dにはシフト量信号S3−2dが与
えられている。
【0026】このような構成において、セレクタ2aは
シフト量信号S3−2aが“1”レベル(8ビットのシ
フトを行う)でシフトレフト信号SL2aがアクティブ
(例えば“1”レベル)ならば、第1のシフト回路1の
シフト出力[23:16]を選択して上位方向のシフト
を行い、非アクティブ(“0”レベル)ならば8ビット
の“0”入力を選択し、シフト量信号S3−2aが
“0”レベルであるならばシフトレフト信号SL2aに
かかわらず第1のシフト回路1のシフト出力[31:2
4]を選択する。
【0027】セレクタ2bはシフト量信号S3−2bが
“1”レベル(8ビットのシフトを行う)でシフトレフ
ト信号SL2bがアクティブ(例えば“1”レベル)な
らば、第1のシフト回路1のシフト出力[15:8]を
選択して上位方向のシフトを行い、非アクティブ
(“0”レベル)ならば第1のシフト回路1のシフト出
力[31:24]を選択して下位方向のシフトを行い、
シフト量信号S3−2bが“0”レベルであるならばシ
フトレフト信号SL2bにかかわらず第1のシフト回路
1のシフト出力[23:16]を選択する。
【0028】セレクタ2cはシフト量信号S3−2cが
“1”レベル(8ビットのシフトを行う)でシフトレフ
ト信号SL2cがアクティブ(例えば“1”レベル)な
らば、第1のシフト回路1のシフト出力[7:0]を選
択して上位方向のシフトを行い、非アクティブ(“0”
レベル)ならば第1のシフト回路1のシフト出力[2
3:16]を選択して下位方向のシフトを行い、シフト
量信号S3−2cが“0”レベルであるならばシフトレ
フト信号SL2cにかかわらず第1のシフト回路1のシ
フト出力[15:8]を選択する。
【0029】セレクタ2dはシフト量信号S3−2dが
“1”レベル(8ビットのシフトを行う)でシフトレフ
ト信号SL2dがアクティブ(例えば“1”レベル)な
らば、8ビットの“0”入力を選択し、非アクティブ
(“0”レベル)ならば第1のシフト回路1のシフト出
力[15:8]を選択して下位方向のシフトを行い、シ
フト量信号S3−2dが“0”レベルであるならばシフ
トレフト信号SL2dにかかわらず第1のシフト回路1
のシフト出力[7:0]を選択する。
【0030】第3のシフト回路3は、4つのセレクタ3
a,3b,3c,3dからなり、それぞれのセレクタは
図10に示すものと同様の3入力1出力のセレクタから
構成され、第2のシフト回路2と第3のシフト回路3の
入出力関係は図9と同様である。
【0031】一方、図1に示すセレクタ3a,3b,3
c,3dは、図10に示すセレクタに比べて、シフト方
向を示す1ビットのシフトレフト信号SL3a,SL3
b,SL3c,SL3dがそれぞれ独立して個別に与え
られており、セレクタ3aにはシフトレフト信号SL3
aが与えられ、セレクタ3bにはシフトレフト信号SL
3bが与えられ、セレクタ3cにはシフトレフト信号S
L3cが与えられ、セレクタ3dにはシフトレフト信号
SL3dが与えられている。
【0032】また、第3のシフト回路3は、シフトする
ビット数(16ビット)を示すシフト量信号S4−3
a,S4−3b,S4−3c,S4−3dがそれぞれの
セレクタ3a,3b,3c,3dに独立して個別に与え
られており、セレクタ3aにはシフト量信号S4−3a
が与えられ、セレクタ3bにはシフト量信号S4−3b
が与えられ、セレクタ3cにはシフト量信号S4−3c
が与えられ、セレクタ3dにはシフト量信号S4−3d
が与えられている。
【0033】このような構成において、セレクタ3aは
シフト量信号S4−3aが“1”レベル(16ビットの
シフトを行う)でシフトレフト信号SL3aがアクティ
ブ(例えば“1”レベル)ならば、第2のシフト回路2
のセレクタ2cのシフト出力[15:8]を選択して上
位方向のシフトを行い、非アクティブ(“0”レベル)
ならば8ビットの“0”入力を選択し、シフト量信号S
4−3aが“0”レベルであるならばシフトレフト信号
SL3aにかかわらず第2のシフト回路2のセレクタ2
aのシフト出力[31:24]を選択し、シフト回路0
のシフト出力b[31:24]を得る。
【0034】セレクタ3bはシフト量信号S4−3bが
“1”レベル(16ビットのシフトを行う)でシフトレ
フト信号SL3bがアクティブ(例えば“1”レベル)
ならば、第2のシフト回路2のセレクタ2dのシフト出
力[7:0]を選択して上位方向のシフトを行い、非ア
クティブ(“0”レベル)ならば8ビットの“0”入力
を選択し、シフト量信号S4−3bが“0”レベルであ
るならばシフトレフト信号SL3bにかかわらず第2の
シフト回路2のセレクタ2bのシフト出力[23:1
6]を選択し、シフト回路0のシフト出力b[23:1
6]を得る。
【0035】セレクタ3cはシフト量信号S4−3cが
“1”レベル(16ビットのシフトを行う)でシフトレ
フト信号SL3cがアクティブ(例えば“1”レベル)
ならば、8ビットの“0”入力を選択し、非アクティブ
(“0”レベル)ならば第2のシフト回路2のセレクタ
2aのシフト出力[31:24]を選択して下位方向の
シフトを行い、シフト量信号S4−3cが“0”レベル
であるならばシフトレフト信号SL3cにかかわらず第
2のシフト回路2のセレクタ2cのシフト出力[15:
8]を選択し、シフト回路0のシフト出力b[15:
8]を得る。
【0036】セレクタ3dはシフト量信号S4−3dが
“1”レベル(16ビットのシフトを行う)でシフトレ
フト信号SL3dがアクティブ(例えば“1”レベル)
ならば、8ビットの“0”入力を選択し、非アクティブ
(“0”レベル)ならば第2のシフト回路2のセレクタ
2bのシフト出力[23:16]を選択して下位方向の
シフトを行い、シフト量信号S4−3dが“0”レベル
であるならばシフトレフト信号SL3dにかかわらず第
2のシフト回路2のシフト出力[7:0]を選択し、シ
フト回路0のシフト出力b[7:0]を得る。
【0037】このような構成において、第2のシフト回
路2及び第3のシフト回路3に与えられるシフトレフト
信号SL2a〜SL2d、SL3a〜SL3dを第1の
シフト回路1に与えられるシフトレフト信号と同様と
し、第2のシフト回路2に与えられるシフト量信号S3
−2a〜S3−2dをすべて同一とし、第3のシフト回
路3に与えられるシフト量信号S4−3a〜S4−3d
をすべて同一とすることにより、図9に示す従来のシフ
ト回路と同様のシフト操作を行うことができる。
【0038】さらに、シフトレフト信号ならびにシフト
量信号の制御信号を様々に与えることにより、図9に示
す従来のシフト回路では不可能であった様々なシフト操
作を実現することが可能となり、以下にそのデータ操作
例を図2〜図6を参照して説明する。
【0039】まず、シフトレフト信号ならびにシフト量
信号を、
【表1】 シフトレフト信号=×(don't care) シフト量信号S0=S1=S2=0 シフトレフト信号S2a=1 シフト量信号S3−2a=1 シフトレフト信号S2b=0 シフト量信号S3−2b=1 シフトレフト信号S2c=1 シフト量信号S3−2c=1 シフトレフト信号S2d=0 シフト量信号S3−2d=1 シフトレフト信号S3a=1 シフト量信号S4−3a=1 シフトレフト信号S3b=1 シフト量信号S4−3b=1 シフトレフト信号S3c=0 シフト量信号S4−3c=1 シフトレフト信号S3d=0 シフト量信号S4−3d=1 に設定すると、図2に示すように、入力データa[3
1:0](ABCD)のバイトリバース操作が行われ、
出力データb[31:0](DCBA)が得られる。
【0040】次に、シフトレフト信号ならびにシフト量
信号を、
【表2】 シフトレフト信号=×(don't care) シフト量信号S0=S1=S2=0 シフトレフト信号S2a=× シフト量信号S3−2a=0 シフトレフト信号S2b=× シフト量信号S3−2b=0 シフトレフト信号S2c=× シフト量信号S3−2c=0 シフトレフト信号S2d=× シフト量信号S3−2d=0 シフトレフト信号S3a=1 シフト量信号S4−3a=1 シフトレフト信号S3b=1 シフト量信号S4−3b=1 シフトレフト信号S3c=0 シフト量信号S4−3c=1 シフトレフト信号S3d=0 シフト量信号S4−3d=1 に設定すると、図3に示すように、入力データa[3
1:0](ABCD)のハーフワードリバース操作が行
われ、出力データb[31:0](CDAB)が得られ
る。
【0041】次に、シフトレフト信号ならびにシフト量
信号を、
【表3】 シフトレフト信号=×(don't care) シフト量信号S0=S1=S2=0 シフトレフト信号S2a=× シフト量信号S3−2a=0 シフトレフト信号S2b=1 シフト量信号S3−2b=1 シフトレフト信号S2c=0 シフト量信号S3−2c=1 シフトレフト信号S2d=× シフト量信号S3−2d=0 シフトレフト信号S3a=× シフト量信号S4−3a=0 シフトレフト信号S3b=× シフト量信号S4−3b=0 シフトレフト信号S3c=× シフト量信号S4−3c=0 シフトレフト信号S3d=× シフト量信号S4−3d=0 に設定すると、図4に示すように、入力データa[3
1:0](ABCD)のバイトシャフル操作が行われ、
出力データb[31:0](ACBD)が得られる。
【0042】次に、シフトレフト信号ならびにシフト量
信号を、
【表4】 シフトレフト信号=×(don't care) シフト量信号S0=S1=S2=0 シフトレフト信号S2a=× シフト量信号S3−2a=0 シフトレフト信号S2b=× シフト量信号S3−2b=0 シフトレフト信号S2c=0 シフト量信号S3−2c=1 シフトレフト信号S2d=× シフト量信号S3−2d=0 シフトレフト信号S3a=0 シフト量信号S4−3a=1 シフトレフト信号S3b=0 シフト量信号S4−3b=1 シフトレフト信号S3c=× シフト量信号S4−3c=0 シフトレフト信号S3d=× シフト量信号S4−3d=0 に設定すると、図5に示すように、入力データa[3
1:0](ABCD)のパック操作(ハーフワード→バ
イト)が行われ、出力データb[31:0](00B
D)が得られる。
【0043】最後に、シフトレフト信号ならびにシフト
量信号を、
【表5】 シフトレフト信号=×(don't care) シフト量信号S0=S1=S2=0 シフトレフト信号S2a=× シフト量信号S3−2a=0 シフトレフト信号S2b=1 シフト量信号S3−2b=1 シフトレフト信号S2c=× シフト量信号S3−2c=0 シフトレフト信号S2d=× シフト量信号S3−2d=0 シフトレフト信号S3a=0 シフト量信号S4−3a=1 シフトレフト信号S3b=× シフト量信号S4−3b=0 シフトレフト信号S3c=1 シフト量信号S4−3c=1 シフトレフト信号S3d=× シフト量信号S4−3d=0 に設定すると、図6に示すように、入力データa[3
1:0](ABCD)のアンパック操作(バイト→ハー
フワード)が行われ、出力データb[31:0](0C
0D)が得られる。
【0044】以上説明した動作以外にも、それぞれのセ
レクタの制御信号を変更することにより、様々なシフト
操作を行うことが可能である。
【0045】このように、制御信号を様々に与えること
により、入力データの一部のビットだけをシフトした
り、入力データの部分毎にシフトするビット数や方向を
変えることができるようになり、様々なデータ操作を行
うことが可能となる。このようなデータ操作は、エンデ
ィアンの変更やマルチメディア命令を実行する際に極め
て有効となり、高機能なマイクロプロセッサのシフト回
路として有用である。
【0046】図7はこの発明の他の実施形態に係るシフ
ト回路の構成を示す図である。
【0047】図7に示す実施形態は入力データを64ビ
ットとしたものであり、その特徴とするところは、図1
に示す第1のシフト回路1と同様に64ビットの入力デ
ータを0〜7ビットシフトする第1段目のシフト回路1
1と、図1に示すセレクタと同様にそれぞれにシフトレ
フト信号とシフト量信号が独立して個別に与えられてバ
イト単位で入力データを選択するセレクタで構成される
8ビットの第2段目のシフト回路12、16ビットの第
3段目のシフト回路13、32ビットの第4段目のシフ
ト回路14を備えたことにある。
【0048】このような構成においては、シフトレフト
信号ならびにシフト量信号を適宜与えることにより、例
えば図7に示すように入力データa[63:0]がバイ
ト単位でシフトされて出力データb[31:0]が得ら
れ、図8に示すように、入力データ(ABCDEFG
H)として64ビットのソースレジスタに格納されてい
る4つの16ビットのデータのそれぞれ下位8ビットの
データを取り出して連結し(BDFH)、64ビットの
デスティネーションレジスタの下位32ビットに格納す
るパック操作を容易に行うことができる。
【0049】このように、上記実施形態では32ビット
及び64ビットの例を説明したが、この発明は、16ビ
ットや128ビットならびにそれ以上の2n ビットの入
力データを取り扱うシフト回路であっても同様に適用で
きる。なお、16ビットの場合には、0〜3ビットのシ
フト回路を初段に用い、4ビット単位で4ビットのシフ
トを行うシフト回路を第2段目に用い、4ビット単位で
8ビットのシフトを行うシフト回路を第3段目に用いる
ようにすればよい。
【0050】また、上記実施形態において、0〜7ビッ
トのシフトを行うシフト回路は図9に示す従来と同様の
シフト回路を用いるようにしているが、8ビット、16
ビットのシフト回路と同様にセレクタ毎にそれぞれ独立
して個別に制御信号を与えるようにしてもよい。
【0051】
【発明の効果】以上説明したように、この発明によれ
ば、シフトしようとする2n ビットのデータに対して、
所定のビット数単位でシフト方向ならびにシフトビット
数を設定するようにしたので、入力データの一部ビット
だけをシフトすることや部分毎にシフトするビット数や
方向を変えることが可能となる。これにより、入力デー
タに対するシフト操作が多様化し、専用のハードウェア
を用意することなく様々なデータ操作を行うことができ
る。
【図面の簡単な説明】
【図1】この発明の一実施形態に係わるシフト回路の構
成を示す図である。
【図2】図1に示すシフト回路におけるシフト動作の一
例を示す図である。
【図3】図1に示すシフト回路におけるシフト動作の一
例を示す図である。
【図4】図1に示すシフト回路におけるシフト動作の一
例を示す図である。
【図5】図1に示すシフト回路におけるシフト動作の一
例を示す図である。
【図6】図1に示すシフト回路におけるシフト動作の一
例を示す図である。
【図7】この発明の他の実施形態に係わるシフト回路の
構成を示す図である。
【図8】図7に示すシフト回路におけるシフト動作の一
例を示す図である。
【図9】従来のシフト回路の構成を示す図である。
【図10】図9に示すシフト回路に用いられるセレクタ
の構成を示す図である。
【符号の説明】
0 シフト回路 1,11 0〜7ビットのシフト回路 2,12 8ビットのシフト回路 3,13 16ビットのシフト回路 14 32ビットのシフト回路 2a〜2d,3a〜3d セレクタ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭62−106540(JP,A) 特開 平2−285426(JP,A) 特開 平7−210366(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 7/00

Claims (15)

    (57)【特許請求の範囲】
  1. 【請求項1】 第1段目のシフト回路は、2ビット
    (n≧5)からなる入力データを受け、この入力データ
    を上位又は下位方向に0〜7ビットシフトし、この結果
    を第2段目のシフト回路に与え、 第2段目から第m(2≦m≦n−2)段目のシフト回路
    は前段のシフト回路の2ビットのシフト結果を受け
    て、該シフト結果をバイト単位で、それぞれ独立して上
    位又は下位方向に2(m+1)ビットシフトすることを
    特徴とするシフト回路。
  2. 【請求項2】 前記第2段目のシフト回路は、バイト単
    位の複数のセレクタから構成され、各セレクタにはそれ
    ぞれ独立したシフトレフト信号及びシフト量信号が与え
    られることを特徴とする請求項1記載のシフト回路。
  3. 【請求項3】 前記m(m≧3)段目のシフト回路は、
    バイト単位の複数のセレクタから構成され、各セレクタ
    にはそれぞれ独立したシフトレフト信号及びシフト量信
    号が与えられることを特徴とする請求項1記載のシフト
    回路。
  4. 【請求項4】 前記セレクタは、第1、第2及び第3の
    入力の内の特定の1つの入力を選択する3入力1出力の
    セレクタであることを特徴とする請求項2又は3記載の
    シフト回路。
  5. 【請求項5】 前記セレクタは、シフト量信号が“1”
    であれば、シフトレフト信号“1”の時に第1の入力を
    選択し、シフトレフト信号“0”の時には第3の入力を
    選択し、シフト量信号が“0”であれば、シフトレフト
    信号の値にかかわらず第2の入力を選択することを特徴
    とする請求項4記載のシフト回路。
  6. 【請求項6】 前記複数のセレクタの内の最下位のセレ
    クタの第1の入力及び最上位のセレクタの第3の入力が
    “0”であることを特徴とする請求項4記載のシフト回
    路。
  7. 【請求項7】 前記セレクタの第1又は第3の入力は
    “0”であることを特徴とする請求項4記載のシフト回
    路。
  8. 【請求項8】 前記第2段目から第m段目のシフト回路
    は、バイト単位で選択的に“0”を出力することを特徴
    とする請求項1記載のシフト回路。
  9. 【請求項9】 第1、第2及び第3段目のシフト回路を
    有するシフト回路であって、 第1段目のシフト回路は、16ビットからなる入力デー
    タを受けて、この入力データを上位又は下位方向に0〜
    3ビットシフトし、その結果を第2段目のシフト回路に
    与え、 第2段目のシフト回路は、第1段目のシフト回路のシフ
    ト結果を受けて、該シフト結果を4ビット単位で、それ
    ぞれ独立して上位又は下位方向に4ビットシフトし、 第3段目のシフト回路は、第2段目のシフト回路のシフ
    ト結果を受けて、該シフト結果を4ビット単位で、それ
    ぞれ独立して上位又は下位方向に8ビットシフトするこ
    とを特徴とするシフト回路。
  10. 【請求項10】 前記第2及び第3段目のシフト回路
    は、それぞれ4ビット単位の複数のセレクタから構成さ
    れ、 各セレクタには、それぞれ独立したシフトレフト信号及
    びシフト量信号が与えられることを特徴とする請求項9
    記載のシフト回路。
  11. 【請求項11】 前記セレクタは、第1、第2及び第3
    の入力の内の特定の1つの入力を選択する3入力1出力
    のセレクタであることを特徴とする請求項10記載のシ
    フト回路。
  12. 【請求項12】 前記セレクタは、シフト量信号が
    “1”であれば、シフトレフト信号“1”の時に1の入
    力を選択し、シフトレフト信号“0”の時には第3の入
    力を選択し、シフト量信号が“0”であれば、シフトレ
    フト信号の値にかかわらず第2の入力を選択することを
    特徴とする請求項11記載のシフト回路。
  13. 【請求項13】 前記第2段目のシフト回路を構成して
    いる複数のセレクタの内の最下位のセレクタの第1の入
    力及び最上位のセレクタの第3の入力が“0”であるこ
    とを特徴とする請求項11記載のシフト回路。
  14. 【請求項14】 前記第3段目のシフト回路を構成して
    いる各セレクタの第1又は第3の入力が“0”であるこ
    とを特徴とする請求項11記載のシフト回路。
  15. 【請求項15】 前記第2及び第3段目のシフト回路は
    4ビット単位で選択的に“0”を出力することを特徴と
    する請求項10記載のシフト回路。
JP21004596A 1996-08-08 1996-08-08 シフト回路 Expired - Fee Related JP3378444B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP21004596A JP3378444B2 (ja) 1996-08-08 1996-08-08 シフト回路
US08/905,276 US5844828A (en) 1996-08-08 1997-08-06 Shift circuit and system having the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21004596A JP3378444B2 (ja) 1996-08-08 1996-08-08 シフト回路

Publications (2)

Publication Number Publication Date
JPH1055262A JPH1055262A (ja) 1998-02-24
JP3378444B2 true JP3378444B2 (ja) 2003-02-17

Family

ID=16582900

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21004596A Expired - Fee Related JP3378444B2 (ja) 1996-08-08 1996-08-08 シフト回路

Country Status (2)

Country Link
US (1) US5844828A (ja)
JP (1) JP3378444B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6035310A (en) * 1997-12-19 2000-03-07 Advanced Micro Devices, Inc. Method and circuit for performing a shift arithmetic right operation
US6006244A (en) * 1997-12-19 1999-12-21 Advanced Micro Devices, Inc. Circuit for shifting or rotating operands of multiple size
US6122651A (en) * 1998-04-08 2000-09-19 Advanced Micro Devices, Inc. Method and apparatus for performing overshifted rotate through carry instructions by shifting in opposite directions
US6643673B1 (en) * 1999-11-30 2003-11-04 Ati International, Srl Method and apparatus for arithmetic shifting
US6871208B1 (en) * 1999-12-01 2005-03-22 Macronix International Co., Ltd. Parallel adder-based DCT/IDCT design using cyclic convolution
US6850338B1 (en) 2000-05-12 2005-02-01 International Business Machines Corporation Method, system, program, and data structure for generating raster objects
US6894796B1 (en) 2000-05-12 2005-05-17 International Business Machines Corporation Method, system, and logic for selecting line work and control data for a pixel from multiple objects of line work data provided for the pixel
US6449328B1 (en) 2000-05-15 2002-09-10 International Business Machines Corporation Method and apparatus for shifting data from registers
US7394568B1 (en) 2000-05-15 2008-07-01 Infoprint Solutions Company Llc Method, system, and logic for selecting pixel data from multiple objects
US6961134B1 (en) 2000-05-15 2005-11-01 International Business Machines Corporation Method, system, and logic using multiplexers to select data for pixels from multiple objects
US6804411B1 (en) 2000-05-15 2004-10-12 International Business Machines Corporation Method, system, and program for decompressing and aligning line work data from multiple objects
JP4491934B2 (ja) 2000-08-10 2010-06-30 富士電機デバイステクノロジー株式会社 薄膜磁気記録媒体の製造方法
US7320013B2 (en) * 2002-12-12 2008-01-15 Adaptec, Inc. Method and apparatus for aligning operands for a processor
US6853699B1 (en) * 2004-02-27 2005-02-08 Qualcomm, Incorporated High speed shifter circuit
US7461108B2 (en) * 2004-09-14 2008-12-02 Panasonic Corporation Barrel shift device
GB2443439B (en) * 2006-10-30 2009-06-03 Imagination Tech Ltd Digital electronic binary rotator and reverser
JP5182053B2 (ja) * 2008-12-10 2013-04-10 日本電気株式会社 バレルシフタ装置及びバレルシフト方法
US9959247B1 (en) 2017-02-17 2018-05-01 Google Llc Permuting in a matrix-vector processor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4509144A (en) * 1980-02-13 1985-04-02 Intel Corporation Programmable bidirectional shifter
US4495598A (en) * 1982-09-29 1985-01-22 Mcdonnell Douglas Corporation Computer rotate function
US5073864A (en) * 1987-02-10 1991-12-17 Davin Computer Corporation Parallel string processor and method for a minicomputer

Also Published As

Publication number Publication date
JPH1055262A (ja) 1998-02-24
US5844828A (en) 1998-12-01

Similar Documents

Publication Publication Date Title
JP3378444B2 (ja) シフト回路
JPS628817B2 (ja)
US4631703A (en) Shift circuit for double word length data
US8082283B1 (en) Arrangement of 3-input LUT'S to implement 4:2 compressors for multiple operand arithmetic
JP3144859B2 (ja) 算術論理演算装置
JP2558739B2 (ja) 絶対値回路
JP2617591B2 (ja) シリアル演算回路
JP3540136B2 (ja) データ分割並列シフタ
JP2007129618A (ja) ガロア体のα乗算回路および演算回路
JPH05224888A (ja) 小数点位置可変型データの乗算回路
JPH08292876A (ja) 演算装置
JP3525582B2 (ja) ビット操作回路
EP0901106B1 (en) System and method using mode bits to support multiple coding standards
JPH01259415A (ja) データ補正回路
JP2844971B2 (ja) ディジタル符号処理システム
JP3412368B2 (ja) ビットシリアル2乗演算回路
JPH0566922A (ja) 10進演算回路
JPH0363816A (ja) ビット検索装置
JPH02237304A (ja) 演算装置
JP2003140881A (ja) シリアルパラレル変換回路およびパラレルシリアル変換回路
WO2004044731A2 (en) Device and method for performing shift/rotate operations
JPS61143844A (ja) ディジタル演算回路
JPH05143289A (ja) 加算回路
JPH05233218A (ja) 三則演算回路
JPH06309164A (ja) ディジタル信号処理回路

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071206

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081206

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091206

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091206

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101206

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111206

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees