exponenta event banner

Процесс суммирования

Сложение является наиболее распространенной арифметической операцией, выполняемой процессором. При сложении двух n-разрядных чисел всегда можно получить результат с n + 1 ненулевыми цифрами из-за переноса из самой левой цифры.

Предположим, вы хотите суммировать три числа. Каждое из этих чисел представлено 8-битным словом, и каждое имеет различное двоичное масштабирование только для точки. Кроме того, выход ограничен 8-битным словом с двоичным масштабированием только для точки 2-3.

Суммирование показано в следующей модели для входных значений 19.875, 5.4375 и 4.84375.

Сумма следует за следующими шагами:

  1. Поскольку смещения совпадают, начальное значение Qa является тривиальным:

    Qa=00000.000.

  2. Первое суммируемое число (19,875) имеет дробный наклон, который соответствует выходному дробному наклону. Кроме того, двоичные точки и типы хранения идентичны, поэтому преобразование является тривиальным:

    Qb = 10011.111, QTemp = Qb.

  3. Операция суммирования выполняется:

    Qa = Qa + QTemp = 10011.111.

  4. Второе суммируемое число (5.4375) имеет дробный наклон, который соответствует выходному дробному наклону, поэтому регулировка наклона не требуется. Типы данных хранения также совпадают, но разница в двоичных точках требует, чтобы и биты, и двоичная точка были смещены на одно место вправо:

    Qc = 0101.0111, QTemp = преобразовать (Qc) QTemp = 00101.011.

    Следует отметить, что происходит потеря точности одного бита, при этом результирующее значение QTemp определяется режимом округления. В этом примере используется скругление с перекрытием. В этом случае переполнение невозможно, поскольку биты и двоичная точка сдвинуты вправо.

  5. Операция суммирования выполняется:

    Qa = Qa +     QTemp 10011,111 = + 00101.011 11001.010 = 25,250.

    Обратите внимание, что переполнение не произошло, но это возможно для этой операции.

  6. Третье суммируемое число (4.84375) имеет дробный наклон, который соответствует выходному дробному наклону, поэтому регулировка наклона не требуется. Типы данных хранения также совпадают, но разница в двоичных точках требует, чтобы и биты, и двоичная точка были сдвинуты на два места вправо:

    Qd = 100,11011, QTemp = преобразовать (Qd) QTemp = 00100.110.

    Следует отметить, что происходит потеря точности в два бита, при этом результирующее значение QTemp определяется режимом округления. В этом примере используется скругление с перекрытием. В этом случае переполнение невозможно, поскольку биты и двоичная точка сдвинуты вправо.

  7. Операция суммирования выполняется:

         Qa=Qa+QTemp 11001.010 = + 00100.110 11110.000=30.000.

    Обратите внимание, что переполнение не произошло, но это возможно для этой операции.

Как показано здесь, результат этапа 7 отличается от идеальной суммы:

    10011.111 0101.0111=+ 100.11011  11110.001=30.125.

Блоки, выполняющие сложение и вычитание, включают блоки «Добавить», «Усиление» и «Дискретный КИХ-фильтр».