JP2006215611A - 演算装置 - Google Patents
演算装置 Download PDFInfo
- Publication number
- JP2006215611A JP2006215611A JP2005024910A JP2005024910A JP2006215611A JP 2006215611 A JP2006215611 A JP 2006215611A JP 2005024910 A JP2005024910 A JP 2005024910A JP 2005024910 A JP2005024910 A JP 2005024910A JP 2006215611 A JP2006215611 A JP 2006215611A
- Authority
- JP
- Japan
- Prior art keywords
- source data
- address
- control signal
- arithmetic unit
- data
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 40
- 230000015654 memory Effects 0.000 claims description 60
- 238000009825 accumulation Methods 0.000 claims description 11
- 238000000034 method Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 26
- 102100031699 Choline transporter-like protein 1 Human genes 0.000 description 9
- 101000940912 Homo sapiens Choline transporter-like protein 1 Proteins 0.000 description 9
- 230000004044 response Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 4
- 102100039497 Choline transporter-like protein 3 Human genes 0.000 description 3
- 101000889279 Homo sapiens Choline transporter-like protein 3 Proteins 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 102100035954 Choline transporter-like protein 2 Human genes 0.000 description 2
- 101000948115 Homo sapiens Choline transporter-like protein 2 Proteins 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F21—LIGHTING
- F21V—FUNCTIONAL FEATURES OR DETAILS OF LIGHTING DEVICES OR SYSTEMS THEREOF; STRUCTURAL COMBINATIONS OF LIGHTING DEVICES WITH OTHER ARTICLES, NOT OTHERWISE PROVIDED FOR
- F21V17/00—Fastening of component parts of lighting devices, e.g. shades, globes, refractors, reflectors, filters, screens, grids or protective cages
- F21V17/10—Fastening of component parts of lighting devices, e.g. shades, globes, refractors, reflectors, filters, screens, grids or protective cages characterised by specific fastening means or way of fastening
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F21—LIGHTING
- F21K—NON-ELECTRIC LIGHT SOURCES USING LUMINESCENCE; LIGHT SOURCES USING ELECTROCHEMILUMINESCENCE; LIGHT SOURCES USING CHARGES OF COMBUSTIBLE MATERIAL; LIGHT SOURCES USING SEMICONDUCTOR DEVICES AS LIGHT-GENERATING ELEMENTS; LIGHT SOURCES NOT OTHERWISE PROVIDED FOR
- F21K9/00—Light sources using semiconductor devices as light-generating elements, e.g. using light-emitting diodes [LED] or lasers
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F21—LIGHTING
- F21V—FUNCTIONAL FEATURES OR DETAILS OF LIGHTING DEVICES OR SYSTEMS THEREOF; STRUCTURAL COMBINATIONS OF LIGHTING DEVICES WITH OTHER ARTICLES, NOT OTHERWISE PROVIDED FOR
- F21V21/00—Supporting, suspending, or attaching arrangements for lighting devices; Hand grips
- F21V21/02—Wall, ceiling, or floor bases; Fixing pendants or arms to the bases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F21—LIGHTING
- F21Y—INDEXING SCHEME ASSOCIATED WITH SUBCLASSES F21K, F21L, F21S and F21V, RELATING TO THE FORM OR THE KIND OF THE LIGHT SOURCES OR OF THE COLOUR OF THE LIGHT EMITTED
- F21Y2115/00—Light-generating elements of semiconductor light sources
- F21Y2115/10—Light-emitting diodes [LED]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Optics & Photonics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
- Memory System (AREA)
Abstract
【解決課題】第1のソースデータDT91を生成し、制御信号INA CTL1と共に出力するアドレス生成装置92と、第2のソースデータDT92を生成し、制御信号INB CTL1−3と共に出力するアドレス生成装置93と、第1の生成装置による第1のソースデータと、第2の生成装置による第2のソースデータに対して制御信号に応じて演算種を切り替えて所定の演算を行い、演算結果を一時保持するレジスタを有する演算器95と、を有し、レジスタの保持データの読み出し、書き込みは、制御信号により制御される。
【選択図】図18
Description
また、内部のパイプライン化によりメモリ→演算→メモリのレイテンシが大きいシステムでは場合によってはデータが揃うまで待機する動作を行わなければならず効率の悪い処理系になっていた。
第2の生成装置によりメモリから読み出されたデータと共に制御信号を演算器に渡し、これにより演算が行われ、その結果がたとえばメモリに書き込まれるという一連の処理が実現される。
演算器において、演算結果は、制御信号の制御の下に保持回路(レジスタ)に書き込まれ、制御信号の制御の下に所定のタイミングで読み出される。
また、条件を満たせば途中で処理を中断するような場合の無駄な処理を抑止でき、また、転送効率の向上を図れる利点がある。
また、デュアルポートメモリを使う必要がないことからシステムコストを抑えることが可能で、さらには効率的な処理が可能なことから処理時間と消費電力を削減することが可能であるという利点がある。
図1は、本発明に係るデータフロー型演算装置の第1の実施形態を示す構成図である。
以下の例は配列のインデックスが分岐条件となるC言語によるプログラム例である。
for (i=0; i<256; i++) {
if (i > 254) out[i] = a[i] - b[i];
else out[i] = a[i] + b[i];
}
これはある特定のインデックス条件を満たす場合のみ演算が加算から減算に切り替わるものであるが、演算器自体は配列のインデックス、すなわちメモリのアドレスを知らないため演算を切り替える制御はアドレスを発行する側、つまりはアドレス生成装置13が制御信号CTLOPを生成することになる。
図3は、本発明に係るデータフロー型演算装置の第2の実施形態を示す構成図である。
以下の例は配列のインデックスが分岐条件となるC言語によるプログラム例である。
ここでは、別の例としてデータの値が分岐条件となるプログラム例を以下に示す。
for (i=0; i<256; i++) {
if (a[i] > 0) out[i] = a[i] + b[i];
else out[i] = a[i];
}
この例は、演算器の入力となる配列の値により演算の種類が切り替わるもので、図3のように演算器2つを縦続接続して前段の演算器25で比較演算をすることにより後段の演算器26の演算を切り替えるための制御信号CTLOPを生成する。
このとき、前段の演算器25の演算結果は入力された値と同じ値を出力するようにする。
これは演算器25内部がパイプライン化された場合でもデータと制御信号の同期を取るためである。
なお、上で示した2つの例は何れも2種類の演算を切り替える例であるが、原理的には3種類以上の切り替えも可能でありその場合は制御信号も2ビット以上必要になる。
図5は、本発明に係るデータフロー型演算装置の第3の実施形態を示す構成図である。
j = 0;
for (i=0; i<256; i++) {
if (a[i] > 0) out[j++] = a[i] + b[i];
}
図5は、この例を実現するための構成例であるが、図3と同様に2つの演算器25,26を縦続接続しているが、後段の演算器26Aは常に固定の演算を行い、前段の演算器25の比較演算で生成された制御信号CTLOPはそのまま後段を通過しメモリ書き込み用のアドレス生成装置24へデータと共に渡される。
もしも、演算器内部がパイプライン化されている場合でも制御信号がデータと同じ経路を通るためにデータと制御信号は常に同期している。
メモリ書き込み用のアドレス生成装置24ではこの制御信号を用いてメモリに対するアドレスと書き込み(WE)の制御を行う。
図7は、本発明に係るデータフロー型演算装置の第4の実施形態を示す構成図である。
また、アドレス生成装置32は、アドレス生成装置34による制御信号CTLENDを受けて読み出し動作を終了する。
また、アドレス生成装置33は、アドレス生成装置34による制御信号CTLENDを受けて読み出し動作を終了する。
また、アドレス生成装置34は、演算器36による制御信号CTLWEに基づいて一連の処理を終了させるための制御信号CTLENDを生成して、アドレス生成装置32,33に出力する
for (i=0; i<256; i++) {
if ((a[i] - b[i]) == 0) break;
out[i] = a[i] - b[i];
}
メモリ書き込み用のアドレス生成装置34ではこの制御信号CTLWEによりメモリ31のバンク313に対するアドレスと書き込み(WE)の制御を行うが、この時メモリ書き込み用のアドレス生成装置34からメモリ読み込み用のアドレス生成装置32,33に対して動作を終了するような制御信号CTLENDを発生することによりメモリ31のバンク311,312の読み出し動作も終了することで一連の処理動作を完全に終了することができる。
図9は、本発明に係るデータフロー型演算装置の第5の実施形態を示す構成図である。
for (i=0; i<256; i++) {
index = a[i] * b[i];
out[i] = c[index] + d[i];
}
また、ここへ更に条件実行演算を組み合わせることでより複雑なアドレス生成を行わせることも可能である。
そこで、本発明では累算処理の場合に着目してビットデータを4つまとめて処理することで転送効率/処理効率を改善している。
通常のようにデータを1つずつ読み出して処理をした場合は、図11に示すように、16回のメモリ転送が生じる。
これに対し、図12に示すように、4つずつ読み出した場合は4回の転送で済むことになる。
また、動画像符号化などで多用される参照データに対する差分絶対値の合計を求める場合は、図15に示すように差分絶対値を4つ同時に求めて1つに足し込んだ後累算を行うことで実現できる。なお、図15において、53−1〜53−4は差分絶対値演算部(AbsDiff)を示している。
なお、これは16ビットデータの場合にも応用することができ、その場合16ビットデータ2つをまとめて処理することになる。
したがって、このような演算装置ではできる限り連続した動作をすることが望ましく、本発明の条件実行演算が可能になることにより従来複数回に分けて実行していたものが一度の実行で済むようになり、効率の良い動作が可能になる。
y[0] = init_y2n;
y[1] = init_y1n;
for (i=2; i<smpl+2; i++) {
y[i] = a0 * x[i] + a1 * x[i-1] + a2 * x[i-2] + b1 * y[i-1] + b2 * y[i-2];
}
そこで、上記例を累算形式に変形し、y[i-1]およびy[i-2]をレジスタに置き換えた例を以下に示す。
y2 = init_y2n;
y1 = init_y1n;
a[] = {a2, a1, a0, b1, b2};
for (i=0; i<smpl; i++) {
y[i] = 0;
for (j=0; j<5; j++) {
if (j==3) y[i] += a[j] * y1;
else if (j==4) y[i] += a[j] * y2;
else y[i] += a[j] * x[i+j];
}
y2 = y1;
y1 = y[i];
}
図16のIIRフィルタ60は、レジスタ61(FGreg),62(BGreg)、マルチプレクサ(MUX)63、および乗算累算器(MULTIPLIER/ACCUMULATOR)64を有している。
レジスタ61に乗算累算器64の演算結果が保持され、レジスタ62はレジスタ61の保持データが保持される。
マルチプレクサ63は、レジスタ61,62、入力データINAのいずれかを選択して乗算累算器64に入力させる。
乗算累算器64は、マルチプレクサ63の選択データと入力データINBとの乗算累算を行う。
レジスタ71(FGreg)はマルチプレクサ77の選択データを保持し、レジスタ72(BGreg)はマルチプレクサ78の選択データを保持する。レジスタ73は入力データINAを保持し、レジスタ74は入力データINBを保持し、レジスタ75はマルチプレクサ80の選択データを保持し、レジスタ76は加算器82の演算結果を保持する。
マルチプレクサ77はレジスタ76の保持データ、入力スタティックデータSD1、レジスタ71の保持データのうちのいずれかを選択してレジスタ71に出力する。
マルチプレクサ78は、レジスタ71の保持データ、入力スタティックデータSD2、レジスタ72の保持データのいずれかを選択してレジスタ72に出力する。
マルチプレクサ79は、レジスタ71の保持データ、レジスタ72の保持データ、レジスタ73の保持データのいずれかを選択して乗算器81に出力する。
マルチプレクサ80は、加算器82の演算結果または固定値0を選択してレジスタ75に出力する。
乗算器81は、マルチプレクサ79の選択データとレジスタ74の保持データとを乗算し加算器82に出力する。
加算器82は、レジスタ75の保持データと乗算器81の演算結果を加算してレジスタ76およびマルチプレクサ80に出力する。
a[] = {a2, a1, a0, b1, b2};
bctl1[] = {1, 0, 0, 0, 0};
bctl2[] = {0, 0, 0, 1, 1};
bctl3[] = {0, 0, 0, 0, 1};
INA_CTL1 = 1;
for (i=0; i<smpl; i++) {
for (j=0; j<5; j++) {
INA = x[i+j];
INB = a[j];
INB_CTL1 = bctl1[j];
INB_CTL2 = bctl2[j];
INB_CTL3 = bctl3[j];
if (INA_CTL1 == 1) {
FREG = init_y1n;
BREG = init_y2n;
}
if (INB_CTL1 == 1) ACCREG = 0;
if (INB_CTL2 == 1 && INB_CTL3 == 1) ACCREG += BREG * INB;
else if (INB_CTL2 == 1 && INB_CTL3 == 0) ACCREG += FREG * INB;
else ACCREG += INA * INB;
OUT = ACCREG;
if (INB_CTL2 == 1 && INB_CTL3 == 1) {
BREG = FREG;
FREG = OUT;
}
if (INA_CTL1 == 1) INA_CTL1 = 0;
}
y[i] = OUT;
}
この例では、4つの制御信号を組み合わせた幾つかの条件によって初期値の設定やオペランドの選択が行われる。
図18は、本発明に係るデータフロー型演算装置の第6の実施形態を示す構成図である。
信号INA CTL1とともに第1のソースデータDT91(INA)として演算器95に出力する。
演算器95のデータ入力はINAとINBの2つで、さらに制御信号としてINA_CTL1、INB_CTL1、INB_CTL2、INB_CTL3の4つが使用される。
これらはアドレス発生装置92,93により生成されるもので、制御信号INA_CTL1はアドレス生成装置92で、制御信号INB_CTL1〜3はアドレス生成装置93により生成しデータと共に演算器95に入力される。
制御信号INA_CTL1は、図17で示された内部レジスタ71(FGreg)および72(BGreg)を初期化するための信号で、通常は最初の一回のみINA_CTL1=1となる。
制御信号INB_CTL1は、図12(M)に示すように、アキュムレータレジスタ75(ACCREG)をクリアするための信号で、プログラム例8の場合5回累算をする際の最初のデータが入力されるタイミングでINB_CTL1=1となる。
制御信号INB_CTL2と制御信号INB_CTL3は乗数をレジスタ73(INA)、レジスタ71(FGreg)、レジスタ72(BGreg)の3つから選択するための信号であるが、それと同時に内部レジスタ71FGreg)、レジスタ72(BGreg)を更新するためにも使用される。
このときの動作はプログラム例8を変形し、プログラム例9のようになる。
a[] = {a2, a1, a0};
b[] = {b0, b1, b2};
bctl1[] = {1, 0, 0};
bctl2[] = {0, 1, 1};
bctl3[] = {0, 0, 1};
IN0B_CTL1 = 1;
for (i=0; i<smpl; i++) {
for (j=0; j<3; j++) {
IN0A = x[i+j];
IN0B = a[j];
IN0B_CTL2 = bctl1[j];
// ---------------- PE0 ---------------------
if (IN0B_CTL2 == 1) ACCREG0 = 0;
ACCREG0 += IN0A * IN0B;
OUT0 = ACCREG0;
// -------------------------------------------------
}
w[i] = OUT0;
for (j=0; j<3; j++) {
IN1A = OUT0;
IN1B = b[j];
IN1A_CTL1 = IN0B_CTL1;
IN1B_CTL1 = bctl1[j];
IN1B_CTL2 = bctl2[j];
IN1B_CTL3 = bctl3[j];
// ---------------- PE1 ---------------------
if (IN1A_CTL1 == 1) {
FREG1 = init_y1n;
BREG1 = init_y2n;
}
if (IN1B_CTL1 == 1) ACCREG1 = 0;
if (IN1B_CTL2 == 1 && IN1B_CTL3 == 1) ACCREG1 += BREG1 * IN1B;
else if (IN1B_CTL2 == 1 && IN1B_CTL3 == 0) ACCREG1 += FREG1 * IN1B;
else ACCREG1 += IN1A * IN1B;
OUT1 = ACCREG1;
if (IN1B_CTL2 == 1 && IN1B_CTL3 == 1) {
BREG1 = FREG1;
FREG1 = OUT1;
}
// --------------------------------------------------
if (IN1A_CTL1 == 1) IN1A_CTL1 = 0;
}
y[i] = OUT1;
}
このときの構成例を表したものが図20であり、図20に関連付けて第7の実施形態を説明する。
図20は、本発明に係るデータフロー型演算装置の第7の実施形態を示す構成図である。
演算器(PE0)106はIN0AとIN0Bを入力として乗算を行い累積加算を行うが3サンプル毎に累算結果を初期化する必要があるためその制御信号としてIN0B_CTL1をアドレス発生装置102により生成する。
演算器(PE0)106の出力OUT0は演算器(PE1)107のIN1Aへと接続されるが、演算器(PE1)107ではIN1Aに同期した制御信号が必要になることから演算器(PE0)106を通過させる形で制御信号を入力する。
演算器(PE0)106における制御信号IN0B_CTL2がこれに相当するもので、アドレス生成装置103により生成された制御信号は演算器(PE1)107においてレジスタ71,72(FREG1とBREG1:FGreg,BGreg)の初期化に使用される。
また、時間軸の視点で見ると演算器(PE1)107の入力IN1Aは演算器(PE0106のパイプラインディレイ分遅れることになり、更に累算の結果が確定するまでにも2サイクル分待つ必要があるため、演算器(PE1)107においては演算器(PE0106に対し4サイクル分演算開始が遅れることになる。
図20の構成例の場合アドレス発生装置104をアドレス生成装置102および103に対し4サイクル遅らせることでこのような動作を実現することができる。
その他の演算器(PE1)107の動作に関しては図18の構成例における動作と同様なものとなる。
図22の装置70Aにおいては、図17の構成に加算器82とレジスタ76との間にレジスタ83およびシフタおよび丸め処理部84を設けている。
一方、複数のデータをひとつにまとめて累算する方法は動画符号化処理の動き検出など大量のデータを処理する場合にその処理量を大幅に減らすことが可能になり、装置の高効率化に寄与する。
また、IIRフィルタのようなループバックのある処理をそのままハードウェアに適用しようとすると、一端メモリへ演算結果を書き出した後再度その結果を読み出す必要があることからデュアルポートメモリが必須となりシステムコストが高くなる欠点があった。 また、内部のパイプライン化によりメモリ→演算→メモリのレイテンシが大きいシステムでは場合によってはデータが揃うまで待機する動作を行わなければならず効率の悪い処理系になっていた。
これに対し、本発明を適用した場合はデュアルポートメモリを使う必要はなくなることからシステムコストを抑えることが可能で、更には効率的な処理が可能なことから処理時間と消費電力の削減にも寄与するものとなる。
図24(A)はカウンタ210のカウント値CNT210を、図24(B)はカウンタ211のカウント値CNT211を、図24(C)は第1アドレス計算カウント値ACNTV11を、図24(D)は第2アドレス計算カウント値ACNTV12を、図24(E)はレジスタ205に設定された固定値SCVを、図24(F)は演算装置212への入力データDIN、および図24(G)は演算装置212において計算されたアドレスADRをそれぞれ示している。
レジスタ201、レジスタ202にはカウンタの初期値として0が格納され、レジスタ203、レジスタ204にはステップ値として1が格納される。
選択装置208は、3サイクルおきにレジスタ201の値を選択し、それ以外のときは演算装置206の値を選択する。
選択装置209は、常に演算装置207の演算結果の値を選択する。
これにより、カウンタ210およびカウンタ211のカウント値CNT210,CNT211は、図24(A),(B)に示すような値をとる。
このように動作させることで、第1アドレス計算カウント値ACNTV11、第2アドレス計算カウント値ACNTV12は、図24(C),(D)に示すような値をとる。
そして、演算装置212は、以下の演算を実行して、アドレスADRを算出する。
ADR=ACNTV11+ACNTV12+SCV+DIN
カウンタ305は、制御装置309による制御信号S309aに応答してカウントアップ動作を開始する。
また、制御装置309は、タイミングカウンタのタイミングカウント値CNT308が設定値に達した後に、制御信号S309bを制御信号生成装置310に出力してアドレス有効信号AVLDを有効するように制御する。
制御信号生成装置310は、制御装置309による制御信号S309bに応答してアドレス有効信号AVLDを有効状態にし、カウンタ305のカウント値、すなわち第1アドレス計算カウント値ACNTV21が所定の終了値に達するとアドレス有効信号AVLDを無効状態にする。
制御信号生成装置310は、カウンタ305のカウント値が特定の値になったときに制御出力CTLOUTを有効、もしくは無効状態にすることができる。
図26(A)はタイミングカウンタ308に与えれる起動信号TRGを、図26(B)はタイミングカウンタ308のタイミングカウント値CNT308を、図26(C)はカウンタ305による第1アドレス計算カウント値ACNTV21を、図26(D)は演算装置306において計算されたアドレスADRを、図26(E)は制御信号生成装置310で生成されるアドレス有効信号AVLDを、図26(F)は制御入力CTLINを、図26(G)は制御出力CTLOUTをそれぞれ示している。
パラメータレジスタ307にはアドレス生成遅延値「4」が設定され、図26(A)に示すように、外部から入力されるトリガ信号としての起動信号TRGによりタイミングカウンタ308のカウントアップが行われる。
そして、図26(B)に示すように、タイミングカウンタ308のカウント値CNT308が、パラメータレジスタ307に設定された所定の遅延値「4」に達すると、制御装置309が、アドレス生成カウンタ305が動作するように制御信号S309aをカウンタ305に出力して、カウンタ305のカウントアップを有効にする。
選択装置304は常に演算装置303の値を選択する。
このように動作させることで、第1アドレス計算カウント値ACNTV21は、図26(C)に示すような値をとる。
図26(E)〜(G)に示すように、アドレス有効信号AVLDは制御入力CTLINと、起動信号TRGとタイミングカウント値CTL308をもとに制御装置309と制御信号生成装置310により生成される。
制御装置309は、タイミングカウント値CNT308が設定値に達した後に、制御信号S309bによりアドレス有効信号AVLDを有効状態にし、カウンタ305のカウント値が終了値に達するとアドレス有効信号AVLDを無効状態にする。
図26(C),(G)に示すように、本例では、第1アドレス計算カウント値ACNTV21が「6」と「12」になったときに制御出力CTLOUTを有効状態にしている。
また、アドレス生成のタイミングをパラメータで制御することが可能であるため、複数のメモリからの読み出しや、書き込みに時間的な依存関係がある場合についても容易に対応することが可能になる。
Claims (8)
- 第1のソースデータを生成する第1の生成装置と、
第2のソースデータを生成する第2の生成装置と、
上記第1の生成装置による第1のソースデータと、上記第2の生成装置による第2のソースデータに対して制御信号に応じて演算種を切り替えて所定の演算を行い、演算結果を一時保持するレジスタを有する演算器と、を有し、
上記第1の生成装置と上記第2の生成装置の少なくとも一方は、生成したソースデータに制御信号を付加して上記演算器に出力し、
上記レジスタの保持データの読み出し、書き込みは、上記制御信号により制御される
演算装置。 - 上記第1のソースデータおよび上記第2のソースデータを格納するメモリを有し、
上記第1の生成装置は、上記第1のソースデータを読み出すためのアドレスを生成し、当該アドレスに基づいて読み出した第1のソースデータと上記制御信号を上記演算器に出力し、
上記第2の生成装置は、上記第2のソースデータを読み出すためのアドレスを生成し、当該アドレスに基づいて読み出した第2のソースデータと上記制御信号を上記演算器に出力する
請求項1記載の演算装置。 - 上記演算器の演算結果を受けてアドレスを生成して、演算結果を上記メモリに書き込む第3の生成装置をさらに有する
請求項2記載の演算装置。 - 上記演算器は、バス幅より小さい語長のデータで累算を行う際に複数のデータをひとかたまりに扱い累算を行う
請求項1記載の演算装置。 - 第1のソースデータを生成する第1の生成装置と、
第2のソースデータを生成し、かつ、当該第2のソースデータに第1の制御信号を付加して出力する第2の生成装置と、
第3のソースデータを生成する第3の生成装置と、
上記第1の生成装置の第1のソースデータと、上記第2の生成装置による第2のソースデータに上記第1の制御信号に応じた所定の演算処理を行って第4のソースデータを生成する第1の演算器と、
上記第3の生成装置による第3のソースデータと、上記第1の演算器による第4のソースデータに対して第2の制御信号に応じて演算種を切り替えて所定の演算を行い、演算結果を保持するレジスタを有する第2の演算器と、を有し、
上記第3のアドレス生成装置および上記第1の演算器の少なくとも一方は生成したソースデータに第2の制御信号を付加して上記第2の演算器に出力し、
上記レジスタの保持データの読み出し、書き込みは、上記第2制御信号により制御される
演算装置。 - 上記第1のソースデータ、上記第2のソースデータ、および上記第2のソースデータを格納するメモリを有し、
上記第1の生成装置は、上記第1のソースデータを読み出すためのアドレスを生成し、当該アドレスに基づいて読み出した第1のソースデータを上記第1の演算器に出力し、
上記第2の生成装置は、上記第2のソースデータを読み出すためのアドレスを生成し、当該アドレスに基づいて読み出した第2のソースデータと上記第1の制御信号を上記第1の演算器に出力し、
上記第3の生成装置は、上記第3のソースデータを読み出すためのアドレスを生成し、当該アドレスに基づいて読み出した第3のソースデータを上記第2の演算器に出力する
請求項5記載の演算装置。 - 上記第2の演算器の演算結果を受けてアドレスを生成して、演算結果を上記メモリに書き込む第4の生成装置をさらに有する
請求項6記載の演算装置。 - 上記第1および第2の演算器の少なくとも一方は、バス幅より小さい語長のデータで累算を行う際に複数のデータをひとかたまりに扱い累算を行う
請求項5記載の演算装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005024910A JP2006215611A (ja) | 2005-02-01 | 2005-02-01 | 演算装置 |
US11/343,169 US7673117B2 (en) | 2005-02-01 | 2006-01-30 | Operation apparatus |
KR1020060009512A KR101244107B1 (ko) | 2005-02-01 | 2006-02-01 | 연산 장치 |
CNB2006100711704A CN100383729C (zh) | 2005-02-01 | 2006-02-05 | 运算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005024910A JP2006215611A (ja) | 2005-02-01 | 2005-02-01 | 演算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006215611A true JP2006215611A (ja) | 2006-08-17 |
Family
ID=36781176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005024910A Pending JP2006215611A (ja) | 2005-02-01 | 2005-02-01 | 演算装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7673117B2 (ja) |
JP (1) | JP2006215611A (ja) |
KR (1) | KR101244107B1 (ja) |
CN (1) | CN100383729C (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153995A1 (en) * | 2009-12-18 | 2011-06-23 | Electronics And Telecommunications Research Institute | Arithmetic apparatus including multiplication and accumulation, and dsp structure and filtering method using the same |
TWI462433B (zh) * | 2011-09-02 | 2014-11-21 | Delta Electronics Inc | 馬達及其製造方法、風扇 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4056848A (en) * | 1976-07-27 | 1977-11-01 | Gilley George C | Memory utilization system |
JPS54100634A (en) * | 1978-01-26 | 1979-08-08 | Toshiba Corp | Computer |
JPH0246266U (ja) * | 1988-09-26 | 1990-03-29 | ||
JP2748503B2 (ja) | 1989-02-28 | 1998-05-06 | ソニー株式会社 | デジタル信号処理装置 |
JP2592979B2 (ja) * | 1990-04-25 | 1997-03-19 | 株式会社東芝 | 信号処理用集積回路装置 |
US5305446A (en) * | 1990-09-28 | 1994-04-19 | Texas Instruments Incorporated | Processing devices with improved addressing capabilities, systems and methods |
US5390304A (en) * | 1990-09-28 | 1995-02-14 | Texas Instruments, Incorporated | Method and apparatus for processing block instructions in a data processor |
JP3164832B2 (ja) * | 1991-03-22 | 2001-05-14 | 株式会社日立製作所 | 描画制御装置 |
US5363322A (en) * | 1991-04-02 | 1994-11-08 | Motorola, Inc. | Data processor with an integer multiplication function on a fractional multiplier |
AU4804493A (en) * | 1992-08-07 | 1994-03-03 | Thinking Machines Corporation | Massively parallel computer including auxiliary vector processor |
US6263420B1 (en) * | 1997-09-17 | 2001-07-17 | Sony Corporation | Digital signal processor particularly suited for decoding digital audio |
JP3336986B2 (ja) * | 1999-02-03 | 2002-10-21 | 日本電気株式会社 | 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器 |
US6477683B1 (en) * | 1999-02-05 | 2002-11-05 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
JP2001043084A (ja) * | 1999-05-24 | 2001-02-16 | Toshiba Microelectronics Corp | プロセッサ装置 |
US6424986B1 (en) * | 1999-05-28 | 2002-07-23 | Winbond Electronics (H.K.) Ltd. | Architecture of discrete wavelet transformation |
US7376820B2 (en) * | 2000-03-16 | 2008-05-20 | Fujitsu Limited | Information processing unit, and exception processing method for specific application-purpose operation instruction |
US7233970B2 (en) * | 2001-05-02 | 2007-06-19 | Cipher Corporation Limited | Computational method, system, and apparatus |
US6799261B2 (en) * | 2002-06-28 | 2004-09-28 | Motorola, Inc. | Memory interface with fractional addressing |
US7293155B2 (en) * | 2003-05-30 | 2007-11-06 | Intel Corporation | Management of access to data from memory |
US7505295B1 (en) * | 2004-07-01 | 2009-03-17 | Netlogic Microsystems, Inc. | Content addressable memory with multi-row write function |
-
2005
- 2005-02-01 JP JP2005024910A patent/JP2006215611A/ja active Pending
-
2006
- 2006-01-30 US US11/343,169 patent/US7673117B2/en not_active Expired - Fee Related
- 2006-02-01 KR KR1020060009512A patent/KR101244107B1/ko not_active IP Right Cessation
- 2006-02-05 CN CNB2006100711704A patent/CN100383729C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7673117B2 (en) | 2010-03-02 |
US20060179166A1 (en) | 2006-08-10 |
CN1831755A (zh) | 2006-09-13 |
CN100383729C (zh) | 2008-04-23 |
KR20060088499A (ko) | 2006-08-04 |
KR101244107B1 (ko) | 2013-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20110090915A (ko) | Simd 곱셈-누적 연산 실행장치 및 방법 | |
JP2016526220A (ja) | プログラム可能な最適化を有するメモリネットワークプロセッサ | |
JP2007519052A (ja) | 命令制御式データ処理装置 | |
GB2474901A (en) | Multiply-accumulate instruction which adds or subtracts based on a predicate value | |
JP2014501009A (ja) | データを移動させるための方法及び装置 | |
JP2007317179A (ja) | 帯域幅要件が軽減された行列乗算 | |
CN108319559B (zh) | 用于控制矢量内存存取的数据处理装置及方法 | |
JP2008242647A (ja) | プロセッサ | |
EP2866138B1 (en) | Floating-point supportive pipeline for emulated shared memory architectures | |
TWI613590B (zh) | 處理器流水線中的靈活的指令執行 | |
TWI613589B (zh) | 處理器流水線中的靈活的指令執行 | |
JP2006215611A (ja) | 演算装置 | |
JP4771079B2 (ja) | Vliw型プロセッサ | |
JP3935678B2 (ja) | Simd積和演算方法、積和演算回路、および、半導体集積回路装置 | |
JP7048612B2 (ja) | ベクトル生成命令 | |
JP4444305B2 (ja) | 半導体装置 | |
JP5145659B2 (ja) | ベクトルリネーミング方式およびベクトル型計算機 | |
JP6378515B2 (ja) | Vliwプロセッサ | |
JP2004503872A (ja) | 共同利用コンピュータシステム | |
JP4590926B2 (ja) | 演算装置 | |
WO2001033385A2 (en) | Surface computer and computing method using the same | |
JP2008102599A (ja) | プロセッサ | |
JP5599987B2 (ja) | 多重化用補助peおよび半導体集積回路 | |
JP2006293741A (ja) | プロセッサ | |
JP2009059187A (ja) | マイクロプロセッサおよびデータ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070612 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100308 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101213 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110621 |