REFERAT (721886), страница 3

Файл №721886 REFERAT (Анализ операций умножения и деления в конкретной модели АЛУ) 3 страницаREFERAT (721886) страница 32016-08-01СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Реализация режима насыщения существенно отличается от таковой в МАС-е, где режим насыщения указывается в самой инструкции.

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

Режим "защелки" переполнения АLU, разрешаемый битом 2 в регистре режима и статуса процессора (MSTAT), приводит к тому, что флаг переполнения АV остается поднятым после переполнения, несмотря на то, что последующие инструкции могут не генерировать переполнения. В этом режиме флаг АV может быть очищен только прямой записью нуля через шину DMD.

Деление

Функция деления реализуется дополнительной сдвиговой логикой, не показанной на рисунке 7. Деление достигается с помощью двух примитивов деления. Они используются для получения невосстанавливаемого условного алгоритма делением, использующего сложения и вычитания. Деление может быть знаковым и беззнаковым; однако, делитель и делимое должны быть одинакового типа.

Деление с одинарной точностью, с 32-битным делимым и 16-битным делителем, дающее 16-битное частное, выполняется за 16 циклов. Также могут быть вычислены частные меньшей и большей разрядности. Делитель может содержаться в АХ0, АХ1 или любом из R регистров. Старшая часть знакового делимого может содержаться в АY1 или AF. Старшая часть беззнакового делимого может содержаться только в AF. Младшая часть делимого должна быть в АY0. После завершения операции деления частное находится в AY0.

Первый из двух примитивов деления, "делить знак" (DIVS), выполняется в начале деления при делении знаковых чисел. Эта инструкция получает знаковый бит делимого, проведя операцию “исключающее или” со знаками делимого и делителя. Регистр AY0 сдвигается на 1 разряд, так что вычисленный знаковый бит помещается в самый младший (правый) разряд. Полученный знаковый бит также загружается во флаг АQ регистра арифметических флагов. Самый старший (левый) бит AYO сдвигается в младший бит AF, а оставшиеся старшие 15 бит AF загружаются из 15 младших бит регистра R из АЛУ, что в свою очередь пересылает содержимое входного регистра Y прямо в регистр результата R. Последовательный эффект состоит в том, чтобы сдвинуть влево пару регистров AF-AYO и переслать знак частного в самый младший разряд. Рисунок 8 иллюстрирует операцию DIVS.


При делении беззнаковых чисел инструкция DIVS не используется. Вместо этого флаг АQ в регистре арифметического состояния должен быть вручную очищен. Этот бит сигнализирует последующим операциям о том, что частное должно быть положительным.

Второй примитив деления – инструкция "делить частное" (DIVQ), которая генерирует 1 бит частного за цикл и выполняется повторно, чтобы подсчитать оставшиеся разряды частного. Для беззнакового деления с одинарной точностью инструкция DIVQ выполняется 16 раз, чтобы получить 16 бит частного. Для знакового деления с одинарной точностью инструкция DI VQ выполняется 15 раз, после вычисления знакового бита инструкцией DI VS. Инструкция сдвигает регистр AYO влево на 1 бит так, что новый бит частного помещается в младший бит. Состояние флага АQ (полученное во время предыдущих операций) определяет инструкцию, используемую для получения частичного остатка. Если AQ=1, то АЛУ добавляет делитель к частичному остатку в AF. Если AQ=O, то АЛУ вычитает делитель из частичного остатка в AF. Регистр результата К загружается со смещением в AF так, как это описано для инструкции DIVS. Флаг AQ считается как исключающее логическое или (XOR) старшего бита делителя и старшего бита регистра результата АЛУ, а очередной бит частного получается инвертированием этого значения. Полученный бит частного загружается в младший бит регистра АYО, который затем сдвигается влево на 1 бит. Рисунок 9 иллюстрирует операцию DlVQ.

Формат частного для любого представления может быть определен из формата делимого и делителя. Пусть NL равно количеству бит слева от десятичной точки, NR равно количеству бит справа от десятичной точки делимого; DL равно количеству бит слева от десятичной точки, DR равно количеству бит справа от десятичной точки делителя; тогда количество бит



слева от десятичной точки частного есть NL–DL+l ,a количество бит справа от десятичной точки частного есть NR–DR–1.

Некоторые изменения формата должны использоваться чтобы гарантировать правильность частного. Например, если оба операнда знаковые и полностью дробные (делимое в формате 1.31 и делитель в формате 1.15), результат полностью дробный (в формате 1.15) и поэтому делимое должно быть меньше делителя для получения верного результата.

Чтобы разделить 2 целых (делимое в формате 32.0 и делитель в формате 16.0) и получить целый результат (в формате 16.0),надо сдвинуть делимое на 1 бит влево (получить формат 1.31) перед делением.

Переполнение алгоритма случается в том случае, если частное не может быть представлено в формате частного или если делитель равен нулю или меньше допустимого.

МАС (умножитель/аккумулятор)

МАС обеспечивает высокоскоростное умножение, умножение с накоплением данных (разности), насыщение и очистку результата. Обратная связь позволяет части результата MAC использоваться в качестве одного из множимых в следующем цикле.

Блок-схема МАС

Рисунок 10 показывает блок-схему МАС. Умножитель имеет два входных 16-битных порта – Х и У и один 32-битный выходной порт результата Р. 32-битное произведение передается 40-битному сумматору, который прибавляет или вычитает текущий результат к регистру результата (MR) или непосредственно помещает текущий результат в регистр MR. Ширина регистра MR составляет 40 бит. Фактически он состоит из трех регистров: MRО и MR1, 16-битных, и 8-ми битного MR2.


Сумматор имеет ширину, большую чем 32 бита для того, чтобы разрешить промежуточные переполнения при выполнении нескольких операций подряд. Флаг МV (multiplier overflow, переполнение умножителя) устанавливается, если значащие биты появились выше 32-битной границы регистра МR.

Входные/выходные регистры МАС, а также запись/чтение в них, аналогичны таковым для АЛУ.

Результат работы сумматора загружается либо в регистр обратной связи МF, либо в регистр результата MR. Регистр обратной связи MF позволяет использовать биты 16-31 результата непосредственно, как операнд Y в следующем цикле. Регистр результата (MR) шириной 40 бит состоит из трех регистров: MR0,MR1 и MR2. Каждый из этих регистров может быть напрямую загружен через шину DMD и записан через шину DMD или на шину промежуточных результатов R.

MАС, аналогично АLU, содержит второй банк регистров, как показано на рисунке 4.6, за первичными регистрами. Выбор первичного или вторичного набора регистров контролируется битом 0 в регистре режима и статуса процессора (MSTAT).

Операции МАС

Список выполняемых МАС-ом операций :

Х*Y

MR+X*Y

MR–X*Y

0

умножить Х на Y

умножить Х на Y и добавить результат к содержимому MR

умножить Х на Y и вычесть результат из содержимого MR

очистить регистр результата MR

МАС обеспечивает два стандартных режима умножения/аккумулирования: дробный режим (для чисел в формате 1.15) и целый режим для целых в формате 16.0.

В дробном режиме формат 32-битного выходного регистра регулируется, то есть, происходит знаковое расширение и сдвиг содержимого на 1 бит влево перед добавлением в MR. Например, 31-ый бит регистра Р соответствует 32-му биту регистра MR (что в свою очередь соответствует биту 0 регистра MR2), a нулевой бит регистра Р соответствует 1-му биту регистра MR (что в свою очередь соответствует биту 1 регистра MRO). Младший бит MR просто очищается. Оставшиеся семь бит MR2 заполняются знаком регистра Р (то есть 31 битом Р).

В целом режиме 32-битный регистр результата не сдвигается при добавлении к регистру MR. Восемь бит MR2 заполняются знаком Р.

Режим выбирается 4-ым битом регистра режима и состояния (MSTAT). Единица в этом бите означает целочисленный режим; ноль означает дробный режим. В обоих режимах содержимое регистра Р подается на вход сумматора, который прибавляет или вычитает новое произведение из текущего содержимого регистра MR, чтобы сформировать окончательный результат в R.

Для реализации вычислений с повышенной точностью, умножитель позволяет осуществлять любые комбинации операндов Х и Y (умножать знаковое на знаковое (SS),беззнаковое на знаковое (US), беззнаковое на беззнаковое (UU), знаковое на беззнаковое (SU) ).

Форматы операндов записываются как часть инструкции. Поэтому они динамически выбираются из каждой инструкции умножения.

8-битный регистр MR2 при записи/чтении располагается в восьми младших битах шин данных. При чтении MR2 через шину DMD или на шину промежуточных результатов (R) происходит его знаковое расширение до 16 бит. MR1 также имеет возможность автоматического расширения знака. Тогда MR1 загружается с шины DMD, все биты в MR2 автоматически заполняются знаковым битом МR1, так что MR2 служит расширением MR1. Чубы загрузить в регистр МR2 значение, отличное от знакового расширения MR1, надо загружать MR2 после загрузки МR1. Загрузка же MR0 не влияет ни на один из оставшихся регистров; знаковое расширение не происходит при загрузке MR0.

Переполнение, насыщение и окружение в МAС

Сумматор генерирует флаг переполнения МV, который загружается в регистр арифметического статуса процессора (АSТАТ) после выполнения каждой операции MАС-ом. Этот бит устанавливается в случае, если результат аккумулятора, интерпретируемый как число с дополнением до 2, (MR) пересекает 32-битную границу (МR1/МR2) .То есть флаг МV устанавливается, если верхние девять бит MR не все одновременно равны 0 или 1.

Регистр МR имеет возможность выполнять операцию насыщения, то есть устанавливаться в максимальное положительное (отрицательное) число при переполнении. Операция насыщения зависит от флага МV в регистре ASTAT и знакового бита регистра MR2. Следующая таблица показывает эффект операции насыщения МR

Флаг MV

Старший бит МR2

Результат после насыщения

0

1 или 0

без изменения

1

0

00000000 0111111111111111 1111111111111111 -максимальное положительное число

1

1

11111111 1000000000000000 0000000000000000 - максимальное отрицательное число

Насыщение в МАС – это операция (в отличии от режима в АЛУ). Она предполагается для использования после умножений/аккумуляций, так чтобы предварительные результаты не вызывали насыщения, ибо это приведет к потере точности.

Переполнение выше 40-го бита регистра MR2 не должно допускаться. Знак числа теряется безвозвратно при этом и насыщение может получить совершенно противоположный результат. Но требуется более 255 простых переполнений (типа MV), чтобы такое могло случиться.

Аккумулятор имеет возможность округлить 40-битный результат R до 16-битного. Округление должно быть указано в инструкции с помощью опции (RND). Округленный результат направляется в регистр MR или MF. Когда происходит округление с регистром MR в качестве выходного, содержимое MRl представляет из себя округленный 16-битный результат, а содержимое регистров MR2 и MR1 может рассматриваться как результат, округленный до 24 бит.

Аккумулятор использует несмещенную схему округления. Обычный метод смещенного округления производится добавлением числа 0х8000 к MR (то есть если MR0 больше или равно 0х8000, то MR1/MR2 инкрементируются), при этом округленный результат находится в MR2 и MR1. Но этот метод приводит к общему положительному смещению, т.к. при среднем значении (когда регистр MRO равен 0x8000) число округляется вверх. Аккумулятор же устраняет это смещение, всегда устанавливая бит 0 MR1 в ноль после округления, если МR0 содержит 0х8000. Таким образом, происходит округление четных значений MR1 вниз и нечетных значений MR1 вверх, что в свою очередь приводит к равнозначности операции округления на больших выборках чисел.

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

Пример 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 ) команд умножения и деления нет. В этом случае данные арифметические операции реализовывались программно, через сложение и сдвиги. Соответственно производительность при вычислениях падала в несколько раз.

Характеристики

Тип файла
Документ
Размер
130,5 Kb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее