出典: 積和演算 [外語] MAC: Multiply and ACcumulation 『通信用語の基礎知識』 更新年月日 2014/11/27,URL: https://www.wdic.org/ 積の和を求める演算。つまり、二つの値の積を累算中の値に加算する演算 [概要] DSPの得意とする処理であり、かつ信号処理では必須の処理となる。積和演算は、式で書くと、次のようになる。 a ← b + (c × d) このままだと4項演算だが、aとbを同じにして3項演算とし、累算に特化した実装も多い。 a ← a + (b × c) 極めて単純明快な演算ではあるが、この演算速度が信号処理における最大の律速要因になり、信号処理速度そのものを決めてしまうので侮れない(あなどれない)。 この積和演算速度を表わすために、MMACS(メガ積和演算/秒)やGMACS(ギガ積和演算/秒)といった単位も存在するほどである。 従って、全てのDSPには汎用のMPUにはない高速乗算器とともに積和演算器が搭載され、積和演算命令(MAC命令)が用意されている。これにより、ほぼ全てのDSPはこの演算を1命令サイクルで実行するのである。 [特徴] 呼称 一般的には、Multiply and ACcumulationからMACという。 Intelは、Fused Multiply addからFMAと呼んでいる。 DSPの場合 DSPでも様々な実装があり、それぞれに特徴がある。一般的には、ニーモニックで次のように書くことが多いようではある。 MAC A,B,SUM AとBが二つの値で、SUMが累算する積和演算レジスターである。 積和演算レジスターが一つしかないようなDSPの場合は、これは省略されることになるだろう。 SuperHの場合 SuperHなど汎用のプロセッサーでも、積和演算器が組み込まれた製品がある。こういったプロセッサーでは汎用レジスターよりも大きな値を扱う必要があるため、積和演算レジスターとして、専用にレジスターを持っていることが多い。 SuperHの場合は2つの汎用レジスターで16または32ビットの値二つのポインターを示して使う。積和演算レジスターは一つしかないので指定する必要が無い。例えば次のようになる。 MAC.L @R0+,@R1+ 演算終了後、レジスターは自動で増分される。このため、メモリー上に連続してデータを用意しておけば、連続して命令を実行することができる。 SuperHの場合は汎用レジスターが32ビット、積和演算レジスターは64ビットなので、積和演算レジスターの上位・下位32ビットごとに分けて、汎用レジスターやメモリーに複写する命令が存在する。 ARMの場合 ARMも汎用のプロセッサーだが、組み込みを想定していることから、積和演算回路を搭載している。しかもARMの場合、4項演算が可能など、非常に贅沢な作りとなっている。 MLA{ UMLAL{ SMLAL{ MLAは、32ビットで演算し、結果を32ビットで返す命令である。UMLALとSMLALは、32ビット× 32ビットを実行し64ビットの整数に加算した結果を返す命令で、うちUは無符号、Sは符号付きを意味する。Sは、Rm, Rs, Rdの3値全てが符号ありとして扱われる。 ちなみにARMv6T2以降には、MLSという積差演算の命令が搭載された。 |
出典: FMA4 [読み] エフエムエイ・フォー [外語] four-operand Fused Multiply/Add 『通信用語の基礎知識』 更新年月日 2020/11/09,URL: https://www.wdic.org/ オペランドが4つあるFMA(積和演算)命令で、特にx86に搭載されている命令セットの一部をいう。 [概要] 元々は、IntelがIntel AVXで導入を予定していた命令の一部であった。しかし、命令長が長くなること、そして命令デコーダーが肥大化することを懸念し、最終的に不採用として3オペランドFMA(FMA3)を実装した。 これに対してAMDは、SSE5をキャンセルしてIntel AVXを採用するのにあわせ、このIntelが不採用とした4オペランドFMAをBulldozerマイクロアーキテクチャーから採用することにした(その代わりFMA3の実装は次の製品に持ち越し)。 オペコードはAMDが独自に確保するのではなく、当初予定されていたIntelのそれと完全に同じものを採用した。 しかしIntelが遂にFMA4をサポートしなかったこともあり、殆ど使われていなかったこともあって、その後AMDが発表したZenマイクロアーキテクチャーからは削除された。 [特徴] VEX VEXを使っての符号化でのみ動作する命令である。 VEX.L=1で、ymmおよびm256命令にできる命令が多い。 またすべての命令について、VEX.Wフィールドで、オペランド3とオペランド4の機能を入れ替えることができる。 ・・・ |
出典: 積和演算 『フリー百科事典 ウィキペディア日本語版(Wikipedia)』 最終更新 2017年9月24日 (日) 16:08 UTC、URL: https://ja.wikipedia.org/ 積和演算 (せきわえんざん)は、演算のひとつで、積の和を求める、つまり乗算の結果を順次加算する演算である。乗累算 (じょうるいざん) とも言う。MAD/MADD (multiply-add) もしくは MAC/MACC (multiply-accumulate) と呼ばれることもある。デジタル信号処理において非常に多く使用される演算で、デジタルシグナルプロセッサでは積和算命令を1クロックで実行できる専用の演算回路を持つ。また、1秒間にこの積和演算を何回実行できるか、がプロセッサの性能指標として使われることもある。 [融合積和演算] 積和の演算式において、途中の積算 {\displaystyle b\times c} b\times cの演算結果を浮動小数点数の値としていったん丸めてしまうと、最終演算結果に大きな誤差が発生する。途中の積算を丸めず、積和演算を1命令で行なってしまうことで、最終演算結果の誤差を小さくするのが融合積和演算 (fused multiply-add, FMA/FMAD) である。FMAはIEEE 754規格の2008年改訂版 (IEEE 754-2008) で標準化されている。 ・・・ |
同義語・類義語 | 関連語・その他 |
---|---|
FMA4 | Multiply |
Fused Multiply Add 4 | mʌ́ltəplài |
fjuːzd mʌ́ltəplài ǽd fɔr | モァルゥトゥプラゥイ |
フィユーズトゥ モァルゥトゥプラゥイ アェッドゥ フォァ | モァ́ルゥトゥプラゥ̀イ |
フィユーズトゥ・モァルゥトゥプラゥイ・アェッドゥ・フォァ | マルチプライ |
フィユーズトゥ・モァ́ルゥトゥプラゥ̀イ・アェッ́ドゥ・フォ́ァ | マ́ルチプラ̀イ |
フューズド マルチプライ アッド フォー | [他動詞] |
フューズド・マルチプライ・アッド・フォー | ~を掛ける |
フューズド・マ́ルチプラ̀イ・アッ́ド・フォ́ー | ~を拡大させる |
エフ エム エイ・フォー | [自動詞] |
four-operand Fused Multiply/Add | 掛ける |
fɔr ɑ́pəræ̀nd fjuːzd mʌ́ltəplài ǽd | 掛け算をする |
フォァ オパゥラェンドゥ フィユーズトゥ モァルゥトゥプラゥイ アェッドゥ | ・ |
フォァ・オパゥラェンドゥ・フィユーズトゥ・モァルゥトゥプラゥイ・アェッドゥ | add |
フォ́ァ・オ́パゥラェ̀ンドゥ・フィユーズトゥ・モァ́ルゥトゥプラゥ̀イ・アェッ́ドゥ | ǽd |
フォー オペランド フューズド マルチプライ アッド | アェッドゥ |
フォー・オペランド・フューズド・マルチプライ・アッド | アェッ́ドゥ |
フォ́ー・オ́ペラ̀ンド・フューズド・マルチプライ・アッ́ド | アッド |
4オペランドFMA | アッ́ド |
・ | [他動詞] |
~を足す | |
【 以下関連語 】 | ~を加える |
FMA命令 | [自動詞] |
積和演算命令 | 付け足す |
・ | 加算する |
FMA3 | かさんする |
3オペランドFMA | 付加する |
・ | 加える |
Fused | ・ |
fjuːzd | |
フィユーズトゥ | |
フューズド | |
[形容詞] | |
溶かした | |
溶融した | |
ようゆうした | |
融解した | |
融合した | |
ヒューズが付いた | |
・ | |
更新日:2024年 4月12日 |
同義語・類義語 | 関連語・その他 |
---|---|
MAC | マ́ルチプラ̀イ |
Multiply and Accumulation | [他動詞] |
mʌ́ltəplài ənd əkjùːmjuléiʃən | ~を掛ける |
モァルゥトゥプラゥイ エァンドゥ アキュムレゥイシュン | ~を拡大させる |
モァルゥトゥプラゥイ・エァンドゥ・アキュムレゥイシュン | [自動詞] |
モァ́ルゥトゥプラゥ̀イ・エァンドゥ・アキュ̀ムレゥ́イシュン | 掛ける |
マルチプライ アンド アキュミュレーション | かける |
マルチプライ・アンド・アキュミュレーション | 掛け算をする |
マ́ルチプラ̀イ・アンド・アキュ̀ミュレーション | ・ |
MACC | accumulate |
multiply-accumulate | əkjúːmjulèit |
マルチプライ・アキュミュレート | アキュミュレゥイツ |
エム エイ シー | アキュ́ミュレゥ̀イツ |
エム エー シー | アキュミュレート |
積和演算 | アキュ́ミュレ̀ート |
せきわえんざん | [他動詞] |
乗累算 | 累算する |
じょうるいざん | るいさんする |
MAD | 積み重ねる |
MADD | 累積する |
multiply-add | 集積する |
mʌ́ltəplài ǽd | [自動詞] |
モァルゥトゥプラゥイ・アェッドゥ | 堆積する |
マルチプライ・アッド | 積もる |
・ | ・ |
Accumulation | |
əkjùːmjuléiʃən | |
【 以下関連語 】 | アキュムレゥイシュン |
FMA | アキュ̀ムレゥ́イシュン |
fjuːzd mʌ́ltəplài ǽd | アキュミュレーション |
フィユーズトゥ・モァルゥトゥプラゥイ・アェッドゥ | アキュ̀ミュレーション |
フューズド・マルチプライ・アッド | [名詞] |
融合積和演算 | 累積 |
ゆうごうせきわえんざん | るいせき |
・ | 蓄積 |
Multiply | ちくせき |
mʌ́ltəplài | |
モァルゥトゥプラゥイ | |
モァ́ルゥトゥプラゥ̀イ | |
マルチプライ | |
更新日:2024年 4月 1日 |