Анализ операций умножения и деления в конкретной модели АЛУ

Страница: 10/11

Пример типичной операции округления:

Пример 1 MR2 MR1 MR0
Неокругленные данные xxxxxxxx xxxxxxxx00100110 1xxxxxxxxxxxxxxx
Бит 15=1

Добавим 1 к 15-му биту и учтем перенос

1 ( 0х8000)
Округленное значение xxxxxxxx xxxxxxxx00100111 0xxxxxxxxxxxxxxx

Компенсация становится видимой, если MRO=0x8000.

Пример 2 MR2 MR1 MR0
Неокругленные данные xxxxxxxx xxxxxxxx00100110 100000000000000
Бит 15=1

Добавим 1 к 15-му биту и учтем перенос

1 ( 0х8000)
Так как бит 16 =1, присвоим ему 0
Округленное значение xxxxxxxx xxxxxxxx00100111 000000000000000

Сравнительный анализ выполнения арифметических команд в различных типах процессоров

Закончив рассмотрение АЛУ DSP, попробуем сравнить его производительность по арифметическим операциям, например, с i486DX - достаточно мощным универсальным процессором. Начнем с того, что в АЛУ цифрового сигнального процессора любая инструкция исполняется за один цикл, вместо нескольких циклов во втором процессоре. Работает такой процессор на частоте до 33.3 Мгц ( при этом i486DX работает на частоте 50 Мгц, а улучшенные версии на частотах до 133 Мгц ). Операции с плавающей точкой имеют 40 разрядные операнды, вместо 80 разрядных в FPU i486DX. Остальные параметры ( конвейеризация, архитектурные решения ) практически идентичны. Для примера ниже дана таблица, отображающая время исполнения программы “быстрого преобразования Фурье” на 1024 точки для процессоров i486DX2-66 и ADSP-21xx

Операция Время выполнения
i486DX2-66 ADSP-21xx
БПФ на 1024 точки 20 ms 2.23 ms

Получаются довольно странные результаты. У более мощного процессора время выполнения в 10 раз больше, чем у менее мощного. Из-за чего так происходит ? Прежде всего надо отметить, что аппаратно реализованное умножение в DSP дает основной выигрыш в скорости. Во-вторых, DSP менее универсален, по сравнению с i486, поэтому арифметические операции у него оптимизированы для работы в реальном времени, то есть скорость их выше. Конечно скорость достаточно сильно зависит от алгоритмов умножения, деления и сложения. Ведь какой бы ни была скорость процессора плохо оптимизированный алгоритм будет приводит к лишним схемным решениям, потере времени на выполнение лишних микрокоманд и, как следствие, ухудшение параметров процессора. В некоторых процессорах ( уже практически отсутствующих на рынке, например i8080 или его преемник Zilog Z80 ) команд умножения и деления нет. В этом случае данные арифметические операции реализовывались программно, через сложение и сдвиги. Соответственно производительность при вычислениях падала в несколько раз.

Реферат опубликован: 15/12/2009