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

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

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

Чтобы разделить два целых числа (делимое в формате 32.1, а делитель – 16), необходимо перед делением привести делимое к формату 31.1, т.е. сдвинуть его влево на один разряд.


Делимое: BBBBB.BBBBBBBBBBBBBBBBBBBBBBBBBBB

NL NR

Делитель: BB.BBBBBBBBBBBBBB

DL DR

Частное: BBBB.BBBBBBBBBBBB

(NL–DL+1) (NR–DR–1)

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


    1. Регистр состояния ALU

Назначение битов регистра ASTAT описано ниже:

  • AZ – ZERO - логическое сложение всех битов регистра результатов ALU. Устанавливается в 1, если результат операции равен нулю.

  • AN – NEGATIV - знаковый разряд результата ALU. Единица, если результат отрицательный.

  • AV – OVERFLOW – устанавливается в единицу, если происходит переполнение ALU.

  • AC – CARRY – бит переноса.

  • AS – SIGN – знаковый разряд входного X-порта ALU. Необходим только для команды ABS.

  • AQ – QUOTIENT – бит частного. Генерируется только командами DIVS и DIVQ.


  1. Вычислительный модуль умножения с накоплением (MAC)

Вычислительный модуль МАС обеспечивает быстрое умножение, умножение с добавлением, умножение с вычитанием, функции насыщения и очистка в ноль. Функция обратной связи позволяет части результата в одном цикле быть одним из сомножителей в следующем.

    1. Описание блок-схемы МАС

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

МАС имеет два входных 16-разрядных порта X и Y и 32-разрядный порт вывода результата P. 32-разрядный результат поступает в 40-разрядный блок сложения/вычитания, который либо прибавляет, либо вычитает текущий результат из регистра результата МАС (MR), либо передает текущий результат непосредственно в MR (регистр MR имеет 40 разрядов). Фактически регистр MR состоит из трех (MR0 и MR1 – 16-разрядные и MR2 – 8-рахрядный) регистров.



Блок сложения/вычитания имеет более 32 разрядов затем, чтобы учесть промежуточные переполнения в ряде операции умножения с накоплением. Бит признака МV (переполнение) устанавливается в единицу, если значение аккумулятора превышает 32 разряда, т.е. в старшей части регистра результата MR есть девять значащих битов (без знака).

Регистры ввода-вывода подобны регистрам ALU.

Порт Х может принимать данные из регистра MX или из любого другого регистра на R-шине (результата). R-шина соединяет выходные регистры всех вычислительных модулей, для непосредственного использования результатов вычислений в качестве входных операндов. Регистр MX состоит из двух: MX0 и MX1. Они читаются и записываются с DMD-шины. Выводы регистров MX0 и MX1 устроены таким образом, что один поставляет множитель в блок умножения, а другой управляет DMD-шиной.

Порт Y принимает данные из регистра MY или регистра обратной связи MF. MY так же разбит на два регистра (MY0 и MY1), доступ к которым осуществляется с DMD-шины и возможна запись в низ с PMD-шины. Система команд предусматривает чтение этих регистров с помощью PMD-шины, но прямого доступа для этой операции нет, в этом случае используется модуль DMD-PMD обмена. Выводы регистра MY устроены аналогично MX.

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

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

Регистры MR, MF, MX, MY продублированы во вторичном банке (на рис.3.1. он показан на заднем плане). Одновременно доступен лишь один из банков. Дополнительный банк регистраторов может быть активизирован для чрезвычайно быстрого контекстного переключения. Таким образом новая задача, типа подпрограммы обработки прерывания, может выполняться без сохранения текущих данных в памяти.

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

    1. Операции МАС

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

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

Набор стандартных операций перечислен в таблице 3.1.

Таблица 3.1

Название Назначение

XЧY

Умножение X на Y

MR+XЧY

Умножение и сложение с MR

MR-XЧY

Умножение и вычитание из MR
0 Очистка MR

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

В дробном режиме выходной регистр P корректирует формат, т.е. прежде чем добавить значение в MR оно сдвигается на один разряд влево. Таким образом, бит 31 регистра P запишется в бит 32 регистра MR, а 0-ой бит – в первый. В позицию LSB, при этом записывается ноль. На рисунке 3.2. показан дробный формат работы модуля умножения.



В целочисленном формате (рис.3.3) регистр P не сдвигается прежде чем прибавиться к MR.



Выбор режима осуществляется установкой 4 бита регистра MSTAT процессора. Если этот бит в 1, то выбран целочисленный режим. В любом формате блок умножения формирует 32-разрядный результат и передает его в блок сложения/вычитания, где получается конечное значение операции, которое записывается в MR.


      1. Входные форматы

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

  1. Знаковый ґ знаковый – используется при умножении двух знаковых чисел простой точности или двух старших частей знаковых чисел двойной точности.

  2. Без знака ґ знаковый (знаковый ґ без знака) - используется при умножении верхней части знакового числа на нижнюю часть другого или для умножения знакового числа простой точности с числом той же точности без знака.

  3. Без знака ґ без знака – используется при умножении чисел простой точности без знака, или нижних частей знаковых чисел двойной точности.

      1. Регистры ввода вывода МАС

Регистры для входного порта X – MX0, MX1, AR, MR0, MR1, MR2, SR0, SR1.

Регистры для входного порта Y – MY0, MY1, MF.

Регистры для выходного порта R – MR (MR0, MR1, MR2), MF.

      1. Операции над регистром MR

Как показано на рис.3.1 регистр MR разбит на три секции: MR0 (биты 0-15), MR1 (биты 16-31) и MR2 (биты 32- 39). Каждая из них может быть загружена с DMD-шины и выведена на R- или DMD-шину. Регистр MR2 связан с младшими восемью разрядами этих шин. Когда MR2 выводится на R- или DMD-шину это означает, что знак расширен до 16 разрядов.

      1. Насыщение и переполнение МАС

После каждой операции блок сложения/вычитания генерирует сигнал переполнения MV, который подключен регистру состояния арифметики процессора ASTAT. Бит MV устанавливается в 1 если результат сложения выходит за границы регистров MR1/MR2 – 32 бита, т.е. если один из девяти старших разрядов регистра MR не 0, или все нули.

Регистр MR имеет возможность насыщения в определённом положительном или отрицательном значении, если происходит переполнение. Насыщение зависит от состояния бита MV регистра состояний арифметики ASTAT и бита MSB регистра MR2. Таблица 3.2. описывает операцию насыщения.

Таблица 3.2

MV MSB Содержимое регистра MR после операции
0 0 или 1 Без изменений
1 0 00000000 0111111111111111 1111111111111111 (положит.)
1 1 11111111 1000000000000000 0000000000000000 (отрицат.)

Насыщение в МАС является скорее командой, чем режимом, как в ALU. Она используется при завершении последовательности умножений с накоплением, таким образом, чтобы промежуточные переполнения не привели сумматор к насыщению.

Переполнение больше MSB недопустимо. В обратном случае знаковый разряд будет потерян и насыщение не будет правильным. Однако, чтобы достигнуть этого состояния требуется 255 переполнений.

      1. Округление

Сумматор может округлять 40-разрядный результат до 15-16 разряда. Округление можно отнести к системе команд микропроцессора. Округленный результат направляется либо в MR, либо в регистр обратной связи MF. Когда для вывода используется MF, в него записывается 16-разрядный округленный результат. Аналогично, если для вывода выбран MR, то в MR1 записываются 16 разрядов округленного результата, а в MR2 – эффект округления, таким образом получается 24-разрядный округленный результат.

Сумматор использует несмещенную схему округления. Стандартный метод смещенного округления состоит в записи 1 в 15-ю разрядную позицию. Этот метод вызывает ряд положительных смещений, начиная с середины (когда MR=0х8000), округляя результат вверх. Сумматор же устраняет это смещение, устанавливая 16 бит в 0, когда значение регистра MR достигает середины. При этом четные значения MR1 округляются вниз, а нечетные вверх. Таким образом получается однородная последовательность смещений.

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


MR2 MR1 MR0

Неокругленное значение : xxxxxxxx xxxxxxxx00100101 1xxxxxxxxxxxxxxx

Бит 15 = 1

Прибавляем 1 к 15 разряду и смещаем 1

Округленное значение : xxxxxxxx xxxxxxxx00100110 0xxxxxxxxxxxxxxx


MR2 MR1 MR0

Неокругленное значение : xxxxxxxx xxxxxxxx01100110 1000000000000000

Бит 15 = 1 и биты 0-14 = 0

Прибавляем 1 к разряду 15 и сдвигаем 1

xxxxxxxx xxxxxxxx01100111 0000000000000000

Сейчас бит 16 = 1, устанавливаем его в 0

Округленно значение : xxxxxxxx xxxxxxxx01100110 0000000000000000


В последнем случае 16 бит устанавливается в 0. Этот алгоритм применяется на каждой операции округления.

      1. Смещенное округление

Режим смещенного округления возможен в процессорах ADSP-217x, ADSP-218x, и ADSP-21msp58/59. Этот режим выбирается путем установки бита BIARND регистра управления SPORT0. Если BIARND=0, то используется операция несмещенного округления, если BIARND=1, то смещенного.

Пример:


MR перед RND Смещенный результат RND Несмещенный результат RND

00-0000-8000 00-0001-8000 00-0000-8000

00-0001-8000 00-0002-8000 00-0002-8000

00-0000-8001 00-0001-8001 00-0001-8001

00-0001-8001 00-0002-8001 00-0002-8001

00-0000-7FFF 00-0000-7FFF 00-0000-7FFF

00-0001-7FFF 00-0001-7FFF 00-0001-7FFF


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


  1. BARREL SHIFTER

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

    1. Описание блок схемы

Рисунок 4.1 иллюстрирует блок схему модуля сдвига. Shifter может быть разделен на следующие части: массив сдвига, логика OR/PASS, детектор порядка и логика сравнения порядка.



Массив сдвига принимает 16-разрядные данные и в одном цикле может поместить их в любой позиции 32-разрядного поля вывода. Это дает 49 возможных размещений в поле вывода. Размещение 16-ти входных разрядов определяется кодом управления C и сигналом ссылки HI/LO.

Массив сдвига и связная логика OR/PASS окружены набором регистров. Входной регистр Shifter (SI) содержит данные для массива сдвига и детектора порядка. SI-16-разрядный, записывается и читается с DMD-шины. В качестве входных регистров для массива сдвига и детектора порядка могут служить AR, SR или MR, подключенные через R-шину. Выходной 32-разрядный регистр SR разделен на две части по 16 разрядов: SR0 и SR1. Они могут быть загружены с DMD шины и выведены на R- или DMD-шину. Также SR подключен к блоку OR/PASS логики для проведения сдвигов двойной точности.

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: