Xreferat.com » Рефераты по компьютерным наукам » Описание процессоров семейства ADSP

Сколько стоит написать твою работу?

Работа уже оценивается. Ответ придет письмом на почту и смс на телефон.

?Для уточнения нюансов.
Мы не рассылаем рекламу и спам.
Нажимая на кнопку, вы даёте согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности

Спасибо, вам отправлено письмо. Проверьте почту .

Если в течение 5 минут не придет письмо, возможно, допущена ошибка в адресе.
В таком случае, пожалуйста, повторите заявку.

Спасибо, вам отправлено письмо. Проверьте почту .

Если в течение 5 минут не придет письмо, пожалуйста, повторите заявку.
Хотите промокод на скидку 15%?
Успешно!
Отправить на другой номер
?Сообщите промокод во время разговора с менеджером.
Промокод можно применить один раз при первом заказе.
Тип работы промокода - "дипломная работа".

Описание процессоров семейства ADSP

  1. писание сигнальных процессоров семейства ADSP 2100

Семейство процессоров ADSP-2100 представляет собой совокупность программируемых микропроцессоров с общей структурой, оптимизированную для обработки аналогового сигнала в цифровой форме, а так же для других прикладных целей. Различные микропроцессоры отличаются друг от друга преимущественно типом периферийных устройств, которые дополняют основную структуру. В различных членах семейства могут имеется память, таймер, последовательный и параллельный порты. Кроме того, процессоры ADSP-21msp58/59 включают аналоговый интерфейс для преобразования сигнала звуковой частоты.

    1. Функциональные модули

Таблица 1.1 показывает характеристики, которыми обладают отдельные члены семейства.

Таблица 1.1


Computational Units (вычислительный модуль) – каждый процессор семейства ADSP-2100 содержит три полнофункциональных независимых вычислительных модуля: arithmetic/logic unit (ALU) – арифметичиско-логический, multiplier/accumulator (MAC) – накопитель, barrel shifter – сдвиговый расширитель.Все модули оперируют с 16-разрядными словами, а также обеспечивают аппаратную поддержку мультиточности.

Data Address Generators & Program Sequencer (генераторы адресов данных и программа sequencer) – два отдельных генератора адресов обеспечивают адреса для встроенной и внешней памяти. Сдвоенные генераторы адресов данных позволяют процессору генерировать адреса для двух выборок операнда одновременно, что максимизирует производительность.

Memory (память) – в семействе ADSP-2100 применяется архитектура памяти, в которой данные хранятся в секции данных, а в секции программ хранятся как данные так и команды. Все процессоры семейства имеют оперативную память состоящую и этих двух сегментов. Быстродействие внутренней памяти позволяет процессору выбирать два операнда (один из области данных, другой из области программ) в течении одного цикла.

Serial Ports (последовательные порты) – обеспечивают последовательный интерфейс связи с аппаратными средствами, предназначенными для сжатия, хранения и обработки данных. Интерфейс совместим с большим числом известных устройств. Каждый порт может использовать как внутренний таймер, так и внешний. Последовательный порт 0 имеет многоканальные возможности.

Timer – 8-разрядный программируемый таймер/счетчик обеспечивает периодическую генерацию прерываний.

Host Interface Port (главный связной порт) – обеспечивает прямое соединение с главным процессором ЭВМ. Например Motorola 68000, Intel 8051 или другой процессор семейства ADSP-2100 могут быть легко соединены с главным интерфейсом.

DMA Ports (порты DMA) – в ADSP-2181 внутренний (IDMA) и байтовый (BDMA) DMA порты обеспечивают эффективную передачу данных из внутренней памяти и в неё. IDMA порт имеет мультиплексный адрес и 16-битную шину данных. IDMA порт полностью асинхронный данные в него могут записываться, в то время когда ADSP-2181 полностью занят.

Analog Interface (аналоговый интерфейс) – процессоры ADSP-21msp58/59 имеют встроенную схему для цифровой обработки аналогового сигнала. Эта схема содержит АЦП (ADC) и ЦАП (DAC), аналоговые и цифровые фильтры и параллельный интерфейс связи с ядром процессора.

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

  • генерировать следующий адрес программы;

  • выбирать следующую команду;

  • выполнять один или два шага программы;

  • модифицировать один или два указателя адреса данных;

  • выполнять вычисление.

В этом же такте процессоры, которые имеют релевантные модули могут:

  • принимать и/или передавать данные через последовательный порт;

  • принимать и/или передавать данные через главный порт интерфейса;

  • принимать и/или передавать данные через DMA порты;

  • принимать и/или передавать данные через аналоговый интерфейс.

    1. Системный интерфейс и интерфейс памяти

В каждом процессоре семейства ADSP-2100 четыре внутренних шины соединяют внутреннюю память с другими функциональными модулями:

  • шина адреса;

  • шина данных;

  • шина памяти программ;

  • шина памяти данных.

Внешние устройства могут получать контроль над шинами посредством сигналов предоставления (BR,BG). Процессоры ADSP-2100 могут работать в то время когда шины предоставлены другому устройству, пока не требуется операции с внешней памятью.

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

    1. Система команд

Процессоры семейства ADSP-2100 используют единую систему команд для совместимости с устройствами с более высокой интеграцией. Микропроцессоры ADSP-2171, ADSP-2181 и ADSP-21msp58/59 имеют ряд дополнительных команд. Система команд позволяет выполнять мультифункциональные команды за один такт процессора, с другой стороны каждая команда может быть выполнена отдельно в своем такте. Ассемблер имеет алгебраический синтаксис, для повышения удобочитаемости легкости кодирования.

    1. Эффективность сигнального процессора

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

  • Быстрая и гибкая арифметика – архитектура процессоров ADSP-2100 позволяет в одном производить такие операции, как умножение, умножение с накоплением, произвольное смещение, а так же ряд стандартных арифметических и логических операций в одном цикле процессора.

  • Расширенный динамический диапазон – 40-разрядный аккумулятор имеет восемь резервных бит защиты от переполнения при последовательном суммировании, которые гарантируют, что потери данных быть не может.

  • Выборка двух операндов за один цикл – при расширенном суммировании на каждом цикле процессора необходимо два операнда. Все члены семейства ADSP-2100 способны поддерживать обработку данных с двумя операндами, сохранены ли данные в памяти или нет.

  • Аппаратные циклические буферы – большой класс алгоритмов обработки цифро-аналоговых сигналов, включая цифровые фильтры требуют наличия циклических буферов. Архитектура семейства ADSP-2100 имеет аппаратные средства для обработки указателя адреса wraparound, что упрощает реализацию круговых буферов.

  • Переход по нулю – повторяющиеся алгоритмы наиболее логично выражать через циклы. Программа Sequenser ADSP-2100 поддерживает работу с циклическим кодом с нулем на верху, в объединении со структурой clearest это повышает эффективность системы. Также нет препядствий для работы с условными переходами.


  1. Основная архитектура

В этом разделе описывается основная архитектура процессоров семейства ADSP-2100, схема которой приведена на рис. 2.1.

    1. Вычислительные модули

Как уже говорилось выше каждый процессор семейства ADSP-2100 содержит три независимых вычислительных модуля:

  • арифметико-логический (ALU);

  • умножение с накоплением (MAC);

  • расширитель (shiffter).

Эти устройства работают с 16-разрядными данными и обеспечивают аппаратную поддержку мультиточности.

ALU выполняет ряд стандартных арифметических и логических комманд в дополнене к примитивам деления. MAC выполняет одноцикловые операции умножения, умножения/сложения, умножения/вычитания. Shiffter осуществляет логические и арифметические сдвиги, нормализацию, денормализацию и операцию получения порядка, атак же управление форматом данных,разрешая работу с плавоющей точкой. Вычислительные модули размещаются последовательно друг за другом, таким образом чтобы выход одного мог стать входом другого в следующем цикле. Результаты работы модулей собираются на 16-разрядную R-шину.

Все три модуля содержат входные и выходные регистры, которые доступны черех 16-разрядную DMD-шину. Комманда, выполняемые в модулях, берут в качестве операндов данные находящиеся в регистрах ввода и после выполнения записывают результат в регистры вывода. Регистры являются как бы промежуточным хранилищем между памятью и вычислительной схемой. R-шина позволяет результату одного вычисления стать операндом к другой операции. Это позволяет сэкономить время обходясь без лишних пересылок модуль-память.




    1. Генераторы адресов данных и программа sequencer

Два специализированных генератора адресов данных (DAGs) и мощная программа sequencer гарантируют эффективное использование вычислительных модулей. DAGs обеспечивают адреса памяти, когда необходимо поместить данные из памяти в регистры ввода вычислительных модулей, либо сохранить в результат из выхоных регистров. Каждый DAG отвечает за четыре указателя адреса. Если указатель используется для косвенной адресации то измениятся значение некоторого регистра. С двумя генераторами процессор может выдавать два адреса одновременно для выборки из памяти двух операндов.

Для автоматической адресации модуля круговых буферов значение длины операнда может быть связано с каждым указателем. (Круговая буферная особенность также используется последовательными портами для автоматической передачи данных).

DAG1 обеспечивает адреса только для данных, DAG2 – для данных и программ. Когда в регистре состояния (MSTAT) установлен соответствующий бит режима, адрес вывода DAG1 прежде чем попасть на шину адреса инвертируется. Эта особенность облегчает работу в двоичной системе.

Программа Sequenсer обеспечивает последовательность команд и адресацию памяти программы. Sequencer управляется регистром команд, который указывает на команду, которая в данный момент выполняется. Выбранные команды записываются в регистр команд за один такт процессора и выполняются в течении следующего. Чтобы уменьшить количество циклов, sequencer поддерживает работу с условными переходами.

    1. Шины

Процессоры семейства имеют пять внутренних шин. Шины адреса программы (PMA) и адреса данных (DMA) связаны с адресами памяти данных и программы. Шина данных программы (PMD) и шина данных (DMD) используются для передачи информации связанной с областями памяти. Шины мультиплексированы в одну внешнюю шину адреса и одну внешнюю шину данных. R-шина предназначена для передачи промежуточных результатов непосредственно между вычислительными модулями.

Адресная шина PMA шириной 14 бит обеспечивает достум к 16Кбайтам смешанной системы команд и данных. 24-разрядная шина PMD предназначена для работы с 24-битными командами.

Адресная шина DMA шириной 14 бит, обеспечивает прямой доступ к 16Кбайтам области данных. 16-разрядная шина DMD предназначена для внутренних пересылок между любыми регистрами процессора и регистров с памятью в одиночном цикле. Адрес памяти данных исходит из двух источников: абсолютное значение, определенное в системе команд (прямая адресация) или вывод данных адресует генератор (косвенная адресация). Воспользоваться данными из области команд можно лишь с помощью косвенной адресации.

Шина данных памяти программы (PMD) предназначена для передачи данных в вычислительные модули и считывания результата вычислений через PMD-DMD модуль обмена. Этот модуль позволяет передавать данные от одной шины к другой. Он имеет аппаратные средства для перехода от 8-разрядной шины к другой.


  1. Внутренние переферийные устройства

Этот раздел описывает дополнительные функциональные модули, которые включены в различные процессоры ADSP-2100 семейства.

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


Большенство процессоров семейства ADSP-2100 имеют по два последовательных двунаправленных порта. Порты – синхронные и используют кадровые сигналы для контроля за приемом-передачей данных. Каждый порт имеет внутренний генератор частоты, но в то же время может использовать внешний генератор. Сигналы синхронизации могут вырабатываться как самим портом, так и внешним устройством. Длина кадра обмена может меняться от трех до шести бит. Последовательный порт SPRT0 имеет многоканальные возможности и пзволяет обмен данными произвольной длины от 24 до 32 байт. Второй порт SPORT1 может быть сконфигурирован с помощью внешних прерываний IRQ0 и IRQ1.

    1. Таймер

Регистр счета (16-разрядов) определяет время генерации прерываний, прерывание вырабатывается когда значение регистра равно нулю.

    1. Главный интерфейсный порт (HIP)

Главный интерфейсный порт – параллельный порт ввода-вывода осуществляет прямое соединение с процессором. Через него производится обмен между ADSP-2100 и памятью главной ЭВМ. HIP состоит из регистров, через которые ADSP-2100 и главный процессор обмениваются информацией о состоянии и данными. HIP может быть сконфигурирован следующим образом:

  • 8-разрядная или 16-разрядная шина;

  • мультиплексная шина данных/шина адреса или отдельно шина данных и шина адреса;

  • чтение стробирующих сигналов READ/WRITE.

    1. DMA порты (ADSP-2181)

ADSP-2181 два DMA порта внутренний (IDMA) порт и байтовый (BDMA). IDMA порт обеспечивает эффективную связь между главной системой и сигнальным процессором. Он используется для связи с внутренней памятью программы и памятью данных за один такт процессора. IDMA порт имеет 16-разрядный мультиплексный адрес и шину данных. IDMA порт полностью ассинхронный и может работать даже когда процессор полностью занят.

Байт памяти контроллера DMA позволяет загружать и сохранять комманды программ и данные, находящиеся в памяти. BDMA схема способна обращаться к ячейке памяти, в то время как процессор работает в обычном режиме, используя только один такт процессора для передачи 8-,16- или 24-разрядных данных.

    1. Аналоговый интерфейс

Входной аналоговый интерфейс состоит из входных усилителей и 16-разрядного аналогоцифрового преобразователя (ADC). Аналогично на выходе находится цифроаналоговый преобразователь и выходной дифференциальный усилитель.


  1. ADSP-2100 - средства разработки

Семейство ADSP-2100 сопровождается полным набором программного обеспечения и аппартных средств для разработки. Система средств разработки для ADSP-2100 включает утилиты программного обеспечения для разработки программы и EZ-комплект для отладки аппаратных средств.

Программное обеспечение включает:

  • System Builder (системный составитель программы) – определяет структуру аппаратной системы. Он описывает количество внешней памяти и доступные порты ввода/вывода.

  • Assembler (ассемблер) – транслирует исходный код и модули данных и обеспечивает синтаксис высокого уровня. В дополнение к полной диагностике системы Ассемблер обеспечивает макро обработку: включение файлов и модульную обработку кода.

  • Linker (компановщик) – связывает раздельные модули программы, получая связанный код, и направляет его к аппаратным средствам, описанным с помощью System Builder.

  • Simulator (тренажер) – выполняет интерактивное моделирование аппаратной конфигурации описанной System Builder. Он отмечает запрещенные команды и поддерживает полную символическую трансляцию и дизассемблирование.

  • PROM Splitter – этот модуль по выходным данным компановщика генерирует код совместимый с форматом памяти PROM.

  • C compiler (С транслятор) – читает исходники написаные на С в формате ANSI и код на языке семейства ADSP-2100, готовый к ассемблированию.


Вычислительные модули


  1. Краткое описание

    1. Двоичные строки

Двоичные строки - самое простое представление чисел в процессорах семейства ADSP-2100. Этот формат, например, используют элементарные логические функции: NOT, OR, AND, XOR и т.д. Вычислительный модуль ALU обрабатывает эти числа ввиде двоичных последовательностей не привлекая возможности работы с плавающей точкой и знаковым разрядом.

    1. Беззнаковые числа

Под двоичными числами без знака понимаются положительные числа. Диапазон их представления в процессоре в два раза больше чем у чисел со знаком. Числа большой точности обрабатываются как беззнаковые.

    1. Числа со знаком: двойное дополнение

Расматривая арифметику семейства ADSP-2100 знаковые числа можно отнести к числам с двойным дополнением. Дольшенства операций процессора поддерживают работу с двойным дополнением. Процессоры семейства ADSP-2100 не поддерживают работу с остатками и BCD-форматом.

    1. Дробное представление: 1.15

Арифметики ADSP-2100 приспособленна для работы с числами в дробном двочном формате, называемом 1.15. В этом формате имеется один знаковый разряд (MSB) и пятнадцать дробных битов.

Далее представленны весовые значения битов в формате 1.15:


–20 2 –1 2 –2 2 –3 2 –4 2 –5 2 –6 2 –7 2 –8 2 –9 2 –10 2 –11 2 –12 2 –13 2 –14 2 –15


Числа в формате 1.15 Десятичный эквивалент

0x0001

0x7FFF

0xFFFF

0x8000

0.000031

0.999969

–0.000031

–1.000000


    1. Арифметика ALU

Все комманды ALU обрабатывают операнды, как двоичные 16-разрядные последовательности. Биты состояния: AV- переполнение, AN – знак.

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

Логика бита переноса основана на арифметике чисел без знака. Он устанавливается если перенос сгенерирован 16-ым битом (MSB).

    1. Арифметика MAC

Операциив модуле MAC производятся над числами, представленными ввиде двоиных последовательностей и результет выдается в том же виде.

Процессоры семейства ADSP-2100 поддерживают два режима корректировки формата: дробный режим – для дробных операндов (формат 1.15) и целочисленный режим для целых чисел формата 16.0.

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

В целочисленном режиме сдвига влево не происходит. Напрмер при умножении операндов 16.0 результат представляется ввиде 32.0. Сдвиг влево в этом случае не нужен, т.к. он изменит числовое представление результата.

    1. Резюме

Таблица 1.1 обобщает некоторые арифметические характеристики процессоров семейства ADSP-2100.

Таблица 1.1

Операции Арифметические форматы

Операнды Результат
ALU

Сложение Знаковые или без знака Установка флагов
Вычитание Знаковые или без знака Установка флагов
Логические операции Двоичные строки Тот же, что и операнды
Деление Явно знаковые/без знака Тот же, что и операнды
Переполнение ALU Знаковые Тот же, что и операнды
Бит коррекции ALU 16-разрядные без знака Тот же, что и операнды
Насыщение ALU Знаковые Тот же, что и операнды
MAC (дроб.)

Умножение (Р) 1.15 Явно знаковые/без знака 32 разряда (2.30)
Умножение (MR) 1.15 Явно знаковые/без знака 2.30 сдвинутый к 1.31
Умножение с накоплением 1.15 Явно знаковые/без знака 2.30 сдвинутый к 1.31
Умножение с вычитанием 1.15 Явно знаковые/без знака 2.30 сдвинутый к 1.31
Насыщение МАС Знаковые Тот же, что и операнды
МАС(цел.)

Умножение (Р) 1.15 Явно знаковые/без знака 32 разряда (2.30)
Умножение (MR) 16.0 Явно знаковые/без знака 32.0 без сдвига
Умножение с накоплением 16.0 Явно знаковые/без знака 32.0 без сдвига
Умножение с вычитанием 16.0 Явно знаковые/без знака 32.0 без сдвига
Насыщение МАС Знаковые Тот же, что и операнды
Shifter

Логические сдвиги Баз знака/двоичные строки Тот же, что и операнды
Арифметические сдвиги Знаковые Тот же, что и операнды
Определение порядка Знаковые Тот же, что и операнды

  1. Арифметико-логический модуль ALU

Модуль ALU предоставляет набор стандартных арифметических и логических функций. Арифметические функции: сложение, вычитание, отрицание, инкремент, декремент и модуль.Они дополненны двумя примитивами деления, с помощью которых возможна реализация цикла многократного деления. Логические: OR, AND, XOR (исключающее ИЛИ) и NOT.

    1. Блок-схема ALU

На рисунке 2.1 показана структурная схема вычислительного модуля ALU.


ALU – это 16-разрядное устройство с двумя 16-разрядными портами ввода данных X и Y,и одним портом вывода - R . ALU генерирует шесть сигналов состояния: ноль (AZ), негатив (AN), перенос (AC), переполнение (AV), знак (AS) и quotient (AQ). В конце каждого цикла эти сигналы сохраняются в регистре состояния процессора (ASTAT).

Порт ввода X может принимать данные из двух источников: из регистра АX и с шины результатов R. R-шина соединяет выходные регистры всех вычислительных модулей. Регистр AX предназначен только для порта X и состоит из двух частей AX0 и AX1. Эти регистры подключенны к DMD-шине. Система команд позволяет чтение регистра AX и с помощью PMD-шины, но прямого соединения с ней нет, эта операция использует модуль DMD-PMD обмена. Выводы регистров AX0 и AX1 реализованы таким образом, чтобы один обеспечивал ввод в ALU, а другой в это время управлял DMD-шиной.

Порт ввода Y также принимает данные из двух источников: из регистра AY и регистра обратной связи ALU – AF. Регистр AY привязан к порту Y и состои из двух регистров AY0 и AY1. Эти регистры даступны для чтения и записи с DMD-шины и перезаписываемы с PMD-шины. Система комманд позволяет читать регистры AY0 и AY1 с помощью PMD-шины, но то же с использованием DMD-PMD модуля. Выводы ругистров AY0 и AY1 реализованы аналогично регистрам AX0 и AX1.

Выход ALU подключен к выходному регистру результата AR и через регистр обратной связи AF на вход. AF – внутренний регистр ALU, который позволяет результату вычисления использоваться в качестве следующего операнда. Регистр AR имеет выход на DMD- и R-шины. В системе комманд предусмотрена возможность чтения регистра AR посредством PMD-шины аналогично двум предыдущим случаям.

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

ALU имеет двойные банки регистров AX, AY, AF и AR (на рис.2.1 это показано тенями). Но в один момент времени доступен только один банк. Доплнительный банк может быть активизирован для чрезвычайно быстрого контекстного переключения. В этом случае новая задача, подобно подпрограмме обработке прерывания, может выполнияться без сохранения текущих данных в памяти.

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

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

Стандартные функции ALU перечисленны в таблице 2.1.

Таблица 2.1

Функция Назначение
R= X+Y Сложение операндов X и Y
R= X+Y+CI Сложение операндов X и Y и бита коррекции
R= X-Y Вычитание операндов X из Y
R= X-Y+CI-1 Вычитание операндов X из Y с заемом
R= -X Инверсия X
R= -Y Инверсия Y
R= X+1 Инкремент X
R= Y+1 Инкремент Y
R= X-1 Декремент X
R= Y-1 Декремент Y
R= PASS X Операнд X не изменяет результата
R= PASS Y Операнд Y не изменяет результата
R= 0 Очистка результата
R= ABS X Модуль X
R= X AND Y Логическое умножение операндов X и Y
R= X OR Y Логическое сложение опреандов X и Y
R= X XOR Y Исключающее ИЛИ операндов X и Y
R= NOT X Отрицание X
R= NOT Y Отрицение Y
    1. Регистры ввода вывода ALU

Регистры ввода ALU перечисленны ниже.

Регистры для порта X: AX0, AX1, AR, MR0, MR1, MR2, SR0, SR1.

Регистры для порта Y: AY0, AY1, AF.

Регистры для порта R: AR, AF.

Регистры MR0, MR1, MR2 являются регистрами результатов модуля MAC, а SR0, SR1 – модуля Shifter.

    1. Возможность мультиточности

Операции мультиточности в ALU связаны с сигналом carry-in и битом переноса AC. Операция сложение с переносом предназначена для сложения старших частей мультиточных чисел, также как, вычитание с заемом – для их вычитания.

    1. Режим насыщения ALU

Регистр AR имеет режим работы - насыщение, в котором он устанавливается в минимальное отрицательное значение или максимальное положительное, если операция заканчивается переполнением. Эта функция регистра AR становится возможной при установке 3 регистра MSTAT.

Таблица 2.2.

Переполнение (AV) Carry (AC) Содержимое AR
0 0 Результат на выходе ALU
0 1 Результат на выходе ALU
1 0

0111111111111111 (положит.)

1 1 1000000000000000 (отриц.)
    1. Режим блокировки переполнения

Режим блокировки переполнения разрешается при установки бита 2 регистра MSTAT. В этом режиме при переполнении бит AV устанавливается и при последующих операциях остается в этом состоянии, таким образом следующее переполнение уже не генерируется. Бит состояния AV можно очистить непосредственно с DMD-шины.

    1. Деление

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

Обычная точность деления (32-разрядное делимое, 16-разрядный делитель, 16-разрядный остаток) реализуется за 16 циклов. Может быть получена большая или меньшая точность остатка. Делитель может быть сохранен в регистре AX0, AX1 или в любом регистре результатов R. Старший байт знакового делителя должен находиться либо в регистре AY1, либо в AF, без знакового – в AF. Младший байт делителя любого типа должен находиться в AY0. Остаток после деления будет записан в регистр AY0.

Первый из двух примитивов - это команда «деление-знак» (DIVS), преназначена для деления чисел со знаком. Она вычисляет знаковый бит остатка выполняя операцию исключающее-ИЛИ для знаковых разрядов делителя и делимого. Регистр AY0 сдвигается на одну позицию таким образом, чтобы знаковый разряд переместился в позицию LSB. Вычисленный зныковый разряд сохраняется в бит AQ регистра состояния. Структура операции DIVS показанна на рисунке 2.2.

При делении чисел без знака операция DIVS не применяется. В этом случае бит AQ устанавливается в 0 вручную. Он показывает, что остаток должен быть положительным.


Второй примитив из раздела деления – это команда DIVQ, которая выполняется неоднократно и генерирует по одному биту частного. При простой точности деления чисел без знака команда DIVQ выполняется 16 раз, для такой же точности деления чисел со знаком операция выполняется 15 раз после вычисления знакового разряда с помощью команды DIVS. DIVQ сдвигает регистр AY0 влево на один разряд так, чтобы новый бит частного оказался в позиции LSB. Состояние бита AQ, которое генерируется на предыдущей операции, определяет операцию ALU для вычисления частичного результата. Если AQ=1, то ALU добавляет делитель к частичному результату в AF. Если AQ=0, то ALU вычитает делитель из частичного результата в AF. Так же как и в операции DIVS ALU выводит результат в регистр AF. Операция DIVQ проиллюстрирована на рис.2.3.

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



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

Чтобы разделить два целых