JPWO2006030639A1 - バレルシフト装置 - Google Patents

バレルシフト装置 Download PDF

Info

Publication number
JPWO2006030639A1
JPWO2006030639A1 JP2006535692A JP2006535692A JPWO2006030639A1 JP WO2006030639 A1 JPWO2006030639 A1 JP WO2006030639A1 JP 2006535692 A JP2006535692 A JP 2006535692A JP 2006535692 A JP2006535692 A JP 2006535692A JP WO2006030639 A1 JPWO2006030639 A1 JP WO2006030639A1
Authority
JP
Japan
Prior art keywords
data
shift
bit
control signal
circuit
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.)
Granted
Application number
JP2006535692A
Other languages
English (en)
Other versions
JP4129280B2 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2006030639A1 publication Critical patent/JPWO2006030639A1/ja
Application granted granted Critical
Publication of JP4129280B2 publication Critical patent/JP4129280B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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

Abstract

バレルシフト装置をパイプラインレジスタで分割し、シフト処理を多段処理ステージで実行する場合に、第2のシフト回路50のシフト量を制御する第2の制御信号をデコード回路20でデコードすることにより、第2のシフト回路50から最終的に出力データとして出力されるデータ要素が中間データ保持回路30での中間データのどの桁位置にあるかを検出する。中間データ保持回路30は、上記デコード回路20の桁位置の検出結果に基づいて中間データ中のデータ要素のうち、最終的に出力されるデータ要素のみを保持し、出力データには反映されない不用なデータ要素は保持しない。従って、中間データ保持回路30でのデータ格納動作を制御して、パイプライン構造化による電力増加が抑制される。

Description

本発明は、デジタル信号処理における多ビットデータの左右シフト処理を行うバレルシフト装置に関するものである。
従来のバレルシフト装置は、多段のセレクタにより構成される。一方、信号処理においてスループットを向上させる目的で、バレルシフト装置をパイプラインレジスタで分割し、シフト処理を多段処理ステージで実行する必要性が生じている。
従来の多段セレクタ構成のバレルシフト装置として、例えば、特許文献1がある。特許文献1記載のバレルシフト装置は、制御信号によりシフトするかしないかを選択するセレクタにより構成されるシフト回路を多段に組合わせた構造を持つ。例えば、左15ビットシフトから右16ビットシフトの間で任意のシフトを実現する場合、それぞれ1ビット、2ビット、4ビット、8ビットの左シフト機能を持つシフト回路と16ビット右シフト機能を持つシフト回路を多段に組合わせることにより実現できる。この場合、右5ビットシフトを実現するには、1ビット左シフト回路、2ビット左シフト回路、8ビット左シフト回路と16ビット右シフト回路をアクティブにすればよい。
以下に図10を用いて特許文献1記載のバレルシフト装置にパイプライン構造を導入した際の構成及びその動作の説明を詳細に行う。
図10は特許文献1記載のバレルシフト装置にパイプライン構造を導入した際の概略図である。第1のシフト回路10は入力データを第1の制御信号に基づいてシフト処理し中間データ30として出力する。ここで、第1のシフト回路10は1ビット左シフト回路11と2ビット左シフト回路12と4ビット左シフト回路13とから構成されており、左7ビットシフトから0ビットシフトまでの任意のシフトを実現する。
中間データ保持回路30は第1のシフト回路10の出力である中間データを保持し、次の第2のシフト回路へ出力する。
制御信号保持回路40は第2の制御信号を保持し、出力する。
第2のシフト回路50は中間データを制御信号保持回路40の出力する第2の制御信号に基づいてシフト処理し出力データとして出力する。ここで、第2のシフト回路50は8ビット左シフト回路51と16ビット右シフト回路52とから構成されており、第1のシフト回路でのシフト処理と組合わせることにより入力データの左15ビットシフトから右16ビットシフトの間の任意のシフトを実現する。
特開2000−293354号公報(第7頁、第1図)
しかしながら、従来のパイプラインレジスタで分割するバレルシフト装置の技術では、第1のシフト回路を構成する各シフト回路を経由するごとにデータのビット幅が大きくなり、これにより、第1のシフト回路から出力される中間データのビット幅が大きくなり、更には、中間データ保持回路の実装規模が増大してしまうため、消費電力が増加するという課題があった。
本発明は上記従来の課題を解決するものであり、中間データ保持回路のデータの格納動作を制御することにより、パイプライン構造化による電力増加を抑制することを目的とする。
上記目的を達成するために、本発明のバレルシフト装置では、中間データ保持回路に保持する中間データのうち、最終出力データとして出力されるデータ要素以外の全部又は一部の不用なデータ要素の格納動作を抑制するようにする。
すなわち、本発明のバレルシフト装置は、所定のビット幅の入力データを受け、第1のシフト量及び第2のシフト量を組み合わせた合計シフト量だけ前記入力データを左右シフトして、所望シフト後の出力データとして出力するバレルシフト装置において、前記入力データを受け、前記第1のシフト量を制御する第1の制御信号に基づいて前記入力データをシフトし、中間データとして出力する第1のシフト手段と、前記第1のシフト手段からの中間データを保持するための中間データ保持手段と、前記第2のシフト量を制御する前記第2の制御信号を保持し、出力する制御信号保持手段と、前記中間データ保持手段に保持された中間データを受け、前記制御信号保持手段の出力する前記第2の制御信号に基づいて、前記受けた中間データをシフトさせて、前記所望シフト後の出力データとして出力する第2のシフト手段とを備えると共に、前記第2の制御信号を受け、この第2の制御信号に基づき、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要素を一部又は全部除いたデータ要素の前記中間データ内での桁位置を検出するデコード手段を備え、前記中間データ保持手段は、前記デコード手段で検出された前記桁位置に基づいて、前記中間データのうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要素の一部又は全部が除かれ、少なくとも前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素を含む桁位置のデータ要素を新たに保持することを特徴とする。
本発明は、前記バレルシフト装置において、前記デコード手段は、前記第2の制御信号が示す情報の全部に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素のみの前記中間データ内での桁位置を検出することを特徴とする。
本発明は、前記バレルシフト装置において、前記デコード手段は、前記第2の制御信号が示す情報の一部に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要素を一部除いたデータ要素の前記中間データ内での桁位置を検出することを特徴とする。
本発明は、前記バレルシフト装置において、前記第2の制御信号は複数のビット信号からなる制御信号であって、前記中間データ保持手段は、前記第2の制御信号の所定の1ビット信号に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要素が一部除かれた桁位置のデータ要素を保持及び出力することを特徴とする。
本発明のバレルシフト装置は、所定のビット幅の入力データを受け、第1のシフト量及び第2のシフト量を組み合わせた合計シフト量だけ前記入力データを左右にシフトして、所望シフト後の出力データとして出力するバレルシフト装置において、前記入力データを受け、前記第1のシフト量を制御する第1の制御信号に基づいて前記入力データをシフトし、中間データとして出力する第1のシフト手段と、前記第1のシフト手段からの中間データを保持するための中間データ保持手段と、前記第2のシフト量を制御する第2の制御信号を保持し、出力する制御信号保持手段と、前記中間データ保持手段に保持された中間データを受け、前記制御信号保持手段の出力する前記第2の制御信号に基づいて、前記受けた中間データをシフトさせて、前記所望シフト後の出力データとして出力する第2のシフト手段とを備えると共に、前記第1の制御信号を受け、この第1の制御信号に基づき、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素の桁位置を検出するデコード手段とを備え、前記中間データ保持手段は、前記デコード手段で検出された前記桁位置に基づいて、前記中間データを構成する全てのデータ要素のうち、少なくとも前記入力データに含まれるデータ要素を含む桁位置のデータ要素を新たに保持することを特徴とする。
本発明は、前記バレルシフト装置において、前記デコード手段は、前記第1の制御信号が示す情報の全部に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素のみの前記中間データ内での桁位置を検出することを特徴とする。
本発明は、前記バレルシフト装置において、前記デコード手段は、前記第1の制御信号が示す情報の一部に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素以外のデータ要素の一部を除いたデータ要素の前記中間データ内での桁位置を検出することを特徴とする。
本発明は、前記バレルシフト装置において、前記第1の制御信号は複数ビットの信号からなる制御信号であって、前記中間データ保持手段は、前記第1の制御信号の所定の1ビットの信号に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素以外のデータ要素の一部が除かれた桁位置のデータ要素を保持及び出力することを特徴とする。
以上により、本発明では、第2のシフト手段で施されるシフト量を制御する第2の制御信号を、デコード手段を用いてデコードすることにより、中間データから出力データとして出力されるデータ要素の桁位置を検出し、中間データ保持手段では、少なくとも前記桁位置の中間データ要素を保持するように動作する。従って、最終データとして出力されない不用なデータ要素を中間データ保持手段で格納せず、以前保持していたデータ要素を保持し続けるので、その分、省電力化が可能となる。
また、本発明では、第1のシフト手段で施されるシフト量を制御する第1の制御信号を、デコード手段を用いてデコードすることにより、中間データを構成する全てのデータ要素のうち、少なくとも入力データに含まれるデータ要素の桁位置を検出し、中間データ保持手段では、少なくともこの桁位置の中間データ要素を保持するように動作する。従って、入力データのデータ要素でないデータ要素を中間データ保持手段で格納せず、以前保持していたデータ要素を保持し続けるので、その分、省電力化が可能となる。
以上説明したように、本発明のバレルシフト装置によれば、パイプライン構造化により挿入される中間データ保持手段からデータを出力するまでの間の第2のシフト手段で施されるシフト量の情報を制御信号として用いて、中間データ保持手段での最終的には出力されないデータ要素の保持動作を抑制したので、省電力化を実現することが可能となる。
また、本発明のバレルシフト装置によれば、データの入力からパイプライン構造化により挿入される中間データ保持手段までの間の第1のシフト手段で施されるシフト量の情報を制御信号として用いて、中間データ保持手段での不要なデータ要素の格納保持の動作を抑制したので、省電力化を実現することが可能となる。
図1は本発明の第1の実施の形態のバレルシフト装置の概略図である。 図2は本発明の第1の実施の形態の11ビット右シフト処理の動作説明図である。 図3は本発明の第1の実施の形態の中間データ保持回路の動作説明図である。 図4は本発明の第1の実施の形態の中間データ保持回路の動作説明図である。 図5は本発明の第2の実施の形態のバレルシフト装置の概略図である。 図6は本発明の第2の実施の形態の11ビット右シフト処理の動作説明図である。 図7は本発明の第2の実施の形態の中間データ保持回路の動作説明図である。 図8は本発明の第2の実施の形態の中間データ保持回路の動作説明図である。 図9は本発明の第2の実施の形態の中間データ保持回路の動作説明図である。 図10は従来の技術の構成を示す概略図である。
符号の説明
10 第1のシフト回路(第1のシフト手段)
11 1ビット左シフト回路
12 2ビット左シフト回路
13 4ビット左シフト回路
20、60 デコード回路(デコード手段)
30 中間データ保持回路(中間データ保持手段)
40 制御信号保持回路(制御信号保持手段)
50 第2のシフト回路(第2のシフト手段)
51 8ビット左シフト回路
52 16ビット右シフト回路
C1[2:0] 第1の制御信号
C1[0] 第1の制御信号の1ビットデータ
(所定の1ビット信号)
C2[1:0] 第2の制御信号
C2[0] 第2の制御信号の1ビットデータ
(所定の1ビット信号)
Hi 信号のアクティブな状態
Lo 信号のパッシブな状態
0 値0の出力
S 符号拡張出力
H データ保持出力
以下、本発明の実施の形態について図面を参照しながら説明する。
(第1の実施の形態)
第1の実施の形態のバレルシフト装置の概略図を図1に示す。
本実施の形態におけるバレルシフト装置は、図1に示すように、パイプラインレジスタで分割され、多段処理ステージでシフト処理が実行される。
ここでは、この図1を用いて、本実施の形態のバレルシフト装置の構成を説明する。尚、本実施の形態では、簡単のため16ビットデータ(所定のビット幅の入力データ)を左15ビットから右16ビットの範囲で任意に算術シフト可能なバレルシフト装置を前提として説明する。
図1において、10は第1のシフト回路であり、3ビットデータからなる第1の制御信号に基づいて入力データをシフト処理し、中間データ保持回路30へ中間データを出力する。この第1のシフト回路10は、1ビット左シフト回路11、2ビット左シフト回路12及び4ビット左シフト回路13の3つのシフト回路で構成される。これら3つのシフト回路11、12、13は、それぞれ、前記第1の制御信号のうち対応するビットデータを受ける。すなわち、第1の制御信号の各ビットデータの組み合わせにより、3つのシフト回路11、12、13でのシフト処理を組み合わせて、左7ビットシフトから0ビットシフトまでの任意のシフト量(第1のシフト量)を実現する。
50は第2のシフト回路であって、中間データ保持回路30の出力する中間データを受け、第1のシフト回路10におけるシフト処理に続いて所定のシフト処理を行い、全体として所望のシフトを完成させ、出力データを出力する。この第2のシフト回路50は、図1に示すように、8ビット左シフト回路51と16ビット右シフト回路52とから構成される。また、この第2のシフト回路50は、第1のシフト回路10と同様に外部から入力される第2の制御信号の制御によりシフト(第2のシフト量のシフト)処理を行うのであるが、第2の制御信号は第2のシフト回路50へ直接入力されない。第2の制御信号は、デコード回路20に入力されると共に、第2の制御信号を一旦保持する制御信号保持回路40を介して第2のシフト回路50に入力される。この制御信号保持回路40を介して第2のシフト回路50に入力された第2の制御信号は、2分割され、第2のシフト回路50中の2つのシフト回路51及び52にそれぞれ入力される。そして、2つのシフト回路51及び52によるそれぞれのシフト処理の組み合わせにより、第1のシフト回路10によるシフト処理に続くシフト処理を行い、入力データの左15ビットシフトから右16ビットシフトの間の任意のシフト、すなわち、所望のシフトを完成させ、出力する。
一方、第2の制御信号が入力されたデコード回路20は、中間データのデータ要素のうち、第2のシフト回路50によりシフト処理された結果として出力される出力データのデータ要素の中間データ保持回路30中の桁位置を、第2の制御信号に基づいて検出し、その検出結果を中間データ保持回路30に対して出力する。このデコード回路20の検出結果を用いて、中間データ保持回路30は、出力データとして第2のシフト回路50から出力される桁位置のデータ要素のみ、又は、この出力される桁位置のデータ要素を含むデータ要素であって且つ出力データに反映されない不用なデータを一部除いたデータ要素を保持する。このようなデコード回路20の働きにより、中間データ保持回路30は、出力データのデータ要素として出力されない不用なデータ要素を保持しなくても済む分だけ不用な格納動作を省略できるので、省電力化が可能である。
次に、図2を用いて、本実施の形態のバレルシフト装置について、具体的なシフト処理の動作説明を行う。ここでは、シフト処理の具体例として、11ビット右シフト処理を行った場合について説明する。また、図中の“0”は値0を、“S”は符号拡張を、“H”は保持データを示す。
図2に示す第1の制御信号C1[2:0]は3ビットデータであり、3つの1ビットデータC1[0]、C1[1]、C1[2]から構成される。第1のシフト回路10を構成する1ビット左シフト回路11、2ビット左シフト回路12、4ビット左シフト回路13は、それぞれ、第1の制御信号の各ビットデータC1[0]、C1[1]、C1[2]により制御される。11ビット右シフト処理時は第1の制御信号の1ビットデータC1[0]、C1[2]がアクティブな状態“Hi”、また、第1の制御信号の1ビットデータC1[1]がパッシブな状態“Lo”となる。第1のシフト回路10に入力された入力データは第1の制御信号C1[2:0]に基づいてシフト処理される。
まず、1ビット左シフト回路11で1ビット左シフト処理され、0番目のビットデータには値0が埋められ、17ビット幅データとして出力される。次に、2ビット左シフト処理回路12ではシフト処理されず、17番目のビットデータ及び18番目のビットデータが符号拡張され、19ビット幅データとして出力される。更に、4ビット左シフト回路13では4ビット左シフト処理され、0番目のビットデータ、1番目のビットデータ、2番目のビットデータ、及び3番目のビットデータには値0が埋められ、23ビット幅データの中間データとして中間データ保持回路30へ出力される。
第2の制御信号C2[1:0]は2ビットデータであり、1ビットデータC2[0]、C2[1]で構成される。第2のシフト回路50を構成する8ビット左シフト回路51、16ビット右シフト回路52は、第2の制御信号の各ビットデータC2[0]、C2[1]で制御される。デコード回路20は、それぞれ、第2のシフト回路50でのシフト処理後出力される出力データのデータ要素が中間データのどの桁位置に出力されているかを第2の制御信号C2[1:0]から検出し、この検出結果を中間データ保持回路30へ出力する。この桁位置の検出動作を具体的に説明すると、例えば、11ビット右シフト処理時は第2の制御信号のビットデータC2[1]がアクティブな状態“Hi”、また、第2の制御信号のビットデータC2[0]がパッシブな状態“Lo”となり、第2のシフト回路50では16ビット右シフト処理が施されるので、中間データの16番目のビットから22番目までのビットの桁位置のデータ要素が出力データのデータ要素として出力されることが分かる。従って、中間データ保持回路30はデコード回路20の桁位置の検出結果に基づいて、中間データの16番目のビットから22番目までのビットの桁位置のデータ要素を新たに格納保持し、これら検出された桁位置以外の0番目のビットから15番目のビットまでの桁位置のデータ要素に関しては以前の保持データ要素をそのまま継続して保持する。
制御信号保持回路40は第2の制御信号C2[1:0]を保持し、第2のシフト回路50へ出力する。第2のシフト回路50を構成する8ビット左シフト回路51、16ビット右シフト回路52はそれぞれ第2の制御信号の各ビットデータC2[0]、C2[1]が制御信号保持回路40に保持された後の出力により制御される。以下、簡単のため制御信号保持回路40に保持された後の信号も第2の制御信号C2[1:0]と表現する。11ビット右シフト処理時は第2の制御信号のビットデータC2[1]がアクティブな状態“Hi”、また、第2の、制御信号のビットデータC2[0]がパッシブな状態“Lo”となる。第2のシフト回路50に入力された中間データ保持回路30の出力は前記第2の制御信号C2[1:0]に基づいてシフト処理される。
まず、8ビット左シフト処理回路51ではシフト処理されず、23番目のビットから30番目のビットまでの桁位置が符号拡張され、31ビット幅データとして出力される。次に、16ビット右シフト回路52では16ビット右シフト処理され、15番目のビットの桁位置が符号拡張され、16ビット幅データの出力データとして出力される。
図3は中間データ保持回路30の動作説明図である。中間データ保持回路30は第2の制御信号C2[1:0]の状態によりデコード回路20の出力に基づいて、以下のように動作する。
第2の制御信号の各ビットデータC2[0]、C2[1]が共にパッシブな“Lo”状態のとき、0番目のビットから15番目のビットまでの桁位置の中間データのデータ要素がそのまま16ビットの出力データとして出力されるので、その0番目のビットから15番目のビットまでの桁位置の中間データのデータ要素が中間データ保持回路30に格納保持される。
第2の制御信号のビットデータC2[0]がアクティブな状態“Hi”で、また、第2の制御信号のビットデータC2[1]がパッシブな状態“Lo”のとき、8ビット左シフト処理回路51により8ビット左シフトされ、16ビット右シフト処理回路52ではシフト処理されずそのままであり、第2のシフト回路50では8ビット左シフトされることになるため、中間データの中で8ビット左シフトされて出力データの16ビット幅に残る0番目のビットから7番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
第2の制御信号のビットデータC2[1]がアクティブな状態“Hi”で、また、第2の制御信号のビットデータC2[0]がパッシブな状態“Lo”のとき、8ビット左シフト処理回路51ではシフト処理されずそのままであり、16ビット右シフト処理回路52により16ビット右シフト処理され、第2のシフト回路50では16ビット右シフト処理されることになるため、中間データの中で16ビット右シフトされて出力データの16ビット幅に残る16番目のビットから22番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
第2の制御信号の各ビットデータC2[0]、C2[1]が共にアクティブな状態“Hi”のとき、8ビット左シフト処理回路51により8ビット左シフトされ、16ビット右シフト処理回路52により16ビット右シフト処理され、第2のシフト処理回路50では8ビット右シフト処理されることになるため、中間データの中で8ビット右シフトされて出力データの16ビット幅に残る8番目のビットから22番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
このように、中間データを構成する全てのデータ要素のうち、出力データとなるデータ要素のみが中間データ保持回路30に格納保持されることになる。
図4は中間データ保持回路30の動作説明図である。デコード回路20は第2の制御信号C2[1:0]の一部の信号をデコードするようにしてもよい。ここでは、第2の制御信号のビットデータ(所定の1ビットデータ)C2[1]をそのまま中間データ保持回路30に出力する。中間データ保持回路30は第2の制御信号のビットデータC2[1]の状態によりデコード回路20の出力に基づいて、以下のように動作する。
第2の制御信号のビットデータC2[1]がパッシブな状態“Lo”のとき、図3で説明したように、第2の制御信号のビットデータC2[0]が何れの状態であっても、中間データ中の0番目のビットから15番目のビットまでの桁位置のデータ要素には、第2のシフト回路50から出力される出力データが含まれるので、0番目のビットから15番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
また、第2の制御信号のビットデータC2[1]がアクティブな状態“Hi”のとき、図3で説明したように、第2の制御信号のビットデータC2[0]が何れの状態であっても、中間データ中の8番目のビットから22番目のビットまでの桁位置のデータ要素には、第2のシフト回路50から出力される出力データが含まれているので、8番目のビットから22番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
このように、少なくとも出力データとなるデータ要素を含む桁位置がデコード回路20により検出され、その出力データを含む桁位置のデータ要素が中間データ保持回路30に格納保持され、一部に符号拡張データ、又は値0を埋めたデータが格納される場合もある。
上記図3の場合が省電力に最も効果的であるが、第2の制御信号C2[1:0]の一部についてデコードすることによりデコード回路20の回路を簡単化することができる。
以上、算術シフト処理を前提に述べたが、論理シフト処理については符号拡張を値0拡張に置き換えればよい。また、他のシフト処理についても同様である。
このようにして、第1の実施の形態においては中間データ保持回路30の動作を制御することにより、中間データ保持回路30を構成する記憶回路への不用なデータ要素の格納動作を防ぎ、以前のデータ要素を引き続き保持することにより、従来の技術と比べて中間データ保持回路30の省電力化と第2のシフト回路の活性化を抑えることによる省電力化が可能となる。
(第2の実施の形態)
第2の実施の形態のバレルシフト装置の概略図を図5に示す。
本実施の形態における図5のバレルシフト装置は、第1の実施の形態と同様に、パイプラインレジスタで分割され、多段処理ステージでシフト処理が実行される。
先ず、図5を用いて、本実施の形態のバレルシフト装置の構成を説明する。尚、本実施の形態では、簡単のため16ビットデータ(所定のビット幅の入力データ)を左15ビットから右16ビットの範囲で任意に算術シフト可能なバレルシフト装置を前提として説明する。また、第1の実施の形態において、図1を用いて説明したバレルシフト装置と同一構成については、同一符号を付し、その説明を省略する。
図5におけるバレルシフト装置が、第1の実施の形態において示した図1のバレルシフト装置と異なるのは、デコード回路60の受ける制御信号が第2の制御信号ではなく第1の制御信号であり、第1のシフト回路10によりシフトされた入力データ要素の、中間データ保持回路30中における桁位置を、入力された第1の制御信号に基づいて検出する点である。この第1の制御信号に基づく検出では、デコード回路60は、第1のシフト回路10から出力されるデータのうち、少なくとも第1のシフト回路によるシフト後の入力データのデータ要素が出力される桁位置を検出する。そして、この検出結果を受けた中間データ保持回路30は、中間データを構成する全てのデータ要素のうち、前記入力データのデータ要素以外のデータ要素を一部又は全部除いたデータ要素のみを保持し、この保持していたデータ要素を第2のシフト回路50へ出力する。
これにより、中間データ保持回路30に保持すべきデータを縮小することができ、不用な格納動作を抑制できるので省電力化が可能である。
次に、図6を用いて、本実施の形態のバレルシフト装置について、具体的なシフト処理の動作説明を行う。ここでは、シフト処理の具体例として、11ビット右シフト処理を行った場合について説明する。また、図中の“0”は値0を、“S”は符号拡張を、“H”は保持データを示す。
第1の制御信号C1[2:0]は3ビットデータであり、1ビットデータC1[0]、C1[1]、C1[2]で構成される。第1のシフト回路10を構成する1ビット左シフト回路11、2ビット左シフト回路12、4ビット左シフト回路13はそれぞれ第1の制御信号の各ビットデータC1[0]、C1[1]、C1[2]により制御される。11ビット右シフト処理時は第1の制御信号のビットデータC1[0]、C1[2]がアクティブな状態“Hi”、また、第1の制御信号のビットデータC1[1]がパッシブな状態“Lo”となる。第1のシフト回路10に入力された入力データは前記第1の制御信号C1[2:0]に基づいてシフト処理される。
まず、1ビット左シフト回路11で1ビット左シフト処理され、0番目のビットの桁位置には値0のデータ要素が埋められ、17ビット幅データとして出力される。次に、2ビット左シフト処理回路12ではシフト処理されず、17番目のビットと18番目のビットとが符号拡張され、19ビット幅データとして出力される。更に、4ビット左シフト回路13では4ビット左シフト処理され、0番目のビット、1番目のビット、2番目のビット、及び3番目のビットの桁位置には値0のデータ要素が埋めれら、23ビット幅データの中間データとして中間データ保持回路30へ出力される。
デコード回路60は第1の制御信号C1[2:0]から、入力データのデータ要素が中間データのどの桁位置に出力されているかを検出し、その検出結果を中間データ保持回路30へ出力する。11ビット右シフト処理時は第1の制御信号のビットデータC1[0]、C1[2]がアクティブな状態“Hi”、また、第1の制御信号のビットデータC1[1]がパッシブな状態“Lo”となり、第1のシフト回路10の部分では、5ビット左シフト処理が施されるので、中間データの5番目のビットから20番目のビットまでの桁位置のデータ要素が入力データのデータ要素であることが分かる。
中間データ保持回路30はデコード回路60の出力に基づいて、中間データの5番目のビットから20番目のビットまでの桁位置のデータ要素を格納保持し、0番目のビットから4番目のビット、及び21番目のビット、22番目のビットの桁位置のデータ要素に関しては以前の保持データ要素を継続して保持する。そして、第2のシフト回路50へ出力する段階で、0番目のビットから4番目のビットの桁位置については値0のデータ要素を出力し、5番目のビットから20番目のビットまでの桁位置については格納保持したデータ要素を出力し、21番目のビット、22番目のビットについては符号拡張して出力する。このように、本実施の形態では、算術シフト演算の場合を示しているので、保持したデータより上位の桁位置には、入力データの符号が出力され、また、保持したデータより下位の桁位置には、値0のデータ要素が出力される。
制御信号保持回路40は第2の制御信号C2[1:0]を保持し、第2のシフト回路50へ出力する。第2のシフト回路50を構成する8ビット左シフト回路51、16ビット右シフト回路52はそれぞれ第2の制御信号のビットデータC2[0]、C2[1]が制御信号保持回路40に保持された後の出力により制御される。以下、簡単のため制御信号保持回路40に保持された後の信号も第2の制御信号C2[1:0]と表現する。11ビット右シフト処理時は第2の制御信号のビットデータC2[1]がアクティブな状態“Hi”、また、第2の制御信号のビットデータC2[0]がパッシブな状態“Lo”となる。第2のシフト回路50に入力された中間データ保持回路30の出力は前記第2の制御信号C2[1:0]に基づいてシフト処理される。
まず、8ビット左シフト処理回路51ではシフト処理されず、23番目のビットから30番目のビットが符号拡張され、31ビット幅データとして出力される。次に、16ビット右シフト回路52では16ビット右シフト処理され、15番目のビットが符号拡張され、16ビット幅データの出力データとして出力される。
図7は中間データ保持回路30の動作説明図である。中間データ保持回路30は第1の制御信号C1[2:0]の状態によりデコード回路60の出力に基づいて、以下のように動作する。
第1の制御信号のビットデータC1[0]、C1[1]、C1[2]が全てパッシブな状態“Lo”のとき、0番目のビットから15番目のビットまでの桁位置の入力データのデータ要素がそのまま16ビットの中間データとして第1のシフト回路10から出力されるので、0番目のビットから15番目のビットまでの桁位置の中間データのデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[0]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[1]、C1[2]がパッシブな状態“Lo”のとき、1ビット左シフト処理回路11により1ビット左シフトされ、2ビット左シフト処理回路12及び4ビット左シフト処理回路13ではシフト処理されずそのままであり、第1のシフト回路10としては1ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁位置である1番目のビッ1から16番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[1]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[0]、C1[2]がパッシブな状態“Lo”のとき、2ビット左シフト処理回路12により2ビット左シフトされ、1ビット左シフト処理回路11及び4ビット左シフト処理回路13ではシフト処理されずそのままであり、第1のシフト回路10としては2ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁位置である2番目のビットから17番目のビットまでのデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[0]、C1[1]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[2]がパッシブな状態“Lo”のとき、1ビット左シフト処理回路11により1ビット左シフトされ、且つ、2ビット左シフト処理回路12により2ビット左シフトされ、また、4ビット左シフト処理回路13ではシフト処理されずそのままであり、第1のシフト回路10としては3ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁位置である3番目のビットから18番目のビットまでのデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[2]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[0]、C1[1]がパッシブな状態“Lo”のとき、4ビット左シフト処理回路13により4ビット左シフトされ、1ビット左シフト処理回路11及び2ビット左シフト処理回路12ではシフト処理されずそのままであり、第1のシフト処理回路10としては4ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁位置である4番目のビットから19番目のビットまでのデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[0]、C1[2]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[1]がパッシブな状態“Lo”のとき、1ビット左シフト処理回路11により1ビット左シフトされ、且つ、4ビット左シフト処理回路13により4ビット左シフトされ、また、2ビット左シフト処理回路12ではシフト処理されずそのままであり、第1のシフト処理回路10としては5ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁位置である5番目のビットから20番目のビットまでのデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[1]、C1[2]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC2[0]がパッシブな状態“Lo”のとき、2ビット左シフト処理回路12により2ビット左シフトされ、且つ、4ビット左シフト処理回路13により4ビット左シフトされ、また、1ビット左シフト処理回路11ではシフト処理されずそのままであり、第1のシフト処理回路10としては6ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁位置である6番目のビットから21番目のビットまでのデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[0]、C1[1]、C1[2]が全てアクティブな状態“Hi”のとき、1ビット左シフト処理回路11、2ビット左シフト処理回路12及び4ビット左シフト処理回路、すなわち、第1のシフト処理回路10により7ビット左シフトされるため、中間データとしては、入力データの出力される桁位置である7番目のビットから22番目のビットまでのデータ要素が中間データ保持回路30に格納保持される。
このように、中間データを構成する全てのデータ要素のうち、入力データのデータ要素のみが中間データ保持回路30に新たに格納保持されることになる。
図8は中間データ保持回路の動作説明図である。デコード回路60は第1の制御信号C1[2:0]の一部の信号をデコードするようにしてもよい。ここでは、第1の制御信号C1[2:1]をデコードして中間データ保持回路30に出力する。中間データ保持回路30は第1の制御信号C1[1:0]の状態によりデコード回路60の出力に基づいて、以下のように動作する。
第1の制御信号のビットデータC1[1]、C1[2]が共にパッシブな状態“Lo”のとき、図7を用いて説明したように、第1の制御信号のビットデータC1[0]が何れの状態であっても、中間データ中の0番目のビットから16番目のビットまでのデータ要素には、入力データのデータ要素が含まれるので、0番目のビットから16番目のビットまで桁位置のデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[1]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[2]がパッシブな状態“Lo”のとき、図7を用いて説明したように、第1の制御信号のビットデータC1[0]が何れの状態であっても、中間データ中の2番目のビットから18番目のビットまでの桁位置のデータ要素には、入力データのデータ要素が含まれるので、2番目のビットから18番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[2]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[1]がパッシブな状態“Lo”のとき、図7を用いて説明したように、第1の制御信号のビットデータC1[0]が何れの状態であっても、中間データ中の4番目のビットから20番目のビットまでの桁位置のデータ要素には、入力データのデータ要素が含まれるので、4番目のビットから20番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[1]、C1[2]が共にアクティブな状態“Hi”のとき、図7を用いて説明したように、第1の制御信号のビットデータC1[0]が何れの状態であっても、中間データ中の6番目のビットから22番目のビットまでの桁位置のデータ要素には、入力データのデータ要素が含まれるので、6番目のビットから22番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
このように、少なくとも入力データに含まれるデータ要素が中間データ保持回路30に格納保持され、一部に符号拡張データ、値0を埋めたデータが格納されることになる。
図9は中間データ保持回路の動作説明図である。デコード回路60は第1の制御信号C1[2:0]の一部の信号をデコードするようにしてもよい。ここでは、図8を用いて示した場合よりも更に少ない、1ビットの第1の制御信号のビットデータC1[2]をそのまま中間データ保持回路30に出力する。中間データ保持回路30は第1の制御信号のビットデータC1[2]の状態によりデコード回路60の出力に基づいて、以下のように動作する。
第1の制御信号のビットデータC1[2]がパッシブな状態“Lo”のとき、図7を用いて説明したように、第1の制御信号のビットデータC1[0]及びC1[1]が何れの状態であっても、中間データ中の0番目のビットから18番目のビットまでの桁位置のデータ要素には、入力データのデータ要素が含まれるので、0番目のビットから18番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[2]がアクティブな状態“Hi”のとき、図7を用いて説明したように、第1の制御信号ビットデータC1[0]及びC1[1]が何れの状態であっても、中間データ中の4番目のビットから22番目のビットまでの桁位置のデータ要素には、入力データのデータ要素が含まれるので、4番目のビットから22番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
このように、少なくとも入力データのデータ要素が中間データ保持回路30に格納保持され、一部に符号拡張データ、値0埋めのデータが格納されることになる。
上記図7の場合が省電力に最も効果的であるが、上記図8、図9のように第1の制御信号C1[2:0]の一部についてデコードすることによりデコード回路60の回路を簡単化することができる。
以上、算術シフト処理を前提に述べたが、論理シフト処理については符号拡張を値0拡張に置き換えればよい。また、他のシフト処理についても同様である。
このようにして、第2の実施の形態においては中間データ保持回路30の動作を制御することにより、中間データ保持回路30を構成する記憶回路への不用なデータの格納動作を防ぎ、従来の技術と比べて中間データ保持回路30の省電力化が可能となる。
本発明のバレルシフト装置は、パイプライン構造化によりシフト回路間に挿入される中間データ保持回路の動作を制御し、出力データに反映されない不用なデータ要素の格納保持の動作を抑制することにより、バレルシフト装置の省電力化が可能となるので、デジタル信号処理における多ビットデータの左右シフト処理を行う半導体装置の構成要素等として有用である。
本発明は、デジタル信号処理における多ビットデータの左右シフト処理を行うバレルシフト装置に関するものである。
従来のバレルシフト装置は、多段のセレクタにより構成される。一方、信号処理においてスループットを向上させる目的で、バレルシフト装置をパイプラインレジスタで分割し、シフト処理を多段処理ステージで実行する必要性が生じている。
従来の多段セレクタ構成のバレルシフト装置として、例えば、特許文献1がある。特許文献1記載のバレルシフト装置は、制御信号によりシフトするかしないかを選択するセレクタにより構成されるシフト回路を多段に組合わせた構造を持つ。例えば、左15ビットシフトから右16ビットシフトの間で任意のシフトを実現する場合、それぞれ1ビット、2ビット、4ビット、8ビットの左シフト機能を持つシフト回路と16ビット右シフト機能を持つシフト回路を多段に組合わせることにより実現できる。この場合、右5ビットシフトを実現するには、1ビット左シフト回路、2ビット左シフト回路、8ビット左シフト回路と16ビット右シフト回路をアクティブにすればよい。
以下に図10を用いて特許文献1記載のバレルシフト装置にパイプライン構造を導入した際の構成及びその動作の説明を詳細に行う。
図10は特許文献1記載のバレルシフト装置にパイプライン構造を導入した際の概略図である。第1のシフト回路10は入力データを第1の制御信号に基づいてシフト処理し中間データ30として出力する。ここで、第1のシフト回路10は1ビット左シフト回路11と2ビット左シフト回路12と4ビット左シフト回路13とから構成されており、左7ビットシフトから0ビットシフトまでの任意のシフトを実現する。
中間データ保持回路30は第1のシフト回路10の出力である中間データを保持し、次の第2のシフト回路へ出力する。
制御信号保持回路40は第2の制御信号を保持し、出力する。
第2のシフト回路50は中間データを制御信号保持回路40の出力する第2の制御信号に基づいてシフト処理し出力データとして出力する。ここで、第2のシフト回路50は8ビット左シフト回路51と16ビット右シフト回路52とから構成されており、第1のシフト回路でのシフト処理と組合わせることにより入力データの左15ビットシフトから右16ビットシフトの間の任意のシフトを実現する。
特開2000−293354号公報(第7頁、第1図)
しかしながら、従来のパイプラインレジスタで分割するバレルシフト装置の技術では、第1のシフト回路を構成する各シフト回路を経由するごとにデータのビット幅が大きくなり、これにより、第1のシフト回路から出力される中間データのビット幅が大きくなり、更には、中間データ保持回路の実装規模が増大してしまうため、消費電力が増加するという課題があった。
本発明は上記従来の課題を解決するものであり、中間データ保持回路のデータの格納動作を制御することにより、パイプライン構造化による電力増加を抑制することを目的とする。
上記目的を達成するために、本発明のバレルシフト装置では、中間データ保持回路に保持する中間データのうち、最終出力データとして出力されるデータ要素以外の全部又は一部の不用なデータ要素の格納動作を抑制するようにする。
すなわち、請求項1記載の発明のバレルシフト装置は、所定のビット幅の入力データを受け、第1のシフト量及び第2のシフト量を組み合わせた合計シフト量だけ前記入力データを左右シフトして、所望シフト後の出力データとして出力するバレルシフト装置において、前記入力データを受け、前記第1のシフト量を制御する第1の制御信号に基づいて前記入力データをシフトし、中間データとして出力する第1のシフト手段と、前記第1のシフト手段からの中間データを保持するための中間データ保持手段と、前記第2のシフト量を制御する前記第2の制御信号を保持し、出力する制御信号保持手段と、前記中間データ保持手段に保持された中間データを受け、前記制御信号保持手段の出力する前記第2の制御信号に基づいて、前記受けた中間データをシフトさせて、前記所望シフト後の出力データとして出力する第2のシフト手段とを備えると共に、前記第2の制御信号を受け、この第2の制御信号に基づき、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要素を一部又は全部除いたデータ要素の前記中間データ内での桁位置を検出するデコード手段を備え、前記中間データ保持手段は、前記デコード手段で検出された前記桁位置に基づいて、前記中間データのうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要素の一部又は全部が除かれ、少なくとも前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素を含む桁位置のデータ要素を新たに保持することを特徴とする。
請求項2記載の発明は、前記請求項1記載のバレルシフト装置において、前記デコード手段は、前記第2の制御信号が示す情報の全部に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素のみの前記中間データ内での桁位置を検出することを特徴とする。
請求項3記載の発明は、前記請求項1記載のバレルシフト装置において、前記デコード手段は、前記第2の制御信号が示す情報の一部に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要素を一部除いたデータ要素の前記中間データ内での桁位置を検出することを特徴とする。
請求項4記載の発明は、前記請求項1記載のバレルシフト装置において、前記第2の制御信号は複数のビット信号からなる制御信号であって、前記中間データ保持手段は、前記第2の制御信号の所定の1ビット信号に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要素が一部除かれた桁位置のデータ要素を保持及び出力することを特徴とする。
請求項5記載の発明のバレルシフト装置は、所定のビット幅の入力データを受け、第1のシフト量及び第2のシフト量を組み合わせた合計シフト量だけ前記入力データを左右にシフトして、所望シフト後の出力データとして出力するバレルシフト装置において、前記入力データを受け、前記第1のシフト量を制御する第1の制御信号に基づいて前記入力データをシフトし、中間データとして出力する第1のシフト手段と、前記第1のシフト手段からの中間データを保持するための中間データ保持手段と、前記第2のシフト量を制御する第2の制御信号を保持し、出力する制御信号保持手段と、前記中間データ保持手段に保持された中間データを受け、前記制御信号保持手段の出力する前記第2の制御信号に基づいて、前記受けた中間データをシフトさせて、前記所望シフト後の出力データとして出力する第2のシフト手段とを備えると共に、前記第1の制御信号を受け、この第1の制御信号に基づき、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素の桁位置を検出するデコード手段とを備え、前記中間データ保持手段は、前記デコード手段で検出された前記桁位置に基づいて、前記中間データを構成する全てのデータ要素のうち、少なくとも前記入力データに含まれるデータ要素を含む桁位置のデータ要素を新たに保持することを特徴とする。
請求項6記載の発明は、前記請求項5記載のバレルシフト装置において、前記デコード手段は、前記第1の制御信号が示す情報の全部に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素のみの前記中間データ内での桁位置を検出することを特徴とする。
請求項7記載の発明は、前記請求項5記載のバレルシフト装置において、前記デコード手段は、前記第1の制御信号が示す情報の一部に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素以外のデータ要素の一部を除いたデータ要素の前記中間データ内での桁位置を検出することを特徴とする。
請求項8記載の発明は、前記請求項5記載のバレルシフト装置において、前記第1の制御信号は複数ビットの信号からなる制御信号であって、前記中間データ保持手段は、前記第1の制御信号の所定の1ビットの信号に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素以外のデータ要素の一部が除かれた桁位置のデータ要素を保持及び出力することを特徴とする。
以上により、本発明では、第2のシフト手段で施されるシフト量を制御する第2の制御信号を、デコード手段を用いてデコードすることにより、中間データから出力データとして出力されるデータ要素の桁位置を検出し、中間データ保持手段では、少なくとも前記桁位置の中間データ要素を保持するように動作する。従って、最終データとして出力されない不用なデータ要素を中間データ保持手段で格納せず、以前保持していたデータ要素を保持し続けるので、その分、省電力化が可能となる。
また、本発明では、第1のシフト手段で施されるシフト量を制御する第1の制御信号を、デコード手段を用いてデコードすることにより、中間データを構成する全てのデータ要素のうち、少なくとも入力データに含まれるデータ要素の桁位置を検出し、中間データ保持手段では、少なくともこの桁位置の中間データ要素を保持するように動作する。従って、入力データのデータ要素でないデータ要素を中間データ保持手段で格納せず、以前保持していたデータ要素を保持し続けるので、その分、省電力化が可能となる。
以上説明したように、本発明のバレルシフト装置によれば、パイプライン構造化により挿入される中間データ保持手段からデータを出力するまでの間の第2のシフト手段で施されるシフト量の情報を制御信号として用いて、中間データ保持手段での最終的には出力されないデータ要素の保持動作を抑制したので、省電力化を実現することが可能となる。
また、本発明のバレルシフト装置によれば、データの入力からパイプライン構造化により挿入される中間データ保持手段までの間の第1のシフト手段で施されるシフト量の情報を制御信号として用いて、中間データ保持手段での不要なデータ要素の格納保持の動作を抑制したので、省電力化を実現することが可能となる。
以下、本発明の実施の形態について図面を参照しながら説明する。
(第1の実施の形態)
第1の実施の形態のバレルシフト装置の概略図を図1に示す。
本実施の形態におけるバレルシフト装置は、図1に示すように、パイプラインレジスタで分割され、多段処理ステージでシフト処理が実行される。
ここでは、この図1を用いて、本実施の形態のバレルシフト装置の構成を説明する。尚、本実施の形態では、簡単のため16ビットデータ(所定のビット幅の入力データ)を左15ビットから右16ビットの範囲で任意に算術シフト可能なバレルシフト装置を前提として説明する。
図1において、10は第1のシフト回路であり、3ビットデータからなる第1の制御信号に基づいて入力データをシフト処理し、中間データ保持回路30へ中間データを出力する。この第1のシフト回路10は、1ビット左シフト回路11、2ビット左シフト回路12及び4ビット左シフト回路13の3つのシフト回路で構成される。これら3つのシフト回路11、12、13は、それぞれ、前記第1の制御信号のうち対応するビットデータを受ける。すなわち、第1の制御信号の各ビットデータの組み合わせにより、3つのシフト回路11、12、13でのシフト処理を組み合わせて、左7ビットシフトから0ビットシフトまでの任意のシフト量(第1のシフト量)を実現する。
50は第2のシフト回路であって、中間データ保持回路30の出力する中間データを受け、第1のシフト回路10におけるシフト処理に続いて所定のシフト処理を行い、全体として所望のシフトを完成させ、出力データを出力する。この第2のシフト回路50は、図1に示すように、8ビット左シフト回路51と16ビット右シフト回路52とから構成される。また、この第2のシフト回路50は、第1のシフト回路10と同様に外部から入力される第2の制御信号の制御によりシフト(第2のシフト量のシフト)処理を行うのであるが、第2の制御信号は第2のシフト回路50へ直接入力されない。第2の制御信号は、デコード回路20に入力されると共に、第2の制御信号を一旦保持する制御信号保持回路40を介して第2のシフト回路50に入力される。この制御信号保持回路40を介して第2のシフト回路50に入力された第2の制御信号は、2分割され、第2のシフト回路50中の2つのシフト回路51及び52にそれぞれ入力される。そして、2つのシフト回路51及び52によるそれぞれのシフト処理の組み合わせにより、第1のシフト回路10によるシフト処理に続くシフト処理を行い、入力データの左15ビットシフトから右16ビットシフトの間の任意のシフト、すなわち、所望のシフトを完成させ、出力する。
一方、第2の制御信号が入力されたデコード回路20は、中間データのデータ要素のうち、第2のシフト回路50によりシフト処理された結果として出力される出力データのデータ要素の中間データ保持回路30中の桁位置を、第2の制御信号に基づいて検出し、その検出結果を中間データ保持回路30に対して出力する。このデコード回路20の検出結果を用いて、中間データ保持回路30は、出力データとして第2のシフト回路50から出力される桁位置のデータ要素のみ、又は、この出力される桁位置のデータ要素を含むデータ要素であって且つ出力データに反映されない不用なデータを一部除いたデータ要素を保持する。このようなデコード回路20の働きにより、中間データ保持回路30は、出力データのデータ要素として出力されない不用なデータ要素を保持しなくても済む分だけ不用な格納動作を省略できるので、省電力化が可能である。
次に、図2を用いて、本実施の形態のバレルシフト装置について、具体的なシフト処理の動作説明を行う。ここでは、シフト処理の具体例として、11ビット右シフト処理を行った場合について説明する。また、図中の“0”は値0を、“S”は符号拡張を、“H”は保持データを示す。
図2に示す第1の制御信号C1[2:0]は3ビットデータであり、3つの1ビットデータC1[0]、C1[1]、C1[2]から構成される。第1のシフト回路10を構成する1ビット左シフト回路11、2ビット左シフト回路12、4ビット左シフト回路13は、それぞれ、第1の制御信号の各ビットデータC1[0]、C1[1]、C1[2]により制御される。11ビット右シフト処理時は第1の制御信号の1ビットデータC1[0]、C1[2]がアクティブな状態“Hi”、また、第1の制御信号の1ビットデータC1[1]がパッシブな状態“Lo”となる。第1のシフト回路10に入力された入力データは第1の制御信号C1[2:0]に基づいてシフト処理される。
まず、1ビット左シフト回路11で1ビット左シフト処理され、0番目のビットデータには値0が埋められ、17ビット幅データとして出力される。次に、2ビット左シフト処理回路12ではシフト処理されず、17番目のビットデータ及び18番目のビットデータが符号拡張され、19ビット幅データとして出力される。更に、4ビット左シフト回路13では4ビット左シフト処理され、0番目のビットデータ、1番目のビットデータ、2番目のビットデータ、及び3番目のビットデータには値0が埋められ、23ビット幅データの中間データとして中間データ保持回路30へ出力される。
第2の制御信号C2[1:0]は2ビットデータであり、1ビットデータC2[0]、C2[1]で構成される。第2のシフト回路50を構成する8ビット左シフト回路51、16ビット右シフト回路52は、第2の制御信号の各ビットデータC2[0]、C2[1]で制御される。デコード回路20は、それぞれ、第2のシフト回路50でのシフト処理後出力される出力データのデータ要素が中間データのどの桁位置に出力されているかを第2の制御信号C2[1:0]から検出し、この検出結果を中間データ保持回路30へ出力する。この桁位置の検出動作を具体的に説明すると、例えば、11ビット右シフト処理時は第2の制御信号のビットデータC2[1]がアクティブな状態“Hi”、また、第2の制御信号のビットデータC2[0]がパッシブな状態“Lo”となり、第2のシフト回路50では16ビット右シフト処理が施されるので、中間データの16番目のビットから22番目までのビットの桁位置のデータ要素が出力データのデータ要素として出力されることが分かる。従って、中間データ保持回路30はデコード回路20の桁位置の検出結果に基づいて、中間データの16番目のビットから22番目までのビットの桁位置のデータ要素を新たに格納保持し、これら検出された桁位置以外の0番目のビットから15番目のビットまでの桁位置のデータ要素に関しては以前の保持データ要素をそのまま継続して保持する。
制御信号保持回路40は第2の制御信号C2[1:0]を保持し、第2のシフト回路50へ出力する。第2のシフト回路50を構成する8ビット左シフト回路51、16ビット右シフト回路52はそれぞれ第2の制御信号の各ビットデータC2[0]、C2[1]が制御信号保持回路40に保持された後の出力により制御される。以下、簡単のため制御信号保持回路40に保持された後の信号も第2の制御信号C2[1:0]と表現する。11ビット右シフト処理時は第2の制御信号のビットデータC2[1]がアクティブな状態“Hi”、また、第2の制御信号のビットデータC2[0]がパッシブな状態“Lo”となる。第2のシフト回路50に入力された中間データ保持回路30の出力は前記第2の制御信号C2[1:0]に基づいてシフト処理される。
まず、8ビット左シフト処理回路51ではシフト処理されず、23番目のビットから30番目のビットまでの桁位置が符号拡張され、31ビット幅データとして出力される。次に、16ビット右シフト回路52では16ビット右シフト処理され、15番目のビットの桁位置が符号拡張され、16ビット幅データの出力データとして出力される。
図3は中間データ保持回路30の動作説明図である。中間データ保持回路30は第2の制御信号C2[1:0]の状態によりデコード回路20の出力に基づいて、以下のように動作する。
第2の制御信号の各ビットデータC2[0]、C2[1]が共にパッシブな状態“Lo”のとき、0番目のビットから15番目のビットまでの桁位置の中間データのデータ要素がそのまま16ビットの出力データとして出力されるので、その0番目のビットから15番目のビットまでの桁位置の中間データのデータ要素が中間データ保持回路30に格納保持される。
第2の制御信号のビットデータC2[0]がアクティブな状態“Hi”で、また、第2の制御信号のビットデータC2[1]がパッシブな状態“Lo”のとき、8ビット左シフト処理回路51により8ビット左シフトされ、16ビット右シフト処理回路52ではシフト処理されずそのままであり、第2のシフト回路50では8ビット左シフトされることになるため、中間データの中で8ビット左シフトされて出力データの16ビット幅に残る0番目のビットから7番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
第2の制御信号のビットデータC2[1]がアクティブな状態“Hi”で、また、第2の制御信号のビットデータC2[0]がパッシブな状態“Lo”のとき、8ビット左シフト処理回路51ではシフト処理されずそのままであり、16ビット右シフト処理回路52により16ビット右シフト処理され、第2のシフト回路50では16ビット右シフト処理されることになるため、中間データの中で16ビット右シフトされて出力データの16ビット幅に残る16番目のビットから22番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
第2の制御信号の各ビットデータC2[0]、C2[1]が共にアクティブな状態“Hi”のとき、8ビット左シフト処理回路51により8ビット左シフトされ、16ビット右シフト処理回路52により16ビット右シフト処理され、第2のシフト処理回路50では8ビット右シフト処理されることになるため、中間データの中で8ビット右シフトされて出力データの16ビット幅に残る8番目のビットから22番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
このように、中間データを構成する全てのデータ要素のうち、出力データとなるデータ要素のみが中間データ保持回路30に格納保持されることになる。
図4は中間データ保持回路30の動作説明図である。デコード回路20は第2の制御信号C2[1:0]の一部の信号をデコードするようにしてもよい。ここでは、第2の制御信号のビットデータ(所定の1ビットデータ)C2[1]をそのまま中間データ保持回路30に出力する。中間データ保持回路30は第2の制御信号のビットデータC2[1]の状態によりデコード回路20の出力に基づいて、以下のように動作する。
第2の制御信号のビットデータC2[1]がパッシブな状態“Lo”のとき、図3で説明したように、第2の制御信号のビットデータC2[0]が何れの状態であっても、中間データ中の0番目のビットから15番目のビットまでの桁位置のデータ要素には、第2のシフト回路50から出力される出力データが含まれるので、0番目のビットから15番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
また、第2の制御信号のビットデータC2[1]がアクティブな状態“Hi”のとき、図3で説明したように、第2の制御信号のビットデータC2[0]が何れの状態であっても、中間データ中の8番目のビットから22番目のビットまでの桁位置のデータ要素には、第2のシフト回路50から出力される出力データが含まれているので、8番目のビットから22番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
このように、少なくとも出力データとなるデータ要素を含む桁位置がデコード回路20により検出され、その出力データを含む桁位置のデータ要素が中間データ保持回路30に格納保持され、一部に符号拡張データ、又は値0を埋めたデータが格納される場合もある。
上記図3の場合が省電力に最も効果的であるが、第2の制御信号C2[1:0]の一部についてデコードすることによりデコード回路20の回路を簡単化することができる。
以上、算術シフト処理を前提に述べたが、論理シフト処理については符号拡張を値0拡張に置き換えればよい。また、他のシフト処理についても同様である。
このようにして、第1の実施の形態においては中間データ保持回路30の動作を制御することにより、中間データ保持回路30を構成する記憶回路への不用なデータ要素の格納動作を防ぎ、以前のデータ要素を引き続き保持することにより、従来の技術と比べて中間データ保持回路30の省電力化と第2のシフト回路の活性化を抑えることによる省電力化が可能となる。
(第2の実施の形態)
第2の実施の形態のバレルシフト装置の概略図を図5に示す。
本実施の形態における図5のバレルシフト装置は、第1の実施の形態と同様に、パイプラインレジスタで分割され、多段処理ステージでシフト処理が実行される。
先ず、図5を用いて、本実施の形態のバレルシフト装置の構成を説明する。尚、本実施の形態では、簡単のため16ビットデータ(所定のビット幅の入力データ)を左15ビットから右16ビットの範囲で任意に算術シフト可能なバレルシフト装置を前提として説明する。また、第1の実施の形態において、図1を用いて説明したバレルシフト装置と同一構成については、同一符号を付し、その説明を省略する。
図5におけるバレルシフト装置が、第1の実施の形態において示した図1のバレルシフト装置と異なるのは、デコード回路60の受ける制御信号が第2の制御信号ではなく第1の制御信号であり、第1のシフト回路10によりシフトされた入力データ要素の、中間データ保持回路30中における桁位置を、入力された第1の制御信号に基づいて検出する点である。この第1の制御信号に基づく検出では、デコード回路60は、第1のシフト回路10から出力されるデータのうち、少なくとも第1のシフト回路によるシフト後の入力データのデータ要素が出力される桁位置を検出する。そして、この検出結果を受けた中間データ保持回路30は、中間データを構成する全てのデータ要素のうち、前記入力データのデータ要素以外のデータ要素を一部又は全部除いたデータ要素のみを保持し、この保持していたデータ要素を第2のシフト回路50へ出力する。
これにより、中間データ保持回路30に保持すべきデータを縮小することができ、不用な格納動作を抑制できるので省電力化が可能である。
次に、図6を用いて、本実施の形態のバレルシフト装置について、具体的なシフト処理の動作説明を行う。ここでは、シフト処理の具体例として、11ビット右シフト処理を行った場合について説明する。また、図中の“0”は値0を、“S”は符号拡張を、“H”は保持データを示す。
第1の制御信号C1[2:0]は3ビットデータであり、1ビットデータC1[0]、C1[1]、C1[2]で構成される。第1のシフト回路10を構成する1ビット左シフト回路11、2ビット左シフト回路12、4ビット左シフト回路13はそれぞれ第1の制御信号の各ビットデータC1[0]、C1[1]、C1[2]により制御される。11ビット右シフト処理時は第1の制御信号のビットデータC1[0]、C1[2]がアクティブな状態“Hi”、また、第1の制御信号のビットデータC1[1]がパッシブな状態“Lo”となる。第1のシフト回路10に入力された入力データは前記第1の制御信号C1[2:0]に基づいてシフト処理される。
まず、1ビット左シフト回路11で1ビット左シフト処理され、0番目のビットの桁位置には値0のデータ要素が埋められ、17ビット幅データとして出力される。次に、2ビット左シフト処理回路12ではシフト処理されず、17番目のビットと18番目のビットとが符号拡張され、19ビット幅データとして出力される。更に、4ビット左シフト回路13では4ビット左シフト処理され、0番目のビット、1番目のビット、2番目のビット、及び3番目のビットの桁位置には値0のデータ要素が埋めれら、23ビット幅データの中間データとして中間データ保持回路30へ出力される。
デコード回路60は第1の制御信号C1[2:0]から、入力データのデータ要素が中間データのどの桁位置に出力されているかを検出し、その検出結果を中間データ保持回路30へ出力する。11ビット右シフト処理時は第1の制御信号のビットデータC1[0]、C1[2]がアクティブな状態“Hi”、また、第1の制御信号のビットデータC1[1]がパッシブな状態“Lo”となり、第1のシフト回路10の部分では、5ビット左シフト処理が施されるので、中間データの5番目のビットから20番目のビットまでの桁位置のデータ要素が入力データのデータ要素であることが分かる。
中間データ保持回路30はデコード回路60の出力に基づいて、中間データの5番目のビットから20番目のビットまでの桁位置のデータ要素を格納保持し、0番目のビットから4番目のビット、及び21番目のビット、22番目のビットの桁位置のデータ要素に関しては以前の保持データ要素を継続して保持する。そして、第2のシフト回路50へ出力する段階で、0番目のビットから4番目のビットの桁位置については値0のデータ要素を出力し、5番目のビットから20番目のビットまでの桁位置については格納保持したデータ要素を出力し、21番目のビット、22番目のビットについては符号拡張して出力する。このように、本実施の形態では、算術シフト演算の場合を示しているので、保持したデータより上位の桁位置には、入力データの符号が出力され、また、保持したデータより下位の桁位置には、値0のデータ要素が出力される。
制御信号保持回路40は第2の制御信号C2[1:0]を保持し、第2のシフト回路50へ出力する。第2のシフト回路50を構成する8ビット左シフト回路51、16ビット右シフト回路52はそれぞれ第2の制御信号のビットデータC2[0]、C2[1]が制御信号保持回路40に保持された後の出力により制御される。以下、簡単のため制御信号保持回路40に保持された後の信号も第2の制御信号C2[1:0]と表現する。11ビット右シフト処理時は第2の制御信号のビットデータC2[1]がアクティブな状態“Hi”、また、第2の制御信号のビットデータC2[0]がパッシブな状態“Lo”となる。第2のシフト回路50に入力された中間データ保持回路30の出力は前記第2の制御信号C2[1:0]に基づいてシフト処理される。
まず、8ビット左シフト処理回路51ではシフト処理されず、23番目のビットから30番目のビットが符号拡張され、31ビット幅データとして出力される。次に、16ビット右シフト回路52では16ビット右シフト処理され、15番目のビットが符号拡張され、16ビット幅データの出力データとして出力される。
図7は中間データ保持回路30の動作説明図である。中間データ保持回路30は第1の制御信号C1[2:0]の状態によりデコード回路60の出力に基づいて、以下のように動作する。
第1の制御信号のビットデータC1[0]、C1[1]、C1[2]が全てパッシブな状態“Lo”のとき、0番目のビットから15番目のビットまでの桁位置の入力データのデータ要素がそのまま16ビットの中間データとして第1のシフト回路10から出力されるので、0番目のビットから15番目のビットまでの桁位置の中間データのデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[0]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[1]、C1[2]がパッシブな状態“Lo”のとき、1ビット左シフト処理回路11により1ビット左シフトされ、2ビット左シフト処理回路12及び4ビット左シフト処理回路13ではシフト処理されずそのままであり、第1のシフト回路10としては1ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁位置である1番目のビッ1から16番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[1]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[0]、C1[2]がパッシブな状態“Lo”のとき、2ビット左シフト処理回路12により2ビット左シフトされ、1ビット左シフト処理回路11及び4ビット左シフト処理回路13ではシフト処理されずそのままであり、第1のシフト回路10としては2ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁位置である2番目のビットから17番目のビットまでのデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[0]、C1[1]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[2]がパッシブな状態“Lo”のとき、1ビット左シフト処理回路11により1ビット左シフトされ、且つ、2ビット左シフト処理回路12により2ビット左シフトされ、また、4ビット左シフト処理回路13ではシフト処理されずそのままであり、第1のシフト回路10としては3ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁位置である3番目のビットから18番目のビットまでのデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[2]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[0]、C1[1]がパッシブな状態“Lo”のとき、4ビット左シフト処理回路13により4ビット左シフトされ、1ビット左シフト処理回路11及び2ビット左シフト処理回路12ではシフト処理されずそのままであり、第1のシフト処理回路10としては4ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁位置である4番目のビットから19番目のビットまでのデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[0]、C1[2]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[1]がパッシブな状態“Lo”のとき、1ビット左シフト処理回路11により1ビット左シフトされ、且つ、4ビット左シフト処理回路13により4ビット左シフトされ、また、2ビット左シフト処理回路12ではシフト処理されずそのままであり、第1のシフト処理回路10としては5ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁位置である5番目のビットから20番目のビットまでのデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[1]、C1[2]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC2[0]がパッシブな状態“Lo”のとき、2ビット左シフト処理回路12により2ビット左シフトされ、且つ、4ビット左シフト処理回路13により4ビット左シフトされ、また、1ビット左シフト処理回路11ではシフト処理されずそのままであり、第1のシフト処理回路10としては6ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁位置である6番目のビットから21番目のビットまでのデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[0]、C1[1]、C1[2]が全てアクティブな状態“Hi”のとき、1ビット左シフト処理回路11、2ビット左シフト処理回路12及び4ビット左シフト処理回路、すなわち、第1のシフト処理回路10により7ビット左シフトされるため、中間データとしては、入力データの出力される桁位置である7番目のビットから22番目のビットまでのデータ要素が中間データ保持回路30に格納保持される。
このように、中間データを構成する全てのデータ要素のうち、入力データのデータ要素のみが中間データ保持回路30に新たに格納保持されることになる。
図8は中間データ保持回路の動作説明図である。デコード回路60は第1の制御信号C1[2:0]の一部の信号をデコードするようにしてもよい。ここでは、第1の制御信号C1[2:1]をデコードして中間データ保持回路30に出力する。中間データ保持回路30は第1の制御信号C1[1:0]の状態によりデコード回路60の出力に基づいて、以下のように動作する。
第1の制御信号のビットデータC1[1]、C1[2]が共にパッシブな状態“Lo”のとき、図7を用いて説明したように、第1の制御信号のビットデータC1[0]が何れの状態であっても、中間データ中の0番目のビットから16番目のビットまでのデータ要素には、入力データのデータ要素が含まれるので、0番目のビットから16番目のビットまで桁位置のデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[1]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[2]がパッシブな状態“Lo”のとき、図7を用いて説明したように、第1の制御信号のビットデータC1[0]が何れの状態であっても、中間データ中の2番目のビットから18番目のビットまでの桁位置のデータ要素には、入力データのデータ要素が含まれるので、2番目のビットから18番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[2]がアクティブな状態“Hi”で、また、第1の制御信号のビットデータC1[1]がパッシブな状態“Lo”のとき、図7を用いて説明したように、第1の制御信号のビットデータC1[0]が何れの状態であっても、中間データ中の4番目のビットから20番目のビットまでの桁位置のデータ要素には、入力データのデータ要素が含まれるので、4番目のビットから20番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[1]、C1[2]が共にアクティブな状態“Hi”のとき、図7を用いて説明したように、第1の制御信号のビットデータC1[0]が何れの状態であっても、中間データ中の6番目のビットから22番目のビットまでの桁位置のデータ要素には、入力データのデータ要素が含まれるので、6番目のビットから22番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
このように、少なくとも入力データに含まれるデータ要素が中間データ保持回路30に格納保持され、一部に符号拡張データ、値0を埋めたデータが格納されることになる。
図9は中間データ保持回路の動作説明図である。デコード回路60は第1の制御信号C1[2:0]の一部の信号をデコードするようにしてもよい。ここでは、図8を用いて示した場合よりも更に少ない、1ビットの第1の制御信号のビットデータC1[2]をそのまま中間データ保持回路30に出力する。中間データ保持回路30は第1の制御信号のビットデータC1[2]の状態によりデコード回路60の出力に基づいて、以下のように動作する。
第1の制御信号のビットデータC1[2]がパッシブな状態“Lo”のとき、図7を用いて説明したように、第1の制御信号のビットデータC1[0]及びC1[1]が何れの状態であっても、中間データ中の0番目のビットから18番目のビットまでの桁位置のデータ要素には、入力データのデータ要素が含まれるので、0番目のビットから18番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
第1の制御信号のビットデータC1[2]がアクティブな状態“Hi”のとき、図7を用いて説明したように、第1の制御信号ビットデータC1[0]及びC1[1]が何れの状態であっても、中間データ中の4番目のビットから22番目のビットまでの桁位置のデータ要素には、入力データのデータ要素が含まれるので、4番目のビットから22番目のビットまでの桁位置のデータ要素が中間データ保持回路30に格納保持される。
このように、少なくとも入力データのデータ要素が中間データ保持回路30に格納保持され、一部に符号拡張データ、値0埋めのデータが格納されることになる。
上記図7の場合が省電力に最も効果的であるが、上記図8、図9のように第1の制御信号C1[2:0]の一部についてデコードすることによりデコード回路60の回路を簡単化することができる。
以上、算術シフト処理を前提に述べたが、論理シフト処理については符号拡張を値0拡張に置き換えればよい。また、他のシフト処理についても同様である。
このようにして、第2の実施の形態においては中間データ保持回路30の動作を制御することにより、中間データ保持回路30を構成する記憶回路への不用なデータの格納動作を防ぎ、従来の技術と比べて中間データ保持回路30の省電力化が可能となる。
本発明のバレルシフト装置は、パイプライン構造化によりシフト回路間に挿入される中間データ保持回路の動作を制御し、出力データに反映されない不用なデータ要素の格納保持の動作を抑制することにより、バレルシフト装置の省電力化が可能となるので、デジタル信号処理における多ビットデータの左右シフト処理を行う半導体装置の構成要素等として有用である。
本発明の第1の実施の形態のバレルシフト装置の概略図である。 本発明の第1の実施の形態の11ビット右シフト処理の動作説明図である。 本発明の第1の実施の形態の中間データ保持回路の動作説明図である。 本発明の第1の実施の形態の中間データ保持回路の動作説明図である。 本発明の第2の実施の形態のバレルシフト装置の概略図である。 本発明の第2の実施の形態の11ビット右シフト処理の動作説明図である。 本発明の第2の実施の形態の中間データ保持回路の動作説明図である。 本発明の第2の実施の形態の中間データ保持回路の動作説明図である。 本発明の第2の実施の形態の中間データ保持回路の動作説明図である。 従来の技術の構成を示す概略図である。
符号の説明
10 第1のシフト回路(第1のシフト手段)
11 1ビット左シフト回路
12 2ビット左シフト回路
13 4ビット左シフト回路
20、60 デコード回路(デコード手段)
30 中間データ保持回路(中間データ保持手段)
40 制御信号保持回路(制御信号保持手段)
50 第2のシフト回路(第2のシフト手段)
51 8ビット左シフト回路
52 16ビット右シフト回路
C1[2:0] 第1の制御信号
C1[0] 第1の制御信号の1ビットデータ
(所定の1ビット信号)
C2[1:0] 第2の制御信号
C2[0] 第2の制御信号の1ビットデータ
(所定の1ビット信号)
Hi 信号のアクティブな状態
Lo 信号のパッシブな状態
0 値0の出力
S 符号拡張出力
H データ保持出力

Claims (8)

  1. 所定のビット幅の入力データを受け、第1のシフト量及び第2のシフト量を組み合わせた合計シフト量だけ前記入力データを左右にシフトして、所望シフト後の出力データとして出力するバレルシフト装置において、
    前記入力データを受け、前記第1のシフト量を制御する第1の制御信号に基づいて前記入力データをシフトし、中間データとして出力する第1のシフト手段と、
    前記第1のシフト手段からの中間データを保持するための中間データ保持手段と、
    前記第2のシフト量を制御する第2の制御信号を保持し、出力する制御信号保持手段と、
    前記中間データ保持手段に保持された中間データを受け、前記制御信号保持手段の出力する前記第2の制御信号に基づいて、前記受けた中間データをシフトさせて、前記所望シフト後の出力データとして出力する第2のシフト手段とを備えると共に、
    前記第2の制御信号を受け、この第2の制御信号に基づき、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要素の一部又は全部を除いたデータ要素の前記中間データ内での桁位置を検出するデコード手段を備え、
    前記中間データ保持手段は、前記デコード手段で検出された前記桁位置に基づいて、前記中間データのうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要素の一部又は全部が除かれ、少なくとも前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素を含む桁位置のデータ要素を新たに保持する
    ことを特徴とするバレルシフト装置。
  2. 請求項1記載のバレルシフト装置において、
    前記デコード手段は、前記第2の制御信号が示す情報の全部に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素のみの前記中間データ内での桁位置を検出する
    ことを特徴とするバレルシフト装置。
  3. 請求項1記載のバレルシフト装置において、
    前記デコード手段は、前記第2の制御信号が示す情報の一部に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要素の一部を除いたデータ要素の前記中間データ内での桁位置を検出する
    ことを特徴とするバレルシフト装置。
  4. 請求項1記載のバレルシフト装置において、
    前記第2の制御信号は複数ビットの信号からなる制御信号であって、
    前記中間データ保持手段は、前記第2の制御信号の所定の1ビットの信号に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記第2のシフト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要素の一部が除かれた桁位置のデータ要素を保持及び出力する
    ことを特徴とするバレルシフト装置。
  5. 所定のビット幅の入力データを受け、第1のシフト量及び第2のシフト量を組み合わせた合計シフト量だけ前記入力データを左右にシフトして、所望シフト後の出力データとして出力するバレルシフト装置において、
    前記入力データを受け、前記第1のシフト量を制御する第1の制御信号に基づいて前記入力データをシフトし、中間データとして出力する第1のシフト手段と、
    前記第1のシフト手段からの中間データを保持するための中間データ保持手段と、
    前記第2のシフト量を制御する第2の制御信号を保持し、出力する制御信号保持手段と、
    前記中間データ保持手段に保持された中間データを受け、前記制御信号保持手段の出力する前記第2の制御信号に基づいて、前記受けた中間データをシフトさせて、前記所望シフト後の出力データとして出力する第2のシフト手段とを備えると共に、
    前記第1の制御信号を受け、この第1の制御信号に基づき、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素の桁位置を検出するデコード手段とを備え、
    前記中間データ保持手段は、前記デコード手段で検出された前記桁位置に基づいて、前記中間データを構成する全てのデータ要素のうち、少なくとも前記入力データに含まれるデータ要素を含む桁位置のデータ要素を新たに保持する
    ことを特徴とするバレルシフト装置。
  6. 請求項5記載のバレルシフト装置において、
    前記デコード手段は、前記第1の制御信号が示す情報の全部に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素のみの前記中間データ内での桁位置を検出する
    ことを特徴とするバレルシフト装置。
  7. 請求項5記載バレルシフト装置において、
    前記デコード手段は、前記第1の制御信号が示す情報の一部に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素以外のデータ要素の一部を除いたデータ要素の前記中間データ内での桁位置を検出する
    ことを特徴とするバレルシフト装置。
  8. 請求項5に記載のバレルシフト装置において、
    前記第1の制御信号は複数ビットの信号からなる制御信号であって、
    前記中間データ保持手段は、前記第1の制御信号の所定の1ビットの信号に基づいて、前記第1のシフト手段からの中間データを構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素以外のデータ要素の一部が除かれた桁位置のデータ要素を保持及び出力する
    ことを特徴とするバレルシフト装置。
JP2006535692A 2004-09-14 2005-08-31 バレルシフト装置 Expired - Fee Related JP4129280B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004267007 2004-09-14
JP2004267007 2004-09-14
PCT/JP2005/015863 WO2006030639A1 (ja) 2004-09-14 2005-08-31 バレルシフト装置

Publications (2)

Publication Number Publication Date
JPWO2006030639A1 true JPWO2006030639A1 (ja) 2008-05-15
JP4129280B2 JP4129280B2 (ja) 2008-08-06

Family

ID=36059894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006535692A Expired - Fee Related JP4129280B2 (ja) 2004-09-14 2005-08-31 バレルシフト装置

Country Status (8)

Country Link
US (1) US7461108B2 (ja)
EP (1) EP1821195B1 (ja)
JP (1) JP4129280B2 (ja)
KR (1) KR100774068B1 (ja)
CN (1) CN100468315C (ja)
DE (1) DE602005023050D1 (ja)
TW (1) TW200627267A (ja)
WO (1) WO2006030639A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378017B2 (en) * 2012-12-29 2016-06-28 Intel Corporation Apparatus and method of efficient vector roll operation
CN104243085A (zh) * 2013-06-08 2014-12-24 阿尔卡特朗讯 用于编码重组位数据的方法、装置和基站控制器
CN109217878B (zh) * 2017-06-30 2021-09-14 重庆软维科技有限公司 一种数据处理装置及方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4780716A (en) * 1985-11-01 1988-10-25 Nec Corporation Semiconductor integrated switching apparatus
JPH0391028A (ja) * 1989-09-04 1991-04-16 Mitsubishi Electric Corp パイプライン処理装置
JP3034408B2 (ja) * 1993-09-30 2000-04-17 株式会社東芝 シフト回路及び可変長符号復号器
JP3378444B2 (ja) * 1996-08-08 2003-02-17 株式会社東芝 シフト回路
US5822231A (en) * 1996-10-31 1998-10-13 Samsung Electronics Co., Ltd. Ternary based shifter that supports multiple data types for shift functions
JP2000293354A (ja) 1999-04-08 2000-10-20 Matsushita Electric Ind Co Ltd 演算処理装置
DK1193665T3 (da) * 2000-03-09 2012-04-02 Mitsubishi Electric Corp Blokkrypteringsindretning, som anvender hjælpekonvertering
US7685212B2 (en) * 2001-10-29 2010-03-23 Intel Corporation Fast full search motion estimation with SIMD merge instruction
US6877019B2 (en) 2002-01-08 2005-04-05 3Dsp Corporation Barrel shifter
KR20030066997A (ko) * 2002-02-06 2003-08-14 주식회사 하이닉스반도체 데이터 출력 버퍼 블록 및 이의 구동 방법
JP4593071B2 (ja) * 2002-03-26 2010-12-08 シャープ株式会社 シフトレジスタおよびそれを備えた表示装置
JP2003337694A (ja) 2002-05-21 2003-11-28 Sharp Corp シフト回路

Also Published As

Publication number Publication date
US20070180007A1 (en) 2007-08-02
TW200627267A (en) 2006-08-01
EP1821195A1 (en) 2007-08-22
WO2006030639A1 (ja) 2006-03-23
KR20060065738A (ko) 2006-06-14
JP4129280B2 (ja) 2008-08-06
US7461108B2 (en) 2008-12-02
DE602005023050D1 (de) 2010-09-30
KR100774068B1 (ko) 2007-11-06
CN100468315C (zh) 2009-03-11
EP1821195B1 (en) 2010-08-18
EP1821195A4 (en) 2009-01-07
CN1898639A (zh) 2007-01-17

Similar Documents

Publication Publication Date Title
US7917733B2 (en) Instruction code compression using instruction codes with reuse flags
US20050289323A1 (en) Barrel shifter for a microprocessor
US5440504A (en) Arithmetic apparatus for digital signal processor
US20020002692A1 (en) CRC operation unit and CRC operation method
US6844834B2 (en) Processor, encoder, decoder, and electronic apparatus
JP4129280B2 (ja) バレルシフト装置
US6877019B2 (en) Barrel shifter
JP4457084B2 (ja) 演算装置
US7728745B2 (en) Variable length code decoding apparatus and method with variation in timing of extracting bit string to be decoded depending on code word
KR100864363B1 (ko) 부호화 회로 및 디지털 신호 처리 회로
US20050256996A1 (en) Register read circuit using the remainders of modulo of a register number by the number of register sub-banks
EP0822481B1 (en) Constant divider
JP2006270330A (ja) 可変長符号復号回路
US20220091820A1 (en) Storage medium and operation device
JP3225763B2 (ja) 符号化装置および復号化装置
JP3600234B2 (ja) オーディオ装置
JP2008003663A (ja) データ処理装置、データ処理方法
JP3600233B2 (ja) 信号処理装置
JP4258350B2 (ja) 演算処理装置
JPH0750596A (ja) 符号化装置及び符号化方法
JP3521558B2 (ja) 伝送装置
JPH0722969A (ja) 演算装置
GB2456406A (en) Residue calculation in modulo system using 4:2 counter
JP2009278394A (ja) メッセージ送信回路及び半導体集積回路
JP2000252837A (ja) 可変長符号復号プロセッサ

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080422

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080516

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

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees