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

Загрузить архив:
Файл: 240-1979.zip (49kb [zip], Скачиваний: 198) скачать

Введение

Создание фирмой Intel первого микропроцессора в 1971 году положило началоэпохе компьютеризации. “Благодаря микропроцессорам компьютеры стали массовым, общедоступным продуктом ”,- заявил Тед Хофф, один из изобретателей первого процессора. Его имя, вместе с именами его коллег - Федерико Феджина и Стива Мейзора, внесено в список лауреатов Национального зала славы изобретателей США, а само изобретение признано одним из величайших достижений ХХ века.

За чуть более чем четвертьвековую историю микропроцессоры прошли поистине гигантский путь. Первый чип Intel 4004 работал на частоте 750 Кгц, содержал 2300 транзисторов и стоил около 200 долларов. Производительность его оценивалась в 60 тысяч операций в секунду. На сегодняшний день рекордные показатели принадлежат микропроцессорам Alpha 21264 фирмы DEC и составляют: 600 МГц, 15.2 миллиона транзисторов, 2 миллиарда операций в секунду и около 300 долларов соответственно.

Сравнение приведенных значений подтверждает оценку успехов микропроцессорной индустрии, данную основателем и председателем совета директоров фирмы Intel Гордоном Муром: “Если бы автомобилестроение эволюционировало со скоростью полупроводниковой промышленности, то сегодня “Роллс-Ройс” стоил бы 3 доллара, мог бы проехать полмиллиона миль на одном галлоне бензина и было бы дешевле его выбросить, чем платить за парковку” [ “Intel на Comtek’98” CDROM- perspectives.html ].

Такое интенсивное развитие технологий в обществе, где основным предметом труда становится информация, является следствием растущего спроса на новые орудия труда - компьютеры. На сегодняшний день компьютеризация является одним из главных направлений научно-технического прогресса и концентрированным его выражением. Количество и качество производимых в стране компьютеров, степень насыщенности вычислительной техникой самых разных отраслей становится одним из основных критериев ее экономического и военного потенциала.

В формируемом ежегодно в США группой экспертов перечне “критических технологий”, охватывающем практически все направления производства, исследований и разработок, оказывающих влияние на военный и экономический статус страны, микроэлектронные технологии традиционно занимают первое место.

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

Типы микропроцессоров

Универсальные микропроцессоры предназначаются для применения в вычислительных системах : персональных ЭВМ, рабочих станциях, а в последнее время и в массово-параллельных супер-ЭВМ. Основной их характеристикой является наличие развитых устройств для эффективной реализации операций с плавающей точкой над 64 разрядными и более длинными операндами. Предназначаются в основном для проведения научно-технических расчетов.

Цифровые сигнальные процессоры рассчитаны на обработку в реальном времени цифровых потоков, образованных путем оцифровывания аналоговых сигналов. Это обусловливает их сравнительно малую разрядность и преимущественно целочисленную обработку. Однако современные сигнальные процессоры способны проводить вычисления с плавающей точкой над 32-40 разрядными операндами. Кроме того, появился класс медийных процессоров, представляющих собой законченные системы для обработки аудио- и видеоинформации.

Наибольшей специализацией и разнообразием функций обладают микроконтроллеры, используемые во встроенных системах управления, в том числе и в бытовых приборах. Общее число кристаллов с различными системами команд превышает 500, и все они, в силу существования изделий с их использованием, имеют свою устойчивую долю рынка.

В данной курсовой работе на примере цифрового сигнального процессора семейства ADSP-21xx производится разбор команд умножения и деления, выполняемых в АЛУ.

Обобщенная структурная схема персонального компьютера

Центральное устройство управления

Арифметико-логическое устройство

Регистровая память

Дополнительное устройство управления

Оперативная память

Постоянная память

Контроллер

Контроллер

Контроллер

НМД

Клавиатура

Монитор

Контроллер

Контроллер

Принтер

Модем

Центральный процессор

Рис. 1



Центральный процессор в персональных компьютерах представляет собой микропроцессор, то есть построен на одной микросхеме (БИС,СБИС). В его состав входят:

·

·

·

·

·

Модули оперативной и постоянной памяти, связаны с микропроцессором напрямую. Остальные устройства ( монитор, клавиатура, накопители на магнитных носителях и т.д.) связаны с микропроцессором через контроллеры ввода-вывода, которые, в свою очередь, связаны с микропроцессором через системную шину.

Микропроцессор является ядром ЭВМ (рис.1). Он осуществляет обработку данных и функции управления системой. К функциям управления системой относятся :

·

·

·

·

Организация центрального процессора определяется архитектурой и принципами работы ЭВМ ( состав и форматы команд, организация памяти ). Логическая структура включает ряд функциональных средств:

·

·

·

·

Структурно эти средства разбиваются на центральное устройство управления, АЛУ, внутреннюю память и управляющие устройства, связанные с конкретными устройствами вычислительной машины.

Центральное устройство управления принимает и расшифровывает команды, формирует адреса команд и операндов, формирует последовательности управляющих сигналови обеспечивает координацию работы всех функциональных узлов, посредством выработки синхронизирующих сигналов.

Внутренняя память входит в состав первого уровня и связана с АЛУ и другими блоками центрального процессора непосредственно и имеет скорость работы соизмеримую со скоростью работы блоков процессора.

·

·в состав центрального процессора. Емкость ее невысока, скорость высокая, но меньше, чем у управляющей памяти. Основной характеристикой данного типа памяти является разрядность

Арифметико-логическое устройство

Общие сведения, функции и классификация

Арифметико-логическое устройство функционально можноразделить на две части :

а) микропрограммное устройство (устройство управления), задающее последовательность микрокоманд (команд);

б) операционное устройство (АЛУ), в котором реализуется заданная последовательностьмикрокоманд (команд).

Р1

P2

Pm

Устройство управления

An     ....    A2     A1

С у мм ат о р

.......

.......

Рг7

Рг6

l

l-1

2

1

k

k-1

3

2

1

Рг1

Рг5

Рг4

Рг3

Рг2

Y1

Y2

Yn

Nr ..... N2 N1

Рис. 2


Структурная схема АЛУ и его связь с другими блоками машины показаны на  рисунке 2. В состав АЛУ входят регистры Рг1 – Рг7, в которых обрабатывается информация , поступающая из оперативной или пассивной памяти N1, N2, ...NS; логические  схемы, реализующие обработку слов по микрокомандам, поступающим изустройства управления.

Закон переработки информации задает микропрограмма М, которая записываетсяв виде последовательности микрокоманд A1,A2, ..., Аn-1,An. При этом различаютдва вида микрокоманд: внешние, то есть такие микрокоманды, которые поступают  в АЛУ от внешних источников и вызывают в нем те или иные преобразования информации(на рис. 2 микрокоманды A1,A2,..., Аn), и внутренние, которые генерируются в АЛУ и воздействуют на микропрограммное устройство, изменяя естественныйпорядок следования микрокоманд. Например, АЛУ может генерировать признакив зависимости от результата вычислений j,w,Q и др. (j – признак переполнения,w – признак отрицательного числа, Q – признак равенства 0 всех разрядов числа),На рис.2 эти микрокоманды обозначены р1, p2,..., рm.

Результаты вычислений из АЛУ передаются по кодовым шинам записи у1, у2, ...,уs, в ОЗУ.

Функции регистров, входящих в АЛУ:

·  результат вычислений;

Вид обрабатываемой информации

Способ обработки информации

Логическая структура АЛУ

По форме представления чисел

По разрядности

По используемой системе счисления

По способу представления отрицательных чисел

С использованием дополнительного кода

С использованием обратного кода

С использованием непозиционных систем счисления

С использованием пози-ционных систем счисления

С переменной разрядностью

С постоянной разрядностью

С плавающей запятой

С фиксированной запятой

По способу обработки слова во времени

АЛУ с дополнительными регистрами

АЛУ с реализацией операций в запоминающем устройстве

АЛУ с магистральной структурой

АЛУ с жесткой структурой

АЛУ с однородной структурой

Параллельно-последовательные

Последовательные    

Параллельные

Многосумматорные АЛУ

АЛУ с расширенными возможностями

По способу распределения логических функций между регистрами

Рис. 3


·от выполняемой операции);

·

·

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

Часть операционных регистров является программно-доступной, то есть они могутбыть адресованы в команде для выполнения операций с их содержимым. К ним относятся :

·

·

·

остальные регистры программно-недоступные, так как они не могут быть адресованы в программе . Операционные устройства можно классифицировать по виду обрабатываемойинформации, по способу обработки информации и логической структуре. Подробная классификация АЛУ показана на рис. 3.

Сложность логической структуры АЛУ в определенной степени можно охарактеризоватьколичеством отличающихся друг от друга микроопераций, необходимых для  выполнения всего комплекса задач, поставленных перед АЛУ. На входе каждогорегистра собраны соответствующие логические схемы, обеспечивающие такие связи  между регистрами, что позволяют реализовать заданный набор микроопераций.

Выполнение операций над словами сводится к выполнению последовательностимикрокоманд, которые управляют передачей слов в АЛУ и действиями по преобразованию слов. Порядок выполнения микрокоманд определяется алгоритмом выполнения  операций. Следовательно, связи между регистрами АЛУ и функции, которые должнывыполнять регистры, зависят в основном от принятой методики выполнения операций : арифметических, логических и специальной арифметики.

Перечень операций, выполняемых в АЛУ, зависит от назначения цифровой вычислительноймашины и от функций, выполняемых АЛУ при обеспечении работыостальных устройств машины. При представлении операций в виде последовательностеймикроопераций АЛУ должно состоять из элементов; реализующих эти микрооперации.

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

Для получения более простой схемы АЛУ алгоритмы арифметических и логическихопераций следует выбирать из условия получения минимального набора микроопераций. При этом необходимо учитывать требование обеспечения заданного быстродействия АЛУ: слишком ограниченный набор микроопераций может привестик “длинным микропрограммам некоторых операций”, что увеличивает время выполненияданных операций.

Алгоритмы сложения (вычитания) и умножения в АЛУ

Структурная схема микропрограммы сложения показана на рис. 4. Выполнение этого алгоритма состоит в следующем:

1.

2.

3.

Рг1=а

Анализ знака Рг1

Останов

Рг1=Рг2

Анализ переполнения разрядной сетки

Рг2=инв(Рг3)

Рг2=Рг1

Рг1=Рг2

Рг2=инв(Рг1)

Анализ знака результата

“+1” ЦП

Суммирование на Рг2

Рг3=Рг2

Рг2=инв(Рг1)

Анализ знака Рг1

Формирование признака переполнения j

Рг1=b

b

a

-

+

+

+

-

-

  1

  0

Рис.4


4.j, если переполнение отсутствует, то выполняется переход на конец микропрограммы сложения.

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

Множитель

Сумма частичных произведений

Множимое

1

2n

1

n

1

n

множителя

цифра

Рис. 5


Теперь рассмотрим алгоритм умножения. Умножение двоичных чисел с фиксированной запятой можно свести к последовательности сдвигов и сложений.. Наиболее удобен следующий алгоритм: умножение начинается с младших разрядов множителя, который сдвигается вправо, сумма частичных произведений также сдвигается вправо, множимое - неподвижно. На рис. 5 показана графическая интерпретация этого алгоритма.

1.

2.

3.

Рг1=а

Рг2=Рг1

Рг4=Рг2

Рг1=b

CчТ=n

Анализ младшего разряда множителя

Суммирование на Рг2

Рг2=СдвПр(Рг2)

Рг4=СдвПр(Рг4)

СчТ=СчТ-1

Анализ содержимого СчТ

Останов

0

0

¹0

1

Рис.6


4.

5.n раз ( n - разрядность сомножителей )

Структурная схема микропрограммы умножения показана на рис. 6. Ввиду громоздкости деление здесь не рассматривается.

Теперь, можно приступать к рассмотрению конкретного АЛУ, что и будет сделано. В качестве примера возьмем АЛУ цифрового сигнального процессора - специализированного процессора с RISC архитектурой, предназначенного для решения задач цифровой обработки сигналов. Трудно найти такую область техники, где не могли бы применяться сигнальные процессоры. Это цифровая фильтрация, кодирование и декодирование информации, обработка звука и распознавание речи, обработка изображений, медицина, измерительная техника, управляющие системы и многое другое.

Цифровые сигнальные процессоры

Чем же отличается цифровой процессор от обычного микропроцессора ? В первую очередь - архитектурой и системой команд. В основу построения DSP (Digital Signal Processor) положены следующие принципы :

·

·

·

·

·

Гарвардская архитектура подразумевает хранение программ и данных в двух раздельных запоминающих устройствах. Соответственно на кристалле имеются раздельные шины адреса и данных ( в некоторых типах процессоров - несколько шин данных и адреса ). Это позволяет совмещать во времени выборку и исполнение команд

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

Аппаратный умножитель применяется для сокращения времени выполнения одной из основных операций цифровой обработки сигнала - умножения. В процессорах общего назначения эта операция используется за несколько тактов сдвига и сложения ( см. рис.5 ) и занимает много времени, а в DSP благодаря специализированному умножителю - один цикл.

Алгоритм выполнения сложения и деления в арифметико-логическом устройстве, на примере цифрового сигнального процессора семейства ADSP-21xx.

Все устройства в процессорах этого семейства 16-и битные с фиксированной точкой. Почти все операции подразумевают представление знаковых чисел в форме дополнения до двух. Остальные же используют беззнаковые числа или просто строки битов. Специальная поддержка имеется для многословных вычислений и блочной плавающей арифметики.

Арифметика и типы данных

Строки битов

Это простейшая форма записи; 16 бит составляют строку битов. Примерами операций, в которых используется этот формат, являются логические операции NOT,AND,OR,XOR. Эти операции, исполняемые АЛУ, считают, что их аргументы строки битов и не заботятся о знаке или о положении десятичной точки

Числа без знака

Беззнаковые двоичные числа могут принимать только положительные значения и потому имеют почти вдвое больший диапазон, чем знаковые числа той же длины. Младшие слова чисел с увеличенной точностью используются как беззнаковые числа.

Числа со знаком в форме дополнения до двух

Для арифметики процессоров семейства термин “знаковый” всегда обозначает числа. Записанные в форме дополнения до двух. Многие инструкции процессора подразумевают или поддерживают арифметику по модулю 2.

Дробь 1.15

Арифметические инструкции процессоров семейства оптимизированы для операций в дробном двоичном формате 1.15. В этом формате левый бит числа обозначает его знак, и 15 оставшихся бит представляют собой числа от -1 до почти 1 ( из-за несимметричности представления знаковых чисел ).

Арифметические операции АЛУ

Все арифметико-логические операции трактуют свои операнды и получают результаты как 16 разрядные битовые строки, за исключением примитивов знакового деления (DIVS). Различные флаги трактуют результаты как числа со знаком: флаг переполнения (AV) и флаг отрицательного числа (AN).

Логика флага переполнения основана на арифметике по модулю 2. Он устанавливается если знаковый бит изменялся непредсказуемым образом. Например при сложении двух положительных чисел, результат также должен быть положителен. Если же происходит переполнение ( перенос в знаковый бит, устанавливающий его в единицу, так что результат получается отрицательным ), то устанавливается бит AV.

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

Арифметика МАС

Результаты умножения представляют собой битовые строки. Операнды же обрабатываются так, как это указано в самой инструкции ( умножение знаковых, умножение беззнаковых, умножение знакового на беззнаковое или операция округления ). 32-битный результат из умножителя считается знаковым, так как происходит знаковое расширение на все 40 бит наборов регистра умножителя ( MR ).

Все процессоры семейства поддерживают два формата коррекции результата умножения :

·

·

Когда процессор умножает два 1.15 операнда, результат является числом в формате 2.30 ( два знаковых бита и 30 дробных бит ). В дробном режиме МАС автоматически сдвигает результат умножения влево на один бит перед переносом его в регистр результата ( MR ). После этого сдвига формат результата становится 1.31, что позволяет округлить его до формата 1.15.

В целочисленном режиме сдвиг влево не происходит. Например, если операнды формата 16.0, то 32-битный результат умножения будет в формате 32.0. Более того здесь сдвиг не нужен, ибо он изменит значение результата.

Арифметика устройства сдвига

Многие сдвиговые операции созданы специально для знаковых или беззнаковых чисел: логические сдвиги предполагают беззнаковые операнды, тогда как арифметические сдвиги предполагают знаковые операнды.

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

АЛУ

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

Структура АЛУ

На рисунке 7 показана блок-схема АЛУ.

АЛУ имеет три 16-битных регистра, доступных для программиста : X,Y -регистры операндов, а R - регистр результата. АЛУ использует входной сигнал переноса ( CI ), который означает бит переноса в регистре арифметического состояния ( ASTAT ). АЛУ генерирует шесть статусных сигналов :

· AZ )

· ( AN )

· ( AC )

· ( AV )

· (AS )

· AQ )

В конце цикла все сигналы арифметического статуса изменяют состояния соответствующих битов в регистре арифметического статуса ( ASTAT ).

Входной порт X может принимать данные из двух источников : из блокарегистров АХ или с шины результата. Шина результатов ( R ) соединяет выходные регистры всех вычислительных устройств, позволяя им быть непосредственно операндами инструкций. Блок регистров АХ состоит из двух регистров : АХ0 и АХ1. Эти регистры читаемы и могут быть записаны через шину DMD. Выход блока регистров АХ таков, что один из них может

Шина PMD

Шина DMD

АХ регистры 2х16

MUX

MUX

MUX

MUX

АR регистр

АF регистр

Шина R

AZ

AN

AC

AV

AS

AQ

CI

X

Y

R

АЛУ

Рис. 7

АY регистры 2х16



обеспечивать операнд для АЛУ, в то время, как другой может записываться в память через шину DMD.

Входной порт Y также может принимать данные из двух источников : из набора регистров АY или из регистра обратной связи AF. Блок регистров AY состоит из двух регистров AY0 и AY1. Эти регистры читаемы и могут быть записаны через шину DMD, а также могут быть записаны через шину PMD. Выход блока регистров AY совпадает по своим возможностям с блоком регистров АХ.

Результат работы АЛУ загружается либо в регистр обратной связи AF, либо в регистр результата AR. Регистр обратной связи - внутренний регистр АЛУ, который позволяет использовать результат непосредственно, как операнд Y. Регистр результата AR может записываться как на шину DMD, так и на шину результатов. Он также непосредственно загружаем с шины DMD.

Набор инструкций позволяет осуществить чтение этих регистров с шины PMD, но при этом нужно использовать устройство обмена между DMD-PMD шинами.

Любые регистры, связанные с АЛУ могут как читаться, таки писаться в одном цикле. Регистры читаются в начале цикла и записываются в конце. Новое значение, записанное в регистр, не может быть считано до начала следующего цикла.

АЛУ содержит два набора регистров AR, AF, АХО, АХ1, AYО, AY1. В каждый момент времени доменлишь один набор. Дополнительный набор регистров может быть сделанактивным (например, при обработке прерывания) для очень быстрого переключения контекстов. Новая задача, такая, как обработка прерывания,может быть выполнена без запоминания текущего состояния регистровАЛУ.

Выбор первичного или вторичного набора регистров контролируется  битом 0 в регистре режима и статуса процессора (MSTAT). Если этот битнулевой, используется первичный набор, если же он единица, то используется  вторичный набор регистров.

Стандартные функции

Вот список стандартных функций АЛУ:

R=X+Y

сложение Х и Y

R=X+Y+Cl

сложение Х и Y с переносом

R=X – Y

вычесть Y из Х

R=X – Y – Cl – 1

вычесть Y из Х с заемом

R=Y – Х

вычесть Х из Y

К=Y – X – Cl – 1

вычесть Х из Y с заемом

R=– X

арифметическое отрицание Х

R=– Y

арифметическое отрицание Y

R=Y+1

инкремент Y

R=Y – 1

декремент Y

R=PASS Х

результат равен операнду Х

R=PASS Y

результат равен операнду Y

R=O (PASS 0)

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

R=ABS Х

результат равен абсолютному значению Х

R=X AND Y

логическое и (AND) Х и Y

R=X OR У

логическое или (OR) Х и У

R=X XOR У

исключающее логическое или (XOR) Х и У

R=NOT Х

логическое отрицание Х

R=NOT Y

логическое отрицание У

Для обработки чисел с повышенной точностью предусмотрен сигналпереноса и флаг переноса (AC). Операция сложения с переносом (+Cl)  предназначена для сложения "верхних" частей чисел с повышеннойточностью. Вычитание с заемом (+CI-1) предназначено для вычитания "верхних" частей чисел с повышенной четностью.

Режим “насыщения” и “защелки”

Регистр AR имеет режим работы когда он автоматически устанавливается  в максимальное положительное или максимальное отрицательноечисло при возникновении переполнения Этот режим включается установкойбита 3 в регистре режима и статуса процессора (MSTAT) . При включенномрежиме насыщения, значение, получаемое в АR, зависит от флагов переносаи переполнения, сгенерированных АЛУ в текущем цикле. Ниже приведенатаблица, показывающая содержимое AR в зависимости от флагов привключенном режиме насыщения.

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

Регистр А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.

AX0

AY0

AF

AY1

AX1

L

S

B

Сдвиг влево

MUX

MUX

Шина R

Младшее делимое

X                                  Y

AЛУ

R=PASS Y

Делитель

Старшее делимое

Старший бит

Старший бит

Рис. 8

AQ


При делении беззнаковых чисел инструкция 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 равноколичеству бит справа от десятичной точки делителя; тогда количество бит 

MUX

Шина R

Делитель

AX0

AY0

AF

AX1

L

S

B

Сдвиг влево

Младшее делимое

Рис.9

X                                  Y

AЛУ

R=X+Y если AQ=1

R=Y-X если AQ=0

Старший бит

Старший бит

AQ

Младшие 15 бит

Частичный остаток



слева от десятичной точки частного есть 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.

PMD

DMD

MX регистры 2х16

MUX

MUX

MUX

MUX

MUX

X                     Y

УМНОЖИТЕЛЬ

Р

MY регистры 2х16

СЛОЖЕНИЕ / ВЫЧИТАНИЕ

R2                   R1                   R0

MF регистр

MR0 регистр

MR1 регистр

MR2 регистр

MUX

M

U

X

Шина R

MV

Рис.10


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

На сегодняшний день производительность процессоров при выполнении арифметических операций является довольно значительным параметром. Сегодняшний компьютер невозможно представить без средств мультимедиа , а мультимедиа - это огромные объемы оцифрованной графики и звука, причем сжимаемые и разжимаемые в реальном времени ( форматы MPEG, GSM). Конечно многие из обязанностей центрального процессора берут на себя контроллеры ввода-вывода ( звуковая и видеокарты ), но чаще всего в них нет встроенной поддержки кодирования и декодирования информации. Еще пример: сейчас используются базы данных с максимальным размером около 4 Тб. Соответственно, такие объемы информации требуют значительных вычислительных возможностей для ускорения поиска и обращения к записям.

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


Список литературы

1.iка”,1979

2.

3.i486“,1993

4.D-ROM “Intel на Comtek’98” ( образ российского веб-сайта Intel )

5.CD-ROM “Intel Architecture Information Library”

6.


TOC o "1-3"

Введение............................................................................................................................................................. GOTOBUTTON _Toc438405611PAGEREF _Toc438405611 3

Типы микропроцессоров............................................................................................................................ GOTOBUTTON _Toc438405612PAGEREF _Toc438405612 3

Обобщенная структурная схема персонального компьютера................................................. GOTOBUTTON _Toc438405613PAGEREF _Toc438405613 4

Арифметико-логическое устройство................................................................................................... GOTOBUTTON _Toc438405614PAGEREF _Toc438405614 5

Общие сведения, функции и классификация......................................................................................... GOTOBUTTON _Toc438405615PAGEREF _Toc438405615 5

Алгоритмы сложения (вычитания) и умножения в АЛУ.................................................................. GOTOBUTTON _Toc438405616PAGEREF _Toc438405616 9

Цифровые сигнальные процессоры...................................................................................... GOTOBUTTON _Toc438405617PAGEREF _Toc438405617 11

Алгоритм выполнения сложения и деления в арифметико-логическом устройстве, на примере цифрового сигнального процессора семейства ADSP-21xx............................. GOTOBUTTON _Toc438405618PAGEREF _Toc438405618 11

Арифметика и типы данных.................................................................................................................. GOTOBUTTON _Toc438405619PAGEREF _Toc438405619 12

Строки битов............................................................................................................................................ GOTOBUTTON _Toc438405620PAGEREF _Toc438405620 12

Числа без знака.......................................................................................................................................... GOTOBUTTON _Toc438405621PAGEREF _Toc438405621 12

Числа со знаком в форме дополнения до двух................................................................................... GOTOBUTTON _Toc438405622PAGEREF _Toc438405622 12

Дробь 1.15.................................................................................................................................................... GOTOBUTTON _Toc438405623PAGEREF _Toc438405623 12

Арифметические операции АЛУ........................................................................................................... GOTOBUTTON _Toc438405624PAGEREF _Toc438405624 12

Арифметика МАС..................................................................................................................................... GOTOBUTTON _Toc438405625PAGEREF _Toc438405625 12

Арифметика устройства сдвига.......................................................................................................... GOTOBUTTON _Toc438405626PAGEREF _Toc438405626 13

АЛУ..................................................................................................................................................................... GOTOBUTTON _Toc438405627PAGEREF _Toc438405627 13

Структура АЛУ......................................................................................................................................... GOTOBUTTON _Toc438405628PAGEREF _Toc438405628 13

Стандартные функции............................................................................................................................ GOTOBUTTON _Toc438405629PAGEREF _Toc438405629 15

Режим “насыщения” и “защелки”....................................................................................................... GOTOBUTTON _Toc438405630PAGEREF _Toc438405630 16

Деление......................................................................................................................................................... GOTOBUTTON _Toc438405631PAGEREF _Toc438405631 16

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

Блок-схема МАС......................................................................................................................................... GOTOBUTTON _Toc438405633PAGEREF _Toc438405633 18

Операции МАС........................................................................................................................................... GOTOBUTTON _Toc438405634PAGEREF _Toc438405634 20

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

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

Список литературы............................................................................................................................... GOTOBUTTON _Toc438405637PAGEREF _Toc438405637 24