JP2001084242A - Variable operation processor - Google Patents

Variable operation processor

Info

Publication number
JP2001084242A
JP2001084242A JP25711199A JP25711199A JP2001084242A JP 2001084242 A JP2001084242 A JP 2001084242A JP 25711199 A JP25711199 A JP 25711199A JP 25711199 A JP25711199 A JP 25711199A JP 2001084242 A JP2001084242 A JP 2001084242A
Authority
JP
Japan
Prior art keywords
dct
variable
variable operation
inverse dct
selector
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
JP25711199A
Other languages
Japanese (ja)
Inventor
Motonobu Tonomura
元伸 外村
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP25711199A priority Critical patent/JP2001084242A/en
Publication of JP2001084242A publication Critical patent/JP2001084242A/en
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a variable operation processor, in which an operation part can be made in common and can be shared and which is suitable for efficiently executing multimedia-oriented mass operation by converting a product into the expression of a sum through the use of the addition theorem of trigonometric functions, so that only one multiplication occurs on an operation path in the operation of two-dimensional DCT/inverse DCT and adopting a system for directly executing calculation. SOLUTION: A selector 160 for switching a DCT and inverse DCT operation, the selector 165 of post-addition of inverse DCT or the pre-addition of the common coefficient terms of DCT, a programmable computing element 170, the latches 171 and 176 of an operation path instruction signal, the selector 172 of a variable operation path, a multiplier/adder 175 and a butterfly calculation block 180 are installed. The flow of the input/output data path of the programmable computing element 170 is controlled variably by the selector 172, and an operation element is constituted/controlled so that it can be shared as much as possible. The selection control information 171 and 176 are kept, using memories 151 and 152 which can be accessed at a high speed.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、演算プロセッサに
係わり、特にマルチメディア指向の大量演算を効率的に
実行するのに好適な可変演算プロセッサに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an arithmetic processor, and more particularly, to a variable arithmetic processor suitable for efficiently executing a large amount of multimedia-oriented arithmetic operations.

【0002】[0002]

【従来の技術】今日、大容量メディア情報を扱うマルチ
メディア処理において、記憶/転送能力を補うために、
データの圧縮/伸張技術は必須である。画像データの圧
縮/伸張にはMPEG−2(Moving Pictu
re Experts Group)などの規格技術が
用いられている。この圧縮/伸張技術の1つを担うの
が、離散コサイン変換( Discrete Cosi
ne Trans−form:DCTという)と呼ばれ
るものである。元画像データを30〜40分の1の情報
量に圧縮できる。このDCT計算には、500MHZ級
のプロセッサが必要と考えられている。すなわち、一般
にDCT計算ばかりにプロセッサ能力を費やせるわけで
はないので,DCT計算の割合を全体の4分の1程度と
考えた場合、4並列のSIMD(Single Ins
truction Stream−Multiple
Data Stream)方式でも,500MHZ級が
必要となる。このように,演算能力を高めるためにはS
IMD方式による並列演算が有効であるが、並列度を増
すためには、適度なビット幅に分割して演算する必要が
ある。そのとき問題になるのが、逆DCT計算(DCT
計算値を元のデータ値に戻す変換)における演算精度で
ある。
2. Description of the Related Art Today, in multimedia processing for handling large-capacity media information, in order to supplement storage / transfer capability,
Data compression / decompression technology is essential. MPEG-2 (Moving Picture) is used for compression / expansion of image data.
Standard techniques such as re Experts Group) are used. One of the compression / decompression techniques is a discrete cosine transform (Discrete Cosine Transform).
ne Trans-form: DCT). The original image data can be compressed to 30 to 40 times less information. It is considered that a 500 MHz class processor is required for this DCT calculation. That is, in general, it is not possible to use the processor capacity only for the DCT calculation. Therefore, when the ratio of the DCT calculation is considered to be about one quarter of the total, four parallel SIMDs (Single Ins.
fraction stream-multiple
The Data Stream) method also requires a 500 MHz class. Thus, in order to increase the computing capacity, S
Although the parallel operation by the IMD method is effective, it is necessary to divide the operation into an appropriate bit width in order to increase the degree of parallelism. The problem at that time is the inverse DCT calculation (DCT
This is the calculation accuracy in the conversion (returning the calculated value to the original data value).

【0003】画像のDCT/逆DCTは、MPEG−2
規格によれば2次元の8×8点のアルゴリズムであるた
めΣx(i,j)・cos(i)・cos(j)のかた
ちをしている。まず、1次元の8点DCT/逆DCTア
ルゴリズムに分解し、最初に行の8点について、DCT
/逆DCTを計算し、それらを転置して列の8点につい
てDCT/逆DCTを計算するというのが通常の方法で
ある。これを数式で表現すれば、y(j)=Σx(i,
j)・cos(i),x=Σy(j)・cos(j)。
DCT計算出力値は、規格では12ビットであるが、従
来の乗算器または積和演算器を用いて16ビット幅の固
定小数点で演算するとき、まず最初の積和演算結果にお
いて、(符号1ビット+15ビット固定)×(符号1ビ
ット+15ビット固定)→(符号2ビット+14ビット
固定)の固定小数演算となるので、1ビットの精度落ち
の問題が発生する。もう一度乗算を繰返すには、演算精
度はクリティカルなものとなる。結果の符号ビットが余
分に2ビットも取られるので、結果を左1ビットシフト
して、余分な符号の1ビットを捨て、(符号1ビット+
15ビット固定)に丸めて回復する方法が提案されてい
る[INTEL:US Patent; 5,754,
456; 5,754,457, Mar. 5, 1
996]。他の方法は、演算パス上に一度の乗算しか発
生しないように、2次元の8 8点DCT/逆DCT式
の2重積のかたちを1重積にして直接計算するアルゴリ
ズムを提案することである。三角関数の加法定理: 2
cos(i)cos(j)=cos(i+j)+cos
(i−j)を用いて直接計算すれば、2重積を避けて1
重積にすることができる。この方式を用いている最近の
ものに、Yuh−Ning Huang And Ia
−Ling Wu,A Refined Fast 2
−D Discrete Cosine Transf
orm Algorithm, IEEE Tran
s. On Signal, Processing,
Vol. 47, No. 3, Pp. 904−
907, March 1999 などがある。
[0003] The DCT / inverse DCT of an image is MPEG-2.
According to the standard, since the algorithm is a two-dimensional 8 × 8 point algorithm, it takes the form of Σx (i, j) · cos (i) · cos (j). First, it is decomposed into a one-dimensional eight-point DCT / inverse DCT algorithm.
It is common practice to calculate the inverse / DCT and transpose them to calculate the DCT / inverse DCT for the eight points in the column. If this is expressed by a mathematical expression, y (j) = Σx (i,
j) · cos (i), x = Σy (j) · cos (j).
Although the DCT calculation output value is 12 bits according to the standard, when a conventional multiplier or a product-sum operation unit is used to calculate a 16-bit fixed point, the first product-sum operation result (sign 1 bit) Since the fixed-point operation is (+15 bits fixed) × (sign 1 bit + fixed 15 bits) → (sign 2 bits + fixed 14 bits), the problem of 1-bit precision loss occurs. In order to repeat the multiplication again, the operation precision becomes critical. Since two extra sign bits are taken, the result is shifted one bit to the left, one bit of the extra sign is discarded, and (sign 1 bit +
A method has been proposed in which the data is recovered by rounding to 15 bits (fixed to 15 bits) [INTER: US Patent; 5,754,
456; 5,754,457, Mar. 5, 1
996]. Another method is to propose an algorithm for directly calculating a double product of a two-dimensional 88-point DCT / inverse DCT expression as a single product so that only one multiplication occurs on the operation path. is there. Trigonometric addition theorem: 2
cos (i) cos (j) = cos (i + j) + cos
By calculating directly using (ij), avoid double products and calculate 1
Can be intussusception. Recent ones using this method include the Yuh-Ning Hung And Ia
-Ling Wu, A Refined Fast 2
−D Discrete Cosine Transf
orm Algorithm, IEEE Tran
s. On Signal, Processing,
Vol. 47, no. 3, Pp. 904-
907, March 1999 and others.

【0004】[0004]

【発明が解決しようとする課題】左1ビット・シフトに
よる従来方法では演算精度の回復処理が必要なために、
処理が重くなり、演算速度を上げることが困難な場合が
ある。最近では、動作周波数が500〜1000MHZ
のプロセッサが要求されるようになり、1マシンサイク
ルあたりに費やせるゲート段数が減少しつつあるので、
処理の増加は避けなければならない。加法定理をもちい
る方法については、提案されている内容がほとんどが特
殊なDCTに関するものであり、さらに逆DCTを扱っ
たものはほとんど見当たらない。一般に、加法定理を用
いた2次元DCT/逆DCTの直接計算は複雑なためで
あろう。従来の直接計算法はSIMD演算方式には向い
ていなかったといわざるを得ない。
In the conventional method using left one-bit shift, it is necessary to perform a process of restoring the operation accuracy.
In some cases, the processing becomes heavy, and it is difficult to increase the calculation speed. Recently, the operating frequency is 500-1000MHZ
Processor is required, and the number of gate stages that can be spent per machine cycle is decreasing.
Increases in processing must be avoided. Regarding the method using the addition theorem, most of the proposed contents are related to a special DCT, and there is hardly any method that deals with the inverse DCT. In general, direct computation of two-dimensional DCT / inverse DCT using the addition theorem may be complicated. It must be said that the conventional direct calculation method was not suitable for the SIMD operation method.

【0005】本発明者は三角関数の周期性に着目し、あ
る種の演算の規則性が見つけられれば、効率よく実行す
る手段が提供できる可能性があることに思い至ったもの
である。
The present inventor has paid attention to the periodicity of the trigonometric function, and has come to realize that if a certain kind of arithmetic regularity is found, there is a possibility that a means for executing the operation efficiently can be provided.

【0006】[0006]

【課題を解決するための手段】本発明では、2次元DC
T/逆DCTの演算において、演算パス上に一度の乗算
しか発生しないように、三角関数の加法定理: 2co
s(i)cos(j)=cos(i+j)+cos(i
−j)を用いて、積を和の式に変換し、直接計算する方
式を採用する。そして、たとえば2次元DCT/逆DC
T演算を行う場合には、その三角関数演算の周期性に着
目し、規則性を見い出し、バタフライ演算部(加算と減
算を対で行うことをいう)と乗算部を可変演算シーケン
ス制御指令に基づいて効率良く組み合わせて可変演算を
行うものである。演算の規則性を見え出すことが出来れ
ば演算部を共通化、共有化する道がひらける。一実施例
によれば、バタフライ演算部と乗算部の演算パスを複数
項の計算で共有するために、レジスタ類に格納されたセ
レクタ指示信号によってセレクト制御することにより効
率良い演算手段を提供する。DCT演算ばかりでなく、
例えば、フーリエ変換、ハートレイ変換などでも利用で
きるように、セレクタ指示信号を格納するレジスタ類の
内容の入れ替え、乗算部においては係数類の入れ替え制
御手段も設けることができる。
According to the present invention, a two-dimensional DC is provided.
In the T / inverse DCT operation, the addition theorem of the trigonometric function is set so that only one multiplication occurs on the operation path:
s (i) cos (j) = cos (i + j) + cos (i
-J) is used to convert the product into a sum expression and directly calculate. Then, for example, two-dimensional DCT / inverse DC
When performing the T operation, focusing on the periodicity of the trigonometric function operation, finding regularity, the butterfly operation unit (which means performing addition and subtraction in pairs) and the multiplication unit are controlled based on the variable operation sequence control command. In this way, the variable operation is efficiently performed in combination. If the regularity of the operation can be revealed, the way to share and share the operation unit will be opened. According to the embodiment, in order to share the operation path of the butterfly operation unit and the operation unit of the multiplication unit in the calculation of a plurality of terms, an efficient operation unit is provided by performing select control using a selector instruction signal stored in registers. Not only DCT operation,
For example, in order to be able to use the Fourier transform, the Hartley transform, and the like, the contents of the registers for storing the selector instruction signal may be replaced, and the multiplier may be provided with a coefficient replacement control means.

【0007】[0007]

【発明の実施の形態】図1は、従来構成のマイクロプロ
セッサ上に、可変構造演算器を載せた本発明の可変演算
プロセッサ100を示す。従来のマイクロプロセッサ
は、CPUコア110、メモリ・データバス120、制
御部130、命令キャッシュ131、データ・キャッシ
ュ133、メモリ制御部132、レジスタ・ファイル1
34、演算器類135、周辺モジュール回路136など
で構成されている。
FIG. 1 shows a variable operation processor 100 according to the present invention in which a variable structure operation unit is mounted on a conventional microprocessor. A conventional microprocessor includes a CPU core 110, a memory data bus 120, a control unit 130, an instruction cache 131, a data cache 133, a memory control unit 132, a register file 1
34, an operation unit 135, a peripheral module circuit 136, and the like.

【0008】本発明の一実施例では、DCT/逆DCT
などの負荷が重い処理を効率良く実行するために、可変
構造演算器に工夫がなされている。図において160は
DCTと逆DCT演算を切り替えるセレクタ、165は逆
DCTの後加算あるいはDCTの共通係数項同士の前加
算のセレクタ、170はプログラマブル演算器、17
1,176は演算パス指示信号のラッチ、172は可変
演算パスのセレクタ、175は乗加算器、180はバタ
フライ演算ブロックをしめす。バタフライ演算とは加算
と減算が対になって行われる演算要素をいうものであ
り、プログラマブル演算器170の重要な演算要素を構
成する。その一例を第10図の1020,1040,1
050に示す。プログラマブル演算器170の入出力デ
ータパスのながれはセレクタ172によって、可変的に
制御され、演算要素はできるだけ共用するように構成さ
れ、制御される。セレクト制御情報171、176は、
高速アクセスできるメモリ151、152を用いて保持
する。そして、シーケンサ140によって、演算器17
0、175、180の実行を制御する。
In one embodiment of the present invention, DCT / inverse DCT
In order to efficiently execute processing with a heavy load such as, for example, a variable structure arithmetic unit has been devised. In the figure, 160 is a selector for switching between DCT and inverse DCT operation, 165 is a selector for post-addition of inverse DCT or pre-addition of common coefficient terms of DCT, 170 is a programmable operator, 17
Reference numerals 1 and 176 denote latches of operation path instruction signals, 172 denotes a selector of a variable operation path, 175 denotes a multiplier / adder, and 180 denotes a butterfly operation block. The butterfly operation is an operation element in which addition and subtraction are performed as a pair, and constitutes an important operation element of the programmable operation unit 170. One example is 1020, 1040, 1 in FIG.
050. The flow of the input / output data path of the programmable arithmetic unit 170 is variably controlled by the selector 172, and the arithmetic elements are configured and controlled to share as much as possible. The select control information 171 and 176 are
The data is held using the memories 151 and 152 that can be accessed at high speed. Then, the arithmetic unit 17 is output by the sequencer 140.
0, 175 and 180 are controlled.

【0009】本発明の可変演算プロセッサ100上に実
現する2次元DCT/逆DCT演算のアルゴリズムにつ
いて説明する。まず、2次元8×8 DCT/逆DCT
は、本質を損なわない程度に説明しやすいように以下の
ように表現する。まず、DCTは
The algorithm of the two-dimensional DCT / inverse DCT operation realized on the variable operation processor 100 of the present invention will be described. First, two-dimensional 8 × 8 DCT / inverse DCT
Is expressed as follows so that it can be easily explained without impairing the essence. First, DCT

【0010】[0010]

【数1】 (Equation 1)

【0011】そして、逆DCTはAnd the inverse DCT is

【0012】[0012]

【数2】 (Equation 2)

【0013】ここで,c0=1/√2 かつcn=1
(n≠0)。
Here, c 0 = 1 / √2 And c n = 1
(N ≠ 0).

【0014】次に、数1、数2には周期性があることに
着目し
Next, note that Equations 1 and 2 have periodicity.

【0015】[0015]

【数3】 (Equation 3)

【0016】のように入力データ列の並べ替えを行う
と、
When the input data sequence is rearranged as shown in FIG.

【0017】[0017]

【数4】 (Equation 4)

【0018】[0018]

【数5】 (Equation 5)

【0019】と書き換えることができる。It can be rewritten as

【0020】さて、三角関数の加法定理を用いれば、By using the addition theorem of trigonometric functions,

【0021】[0021]

【数6】 (Equation 6)

【0022】であるから、三角関数の指数部分のkに着
目して、
Therefore, paying attention to k in the exponent part of the trigonometric function,

【0023】[0023]

【数7】 (Equation 7)

【0024】nに着目して、Focusing on n,

【0025】[0025]

【数8】 (Equation 8)

【0026】と置いて、DCT: g(k1, k2)と
逆DCT: G(n1, n2)の値をそれぞれ求め図2
と図3に示す。同一枠内の上段は数7、数8において括
弧内の左項,下段は右項の値をそれぞれ示す。図3はc
osine関数の周期性を用いて簡略化している。g
(−(k1, k2))=−g(k1, k2)および G
(n1, n2)=−G([n1, n2])を意味する。
また、#0はcosineの値がゼロ(cos(i)=
0)であることを示している。0は、g(0)の表記で
あるから、cos(0)=1を意味するので混同しては
いけない。
Then, the values of DCT: g (k 1 , k 2 ) and inverse DCT: G (n 1 , n 2 ) are obtained, respectively, as shown in FIG.
FIG. The upper part in the same frame shows the value of the left term in parentheses in Equations 7 and 8, and the lower part shows the value of the right term, respectively. FIG. 3 shows c
It is simplified by using the periodicity of the “osine” function. g
(− (K 1 , k 2 )) = − g (k 1 , k 2 ) and G
(N 1 , n 2 ) = − G ([n 1 , n 2 ]).
In # 0, the value of cosine is zero (cos (i) =
0). Since 0 is a notation of g (0), it means cos (0) = 1, so that it should not be confused.

【0027】まず、図2でDCTを簡単に考察する。図
2(200)において、4分割した左上4分の1の部分
201が202、203、204で符号を除いて繰り返
していることがわかる。この左上4分の1の部分201
についても、さらに4分割してみると、k1とk2の一方
を固定した場合は、固定していないkが偶数の場合は、
例えば、((13k1−5k2)−(5k1−5k2))/
16=8k1/16であるから、符号を除いてcosi
neの値を繰り返していることがわかる。また、k1
2の両方を動かした場合は、例えば、((13k1−5
2)−(5k1−13k2))/16=8(k1+k2
/16であるから、(k1+k2)が偶数ならば符号を除
いて対角方向にcosineの値を繰り返していること
がわかる。
First, the DCT will be briefly considered with reference to FIG. In FIG. 2 (200), it can be seen that the upper left quarter part 201 divided into four parts is repeated at 202, 203 and 204 except for the sign. This upper left quarter part 201
For even, when we further divided into four, the case of fixing one of k 1 and k 2, if k not fixed is even,
For example, ((13k 1 -5k 2) - (5k 1 -5k 2)) /
16 = because it is 8k 1/16, cosi except the sign
It can be seen that the value of ne is repeated. Also, if you move both k 1 and k 2, for example, ((13k 1 -5
k 2) - (5k 1 -13k 2)) / 16 = 8 (k 1 + k 2)
Since it is / 16, if (k 1 + k 2 ) is an even number, it is understood that the value of cosine is repeated in the diagonal direction except for the sign.

【0028】次に、逆DCTについて、図3の中で同じ
値をもつ項を強調して見やすく記述すると、図4(40
0)が得られる。このように、逆DCTはDCTに比べ
て複雑であるが、ある種の対称性があることがわかる。
すなわち、図4の左上4分の1の部分401が回転対称
になっている。G(n1, n2)の実際の値を求めて、
全体図のうちの左上4分の1について図5に示す。残り
(左下、右上、右下4分の1)全体の図は、図6に示す
ように、図4の基本パターン400の符号を変えた組み
合わせになる。組み合わせは、601、602、60
3、604の4種類がある。従って、まず図4の計算を
求めればよいことになる。この段階を前加算と呼ぶこと
にする。
Next, for the inverse DCT, terms having the same value in FIG.
0) is obtained. Thus, it can be seen that inverse DCT is more complicated than DCT, but has some kind of symmetry.
That is, the upper left quarter portion 401 in FIG. 4 is rotationally symmetric. Find the actual value of G (n 1 , n 2 )
FIG. 5 shows the upper left quarter of the overall view. As shown in FIG. 6, the remaining figures (lower left, upper right, lower right quarter) are combinations in which the signs of the basic pattern 400 in FIG. 4 are changed. The combinations are 601, 602, 60
3, 604. Therefore, the calculation shown in FIG. This stage is called pre-addition.

【0029】逆DCTの図5に対応するDCTの値をも
とめて図7に示す。さて、ここでこれまでの説明の理解
を助けるために、DCTと逆DCTの計算の違いについ
てもう一度まとめて整理する。DCTは8 8各ブロッ
ク内で基本パターン200が4分割されて繰り返される
のに対して、逆DCTは8×8ブロック全体で4分割さ
れ、基本パターン400の符号を組み合わせた各ブロッ
クが4種類出現する。さらに、DCTでは、奇数項g
(2k+1)と偶数項g(2k)のブロックに分割され
るのに対して、逆DCTでは、すべての項g(k)が出
現する。DCTと逆DCTの演算ブロックの共通化をは
かるためには、このような違いを考慮しておく必要があ
る。そのために、まず逆DCTの演算手順と演算ブロッ
クの構成を明らかにしてからDCTについて考えること
にする。
FIG. 7 shows the DCT values corresponding to the inverse DCT shown in FIG. Now, in order to help understand the above description, the difference between the DCT and the inverse DCT calculation will be summarized once again. In the DCT, the basic pattern 200 is divided into four in each block and repeated, while the inverse DCT is divided into four in the entire 8 × 8 block, and four types of blocks each obtained by combining the codes of the basic pattern 400 appear. I do. Further, in DCT, the odd term g
While the block is divided into (2k + 1) and even-numbered term g (2k) blocks, all the terms g (k) appear in the inverse DCT. It is necessary to consider such a difference in order to share the operation blocks of the DCT and the inverse DCT. For that purpose, first, the operation procedure of the inverse DCT and the configuration of the operation block will be clarified, and then the DCT will be considered.

【0030】そこで、逆DCTについて、共通項をまと
めて効率良く前加算170するために、図8と図9に示
すように、画素位置(i, j)のデータをpijによ
って記述して、g(k)別に前加算する手順を示すと、
いわゆる加算と減算が対になって行われるバタフライ演
算で求められることがわかる。図ではほぼ行単位にコン
マ(,)で1ブロック分を区切ってあり、各行の位置が
同じブロックの演算に対応する。このような画素データ
間の演算による前加算を演算器170によってあらかじ
め行い、その結果とg(k)とを乗加算器175によっ
て、1度だけ乗算し、すべてのkについての結果を加算
する。これら乗加算結果175を図6に示す繰返しパタ
ーンの符号関係によって組み合わせて4種類1090、
1091、1092、1093計算するようにする。こ
れはバタフライ演算ブロック180によってなされ、後
加算と呼ぶこととする。
Therefore, in order to collectively perform the common term efficiently and pre-add 170 with respect to the inverse DCT, the data at the pixel position (i, j) is described by pij as shown in FIGS. (K) If you show the procedure for pre-addition separately,
It can be seen that the so-called addition and subtraction are obtained by a butterfly operation performed as a pair. In the figure, one block is delimited by a comma (,) almost every line, and the position of each line corresponds to the operation of the same block. Such pre-addition by calculation between pixel data is performed in advance by the arithmetic unit 170, and the result is multiplied by g (k) only once by the multiplication / addition unit 175, and the results for all k are added. These multiplication and addition results 175 are combined according to the sign relationship of the repeating pattern shown in FIG.
1091, 1092 and 1093 are calculated. This is performed by the butterfly operation block 180 and will be referred to as post-addition.

【0031】図8について念のためにさらに詳しく説明
しよう。g(1)の1行目の式
FIG. 8 will be described in more detail just in case. Expression in the first line of g (1)

【0032】[0032]

【数9】 (Equation 9)

【0033】は、以下の2つの式をまとめた表記であ
る。
Is a notation in which the following two expressions are put together.

【0034】[0034]

【数10】 (Equation 10)

【0035】[0035]

【数11】 [Equation 11]

【0036】このように、他の項も同じように表記して
いる。また、図9についても、
As described above, the other terms are similarly described. Also, regarding FIG.

【0037】[0037]

【数12】 (Equation 12)

【0038】などは、以下の2つの式をまとめた表記で
ある。
Are notations in which the following two equations are summarized.

【0039】[0039]

【数13】 (Equation 13)

【0040】[0040]

【数14】 [Equation 14]

【0041】図10と図11には、図8で示される演算
手順に従って演算パス1030、1031、1060、
1061、1062をセレクト制御してバタフライ演算
1020、1050し、それらの結果と偶数項g(2
k): 1081、1082、1083、奇数項g(2
k+1): 1071、1072、1073、1074
の乗算を行うために、任意のデータ・パスをセレクトで
きる構成を示す。乗算係数g(k)は、メモリ152に
格納してある。
FIGS. 10 and 11 show operation paths 1030, 1031 and 1060 according to the operation procedure shown in FIG.
1061 and 1062 are selectively controlled to perform butterfly operations 1020 and 1050, and the results thereof and the even term g (2
k): 1081, 1082, 1083, odd-numbered term g (2
k + 1): 1071, 1072, 1073, 1074
In order to perform the multiplication, an arbitrary data path can be selected. The multiplication coefficient g (k) is stored in the memory 152.

【0042】図12と図13にはDCT演算の手順が示
してあり、図14と図15がそれらの演算パスを制御す
る構成である。図14と図15は図8と図9と同じ構造
になっていることから、両者を共通化できることは明白
であり、本発明実施例の重要な特徴ので一つである。
FIGS. 12 and 13 show the procedure of the DCT operation, and FIGS. 14 and 15 show a configuration for controlling those operation paths. Since FIGS. 14 and 15 have the same structure as FIGS. 8 and 9, it is clear that both can be shared, and this is one of the important features of the embodiment of the present invention.

【0043】DCTと逆DCTで共通する部分の説明を
したが、本質的に異なる部分について、ここで、もう一
度検討してみよう。DCTでは、図2にしめすように、
同じ係数をもつ4項同士を最初に加算する。一方、逆D
CTでは、乗算後に基本パターンの4種類の組み合わせ
1090、1091、1092、1093の加算をす
る。いずれも2段の加算を伴うために、これらの演算を
共通にできる。図16は入口(DCT)または出口(逆
DCT)においてセレクタ165により選択し、2段の
加算180を実行する部分を示す実施例図である。図1
7はDCTあるいは逆DCTのどちらの演算をするかを
選択するセレクタ160の実施例図である。
Having described the parts common to the DCT and the inverse DCT, the parts that are essentially different will now be considered again. In DCT, as shown in FIG.
Four terms having the same coefficient are added first. On the other hand, reverse D
In the CT, after the multiplication, four types of combinations 1090, 1091, 1092, and 1093 of the basic pattern are added. Since each of these operations involves two stages of addition, these operations can be shared. FIG. 16 is an embodiment diagram showing a portion which is selected by the selector 165 at the entrance (DCT) or exit (inverse DCT) and executes two-stage addition 180. FIG.
FIG. 7 shows an embodiment of the selector 160 for selecting whether to perform the DCT operation or the inverse DCT operation.

【0044】以上で、DCT/逆DCTの演算手順とそ
の演算器構成について説明したが、さらに、図1の構成
について補足説明する。図1において、演算パスを制御
するために設けられるセレクタ172は、図10(図1
1、14、15においても同様)においてはセレクタ1
030−1031,セレクタ1060−1061に対応
する。これらセレクタ172を制御するためには、制御
信号列を高速アクセス・メモリ151に記憶しておき、
シーケンス・プログラム141、高速アクセス・メモリ
のアドレス・デコーダ142からなるシーケンサ140
によって制御信号を供給する。
The above has described the DCT / inverse DCT calculation procedure and its arithmetic unit configuration. The configuration of FIG. 1 will be additionally described. In FIG. 1, the selector 172 provided for controlling the operation path is the same as that shown in FIG.
1, 14, and 15).
030-1031, and selectors 1060-1061. To control these selectors 172, a control signal sequence is stored in the high-speed access memory 151, and
Sequencer 140 comprising sequence program 141 and address decoder 142 of high-speed access memory
Supplies a control signal.

【0045】本発明の可変演算プロセッサ100におい
て、DCT以外の例えば、フーリエ変換、ハートレイ変
換などを可変演算するには、メモリ・バス120を介し
て、高速アクセス・メモリ151、152の内容を入れ
替え、またシーケンサ140のプログラム141も入れ
替えることによって実現できる。
In the variable operation processor 100 of the present invention, the contents of the high-speed access memories 151 and 152 are exchanged via the memory bus 120 to perform variable operations other than DCT, for example, Fourier transform and Hartley transform. Further, this can be realized by exchanging the program 141 of the sequencer 140.

【0046】図18は、高速アクセス・メモリ151、
152の回路要素として用いることのできるフリップ・
フロップ回路1800を示している。電源1801,1
802とアース1805,1806の間にはそれぞれ一
対のトランジスタが接続されそのゲートが交差接続され
ている。1830、1831はそれぞれ入力かつ出力端
子、1803,1804はそれぞれゲートである。回路
素子1851、1852はスイッチング素子であり、リ
ーク電流が無視できない場合には、それを押さえるため
の制御素子である。本回路の詳細は出願中のPCT/JP99
/02505、「記憶回路」、発明者:橘大 に記載さ
れているので説明を援用する。
FIG. 18 shows a high-speed access memory 151,
Flip that can be used as a circuit element 152
The flop circuit 1800 is shown. Power supply 1801,1
A pair of transistors are connected between 802 and grounds 1805 and 1806, respectively, and their gates are cross-connected. 1830 and 1831 are input and output terminals, respectively, and 1803 and 1804 are gates, respectively. The circuit elements 1851 and 1852 are switching elements, and are control elements for suppressing the leakage current when it cannot be ignored. For details of this circuit, refer to PCT / JP99
/ 02505, "Memory circuit", inventor: Tachibana University, the description of which is incorporated herein.

【0047】[0047]

【発明の効果】以上説明した可変演算プロセッサは、大
量のバタフライ演算と乗算を伴うDCTなどを含むフー
リエ関連の変換などにおいて幅広くフレキシブルに対応
できかつ高速な演算であるため効果的である。また、プ
ログラマブルな可変構造によって複数個の演算ブロック
が共通に利用できるため、コンパクトなハードウェアに
よって実現可能である。
The variable operation processor described above is effective because it is a high-speed operation that can be widely and flexibly applied to Fourier-related transformations including DCT or the like involving a large amount of butterfly operations and multiplications. Further, since a plurality of operation blocks can be commonly used by a programmable variable structure, it can be realized by compact hardware.

【図面の簡単な説明】[Brief description of the drawings]

【図1】プログラマブルな可変構造の演算器で構成され
る可変演算プロセッサ。
FIG. 1 is a variable operation processor including a programmable variable-structure operation unit.

【図2】2次元8×8DCTのg(k1, k2)の値を
示す図。
FIG. 2 is a diagram showing values of g (k 1 , k 2 ) of a two-dimensional 8 × 8 DCT.

【図3】2次元8×8逆DCTのg(n1, n2)の値
を示す図。
FIG. 3 is a diagram showing a value of g (n 1 , n 2 ) of a two-dimensional 8 × 8 inverse DCT.

【図4】2次元8×8逆DCTの画素間の共通係数関係
を強調して記述したg(n1,n2)の値を示す図。
FIG. 4 is a diagram showing values of g (n 1 , n 2 ) in which a common coefficient relationship between pixels of two-dimensional 8 × 8 inverse DCT is emphasized and described.

【図5】2次元8×8逆DCTのg(n1, n2)の具
体値を示す図(全体図のうちの左上4分の1の図)。
FIG. 5 is a diagram showing a specific value of g (n 1 , n 2 ) of the two-dimensional 8 × 8 inverse DCT (a diagram of the upper left quarter of the entire diagram).

【図6】2次元8×8逆DCTのg(n1, n2)の全
体図において4分割された基本パターンの符号を示す
図。
FIG. 6 is a diagram showing signs of basic patterns divided into four in an overall view of g (n 1 , n 2 ) of the two-dimensional 8 × 8 inverse DCT.

【図7】2次元8×8DCTのg(k1, k2)の具体
値を示す図(全体図であるが、各ブロックは左上4分の
1のみの図)。
FIG. 7 is a diagram showing specific values of g (k 1 , k 2 ) of the two-dimensional 8 × 8 DCT (the whole diagram, but each block shows only the upper left quarter).

【図8】2次元8×8逆DCTの奇数項の演算手順を示
す図。
FIG. 8 is a diagram showing a calculation procedure of an odd term of the two-dimensional 8 × 8 inverse DCT.

【図9】2次元8×8逆DCTの偶数項の演算手順を示
す図。
FIG. 9 is a diagram showing a calculation procedure of an even-numbered term of a two-dimensional 8 × 8 inverse DCT.

【図10】2次元8×8逆DCTの演算パスの制御ブロ
ックを示す図(その1)。
FIG. 10 is a diagram illustrating a control block of a two-dimensional 8 × 8 inverse DCT operation path (part 1).

【図11】2次元8×8逆DCTの演算パスの制御ブロ
ックを示す図(その2)。
FIG. 11 is a diagram illustrating a control block of an operation path of two-dimensional 8 × 8 inverse DCT (part 2).

【図12】2次元8×8DCTの奇数項の演算手順を示
す図。
FIG. 12 is a diagram showing a calculation procedure of an odd term of a two-dimensional 8 × 8 DCT.

【図13】2次元8×8DCTの偶数項の演算手順を示
す図。
FIG. 13 is a diagram showing a calculation procedure of an even-numbered term of a two-dimensional 8 × 8 DCT.

【図14】2次元8×8DCTの演算パスの制御ブロッ
クを示す図(その1)。
FIG. 14 is a diagram illustrating a control block of a two-dimensional 8 × 8 DCT operation path (part 1).

【図15】2次元8×8DCTの演算パスの制御ブロッ
クを示す図(その2)。
FIG. 15 is a diagram illustrating a control block of a two-dimensional 8 × 8 DCT operation path (part 2).

【図16】逆DCTの後加算あるいはDCTのはじめの
共通係数項同士の加算を選択するセレクタおよび演算回
路。
FIG. 16 shows a selector and an arithmetic circuit for selecting post-addition of inverse DCT or addition of common coefficient terms at the beginning of DCT.

【図17】逆DCTあるいはDCT演算するかのセレク
タ。
FIG. 17 is a selector for performing inverse DCT or DCT operation.

【図18】高速アクセス・メモリ回路に用いるフリップ
・フロップ回路の構造図。
FIG. 18 is a structural diagram of a flip-flop circuit used for a high-speed access memory circuit.

【符号の説明】[Explanation of symbols]

100・・・可変演算プロセッサ、 110・・・CP
Uコア、 120・・・メモリ・バス、 130・・・
プロセッサの制御ブロック、 131・・・命令キャッ
シュ、 132・・・メモリ制御ブロック、 133・
・・データ・キャッシュ、 134・・・レジスタ・フ
ァイル、 135・・・演算器類、 136・・・周辺
モジュール・ブロック、 140・・・可変構造演算器
のシーケンサ、 141・・・シーケンス・プログラ
ム、 142、143・・・高速アクセス・メモリのア
ドレス・デコーダ、 151、152・・・高速アクセ
ス・メモリ、 160・・・DCTと逆DCT演算のセ
レクタ、 165・・・逆DCTの後加算あるいはDC
Tの共通係数項同士の前加算のセレクタ、 170・・
・ プログラマブル演算器、 171、176・・・演
算パス指示信号のラッチ、 172・・・可変演算パス
のセレクタ、 180・・・バタフライ演算ブロック、
1020、1040、1050・・・バタフライ演算
器、 1030、1031、1060、1061、10
62・・・セレクタ、 1071、1072、107
3、1074、1080、1081、1082、108
3・・・乗算器、 1070、1080・・・乗加算
器、 1800・・・フリップ・フロップ回路。
100 ... variable operation processor, 110 ... CP
U core, 120 ... memory bus, 130 ...
Processor control block 131 instruction cache 132 memory control block 133
.. Data cache, 134: register file, 135: arithmetic unit, 136: peripheral module block, 140: sequencer of variable structure arithmetic unit, 141: sequence program, 142, 143: Address decoder of high-speed access memory 151, 152: High-speed access memory 160: Selector of DCT and inverse DCT operation 165: Post-addition or DC of inverse DCT
A selector for pre-addition between common coefficient terms of T, 170 ...
· Programmable arithmetic units, 171 and 176 ··· Latch of operation path instruction signal · 172 ··· Selector of variable operation path · 180 ··· Butterfly operation block
1020, 1040, 1050 ... butterfly operation unit, 1030, 1031, 1060, 1061, 10
62 ... selector 1071, 1072, 107
3, 1074, 1080, 1081, 1082, 108
3 Multiplier, 1070, 1080 Multiplier / Adder, 1800 Flip-flop circuit.

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 加算と減算を選択できる加算器の対の複
数個、乗算器の複数個、上記加算器の入力側に設けられ
た可変選択可能な第1の複数個のパス、および上記加算
器と上記乗算器の間に設けられた可変選択可能な第2の
複数個のパスを有し、可変演算シーケンス制御指令に基
づいて上記第1のパス群および第2のパス群を選択制御
してデータの可変演算を行うことを特徴とする可変演算
プロセッサ。
1. A plurality of pairs of adders capable of selecting addition and subtraction, a plurality of multipliers, a first plurality of variably selectable paths provided at an input side of the adder, and the addition. A plurality of variably selectable paths provided between a multiplier and the multiplier, for selectively controlling the first path group and the second path group based on a variable operation sequence control command. A variable operation processor for performing variable operation of data by using the variable operation processor.
【請求項2】 2次元以上のDCT演算を実行する特許
請求項1の可変演算プロセッサ。
2. The variable operation processor according to claim 1, wherein the variable operation processor executes a DCT operation of two or more dimensions.
【請求項3】 2次元以上の逆DCT演算を実行する特
許請求項1の可変演算プロセッサ。
3. The variable operation processor according to claim 1, wherein said variable operation processor executes an inverse DCT operation of two or more dimensions.
【請求項4】 2次元以上のDCT演算および逆DCT
演算を実行する特許請求項1の可変演算プロセッサ
4. DCT operation and inverse DCT of two or more dimensions
2. The variable operation processor according to claim 1, wherein the variable operation processor executes an operation.
【請求項5】 2次元以上のフーリエ関連および逆フー
リエ関連演算を実行する特許請求項1の可変演算プロセ
ッサ
5. The variable operation processor according to claim 1, wherein the processor performs two-dimensional or more Fourier-related and inverse Fourier-related operations.
【請求項6】 低リーク電流スイッチング素子を上記可
変辺演算シーケンス制御指令を記憶する高速アクセス。
メモリ回路に用いたことを特徴とする特許請求項1の可
変演算プロセッサ。
6. A high-speed access to a low-leakage current switching element for storing the variable side operation sequence control command.
2. The variable operation processor according to claim 1, wherein the variable operation processor is used in a memory circuit.
JP25711199A 1999-09-10 1999-09-10 Variable operation processor Pending JP2001084242A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25711199A JP2001084242A (en) 1999-09-10 1999-09-10 Variable operation processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25711199A JP2001084242A (en) 1999-09-10 1999-09-10 Variable operation processor

Publications (1)

Publication Number Publication Date
JP2001084242A true JP2001084242A (en) 2001-03-30

Family

ID=17301896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25711199A Pending JP2001084242A (en) 1999-09-10 1999-09-10 Variable operation processor

Country Status (1)

Country Link
JP (1) JP2001084242A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7283628B2 (en) 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7412470B2 (en) 2003-09-11 2008-08-12 Matsushita Electric Industrial Co., Ltd. Arithmetic processing apparatus
US7508937B2 (en) 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
WO2009150949A1 (en) 2008-06-10 2009-12-17 独立行政法人科学技術振興機構 Filter
US7895253B2 (en) 2001-11-30 2011-02-22 Analog Devices, Inc. Compound Galois field engine and Galois field divider and square root engine and method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7283628B2 (en) 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7895253B2 (en) 2001-11-30 2011-02-22 Analog Devices, Inc. Compound Galois field engine and Galois field divider and square root engine and method
US7508937B2 (en) 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US7412470B2 (en) 2003-09-11 2008-08-12 Matsushita Electric Industrial Co., Ltd. Arithmetic processing apparatus
WO2009150949A1 (en) 2008-06-10 2009-12-17 独立行政法人科学技術振興機構 Filter

Similar Documents

Publication Publication Date Title
US7774400B2 (en) Method and system for performing calculation operations and a device
US6349318B1 (en) Arithmetic processor for finite field and module integer arithmetic operations
US7536430B2 (en) Method and system for performing calculation operations and a device
US8024394B2 (en) Dual mode floating point multiply accumulate unit
US7725520B2 (en) Processor
JP3940542B2 (en) Data processor and data processing system
EP3093757B1 (en) Multi-dimensional sliding window operation for a vector processor
Lin et al. Scalable montgomery modular multiplication architecture with low-latency and low-memory bandwidth requirement
US6675286B1 (en) Multimedia instruction set for wide data paths
CN113626759A (en) Summing high bit widths using a low bit width dot product engine
Tsmots et al. Design of the processors for fast cosine and sine Fourier transforms
JP2001084242A (en) Variable operation processor
Managuli et al. Mapping of two-dimensional convolution on very long instruction word media processors for real-time performance
JPH06149861A (en) Dct and inverse dct computing device and method
EP1936492A1 (en) SIMD processor with reduction unit
WO2008077803A1 (en) Simd processor with reduction unit
JP3654622B2 (en) DCT arithmetic device and IDCT arithmetic device
CN113626760A (en) Apparatus and method for flexible summation of matrix values
JPH09153030A (en) Two-dimensional discrete cosine transformation circuit
Schmidt Techniques for algorithm design on the instruction systolic array
JP2004070524A5 (en)
WO2020146286A1 (en) Sign-based partial reduction of modular operations in arithmetic logic units
JP2001092655A (en) Multi-media multiplier and adder for compensating arithmetic precision
JP2000137703A (en) Discrete cosine converting device and reverse discrete cosine converting device
JPH1173409A (en) Device and method for computing product sum