Сложность логической структуры АЛУ в определенной степени можно охарактеризовать количеством отличающихся друг от друга микроопераций, необходимых для выполнения всего комплекса задач, поставленных перед АЛУ. На входе каждого регистра собраны соответствующие логические схемы, обеспечивающие такие связи между регистрами, что позволяют реализовать заданный набор микроопераций.
Выполнение операций над словами сводится к выполнению последовательности микрокоманд, которые управляют передачей слов в АЛУ и действиями по преобразованию слов. Порядок выполнения микрокоманд определяется алгоритмом выполнения операций. Следовательно, связи между регистрами АЛУ и функции, которые должны выполнять регистры, зависят в основном от принятой методики выполнения операций : арифметических, логических и специальной арифметики.
Перечень операций, выполняемых в АЛУ, зависит от назначения цифровой вычислительной машины и от функций, выполняемых АЛУ при обеспечении работы остальных устройств машины. При представлении операций в виде последовательностей микроопераций АЛУ должно состоять из элементов; реализующих эти микрооперации.
Таким образом, структура АЛУ определяется набором микроопераций, необходимых для выполнения заданных арифметических, логических и специальных операций , а задачу построения АЛУ можно свести к задаче определения набора микроопераций, который позволяет составить микропрограмму любой из заданных операций. Такой набор легко получить. если записать микропрограммы всех операций, выполняемых в АЛУ, и выбрать из них все микрооперации, входящие в микропрограммы хотя бы один раз. Однако, если при этом алгоритм операций выбирать произвольно, то количество микроопераций, входящих в полный набор, может оказаться слишком большим и, следовательно, АЛУ будет сложным.
Для получения более простой схемы АЛУ алгоритмы арифметических и логических операций следует выбирать из условия получения минимального набора микроопераций. При этом необходимо учитывать требование обеспечения заданного быстродействия АЛУ: слишком ограниченный набор микроопераций может привести к “длинным микропрограммам некоторых операций”, что увеличивает время выполнения данных операций.
Алгоритмы сложения (вычитания) и умножения в АЛУ
Структурная схема микропрограммы сложения показана на рис. 4. Выполнение этого алгоритма состоит в следующем:
1.Первое слагаемое а устанавливается на Рг1, анализируется его знак: если знак отрицательный, то операнд инвертируется и передается на Рг3, если положительный - передается без инверсии через Рг2 на Рг3
2.Второе слагаемое также устанавливается на Рг1 и анализируется его знак: если знак отрицательный, то операнд инвертируется, если положительный - сразу начинается суммирование операндов на Рг2 ( сумматоре )
3.После суммирования анализируется знак результата: если результат отрицательный, то он инвертируется, если положительный - добавляется “+1” ЦП к младшему разряду результата и выполняется анализ признаков переполнения
|
4.В случае переполнения разрядной сетки машины формируется признак переполнения j, если переполнение отсутствует, то выполняется переход на конец микропрограммы сложения.
Для того, чтобы структурная схема, показанная на рис. 4 могла выполнять операцию вычитания, достаточно перед выполнением операции проинвертировать знак второго слагаемого.
|
Теперь рассмотрим алгоритм умножения. Умножение двоичных чисел с фиксированной запятой можно свести к последовательности сдвигов и сложений.. Наиболее удобен следующий алгоритм: умножение начинается с младших разрядов множителя, который сдвигается вправо, сумма частичных произведений также сдвигается вправо, множимое - неподвижно. На рис. 5 показана графическая интерпретация этого алгоритма.
1.В начале операции все регистры устанавливаются в нулевое состояние.
2.Множимое и множитель располагаются в определенных регистрах, предусматриваются также регистры, в которых образуется сумма частичных произведений.
3.Анализируется младший разряд множителя: если он имеет значение “1”, то к сумме частичных произведений прибавляется множимое.
|
4.Производится сдвиг суммы частичных произведений и множителя на один разряд вправо.
5.Действия 3 и 4 повторяются 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 ).