Интернет магазин китайских планшетных компьютеров



Компьютеры - Умножение-сложение

23 января 2011





В вычислительной технике, особенно в цифровой обработке сигналов совмещённое умножение-сложение — распространённая операция, при которой умножаются два числа и складываются с аккумулятором.

\ a \leftarrow a +

Когда операция выполняется над числами с плавающей запятой, то может выполняться двойное округление или однократное. Версия с однократным округлением также называется fused multiply-add или fused multiply-accumulate.

Назначение

Данная инструкция позволяет более эффективно реализовать операции деления и извлечения квадратного корня, умножение векторов и матриц, вычисление полиномов по схеме Горнера.

Реализация в процессорах

Операция включена в стандарт IEEE 754-2008. В стандарт 1999 года на язык программирования Си включена поддержка операции FMA из math.h).

Современные компьютеры могут иметь специализированный блок умножения-сложения или MAC, состоящий из умножителя реализующего комбинационную логику и сумматора, а также аккумулятора, в котором сохраняется результат. Выход аккумулятора подаётся на один из входов сумматора, и таким образом каждый такт результат из умножителя складывается с аккумулятором. Реализация MAC требует дополнительной логики на кристалле, но вычисления происходям быстрее, чем при использовании метода сдвигов и сложений типичного для первых компьютеров.

Появившись на сигнальных процессорах, операция включена в системы команд процессоров: IBM POWER1, Fujitsu SPARC64, HP PA-8000, Sony Emotion Engine, Intel Itanium, IBM Cell.

Также она будет реализована в процессорах AMD с поддержкой FMA4. Intel планирует добавить FMA3 в процессоры на ядре Haswell к 2012.

Технология присутствует в NVIDIA GPU серий GeForce 200, GeForce 300 и NVIDIA Tesla GPGPU C1060 & C2050 / C2070. AMD добавила FMA в линию Radeon с серии HD 5000.

Инструкции FMA, реализованные в процессорах Intel Sandy Bridge:

  • VFMADD a=b\times c+d
  • VFMSUB a=b\times c-d
  • VFNMADD a=-b\times c+d
  • VFNMSUB a=-b\times c-d
  • VFMADDSUB Aodd =Bodd\times Codd+Dodd
  • VFMSUBADD Aeven=Beven\times Ceven+Deven


Просмотров: 1526


<<< Схема ускоренного переноса
Фиксированная запятая >>>