Мысловский Э.В. Цифровые сигнальные процесссоры (2003) (1264219), страница 12
Текст из файла (страница 12)
Выбор ряда77осуществляется битом 0 регистра состояния процессора MSTAT, если значение бита 0 выбран основной ряд, 1 - альтернативный.Таблица 5.3 Источники ввода данных в регистры ввода/вывода умножителяИсточники ввода данныхИсточники ввода данныхНаправление выводаданных через порт Rв порт Xв порт YМХО, MXIMYO, MY1MRARMFMFMRO, MR1, MR2SRO, SR1Стандартные функции умножителя:X*YУмножение операндов X и YMR+X*YУмножение операндов X и Y и сложение результата с регистром MRMR-X*YУмножение операндов X и Y и вычитание полученного результата изрегистра MRООбнуление результатаПроцессоры семейства ADSP-2Ixx имеют два режима умножения - умножениедробных чисел в формате 1.15 и умножение целых чисел в формате 16.0.В режиме умножения дробных чисел 32-х разрядный результат регулируется поформату, то есть добавляются биты знака и перед добавлением к регистру MRпроизводиться сдвиг влево на один бит.
В режиме умножения целых чисел никакихсдвигов, перед добавлением к регистру MR, не производится.Режим умножения задается битом 4 регистра состояния процессора MSTAT. Еслиуказанный бит имеет значение 1 - выбран режим умножения целых чисел, иначе - режимумножения дробных чисел.В умножителе, так же как и в АЛУ существует режим насыщения. Попереполнению в арифметическом регистре состояния устанавливается флаг MV.78Операция насыщения зависит от состояния бита MV и старшего бита регистра MR2.
Втаблице 5.4 представлена операция насыщения.Таблица 5.4 Режим насыщения умножителяПереполнениеСтаршийбит MRСодержимое MR00 или 1без изменений101100000000 0111111111111111 1111111111111111 111111111000000000000000 0000000000000000(МV)В сумматоре умножителя-накопителя имеется возможность округления 40результата на границе между 16 и 15 битами. Округление может быть задано как частькода команды. Округленное выходное значение направляется либо в регистр MR, либо врегистр MF.В сумматоре используется округление без смещения. Условный метод округлениясо смещением заключается в добавлении 1 к 15 биту в цепочке сумматора. Округление поданному методу приводит всегда к положительному смещению, так как срединноезначение (MR=0x8000) всегда округляется в сторону увеличения.
Это смещениеустраняется принудительной установкой бита 16 при обнаружении такого половинногозначения. В результате при срединном значении нечетные числа округляются до четных всторону увеличения, а четные до нечетных в сторону уменьшения. При большом размеревыборки суммарная ошибка стремиться к нулю.В процессорах семейства ADSP-218x имеется так же режим округления сосмещением. Устанавливается он битом BIASRND (бит 12) в регистре управленияавтобуферизациейпортаSPORTO.Такойрежимиспользуетсяприреализацииалгоритмов, в которых используется округление со смещением, например в алгоритмахсжатия речи в системах GSM.В качестве примера использования умножителя-накопителя рассмотрим КИХфильтр.Пример: Пример использования умножителя накопителя791.Разработайтеиотладьтепрограмму,вычисляющуюскалярноепроизведение любых двух векторов2.
Исследуйте режимы округления, устанавливая различные флаги операцииумножения с накоплением.5.1.3 Устройство циклического сдвигаУстройство сдвига обеспечивает полный набор функций сдвига для 16 разрядныхвходных значений, в результате на выходе получается 32 разрядное значение. Коперациям устройствациклического сдвига относятся операции логического иарифметического сдвига, операция нормализации, операции нахождения порядка числа иблока чисел.MUXРегистрSIРегистрSBMUXSSXСравнениеIRCHI/LOMUXMUXРегистрSENEGATEXБлок сдвигаOR/PASSИз инструкцииMUXMUXРегистрSR1РегистрSR0MUXШина результатаРис. 5.4 Структурная схема устройства циклического сдвига80В устройстве сдвига можно выделить следующие элементы: массив устройствасдвига, логическое устройство ИЛИ/ПЕРЕДАЧА, определитель порядка и устройствосравнения порядка.Массив устройства сдвига представляет собой матрицу 16 на 32 бита.
В неговводится 16 разрядное значение, которое может быть помешено в любое место 32разрядной области результата, от крайней правой до крайней левой за один цикл. Такимобразом, возможно 49 расположений в 32-разрядной области результата. Расположение вмассиве 16 входных бит определяется сигналом (С) и опорным сигналом HI/LO. Массивустройства сдвига с обслуживающими его логическими устройства окружен наборомрегистров. Регистр ввода SI предназначен для ввода данных в массив устройства сдвига иопределитель порядка. Считывание из регистра SI и запись в него осуществляется черезшину DMD. Ввод данных в массив устройства сдвига и определитель порядка так жеосуществляется из регистров AR, SR или MR по R-шине.
Результат имеет разрядность 32бита и помещается в пару регистров SRI, SR0. Загрузка в регистры SRI, SR0производиться шины DMD, а результат помещается на шину DMD или на шину R.Регистр SR имеет обратную связь с устройством ИЛИ/ПЕРЕДАЧА для обеспечениясдвига двойной точности.Регистр SE («порядок устройства сдвига») имеет размер 8 бит и содержитзначение порядка для проведения операций нормализации-денормализации. Загружается вSE 8 младших битов с шины DMD.Регистр SB («блок устройства сдвига») используется для операций с блочноплавающей точкой, во время которых в нем содержится значение блочного порядка, тоесть значение, на которое надо произвести сдвиг самого большого числа в блоке. 5разрядный регистр SB загружается с младших 5 бит шины DMD.Когда производится считывание регистров SE и SB, старшие биты заполняютсязначением бита знака до размера 16 бит. Считывание осуществляется через шину DMD.Запись и считывание регистров SE, SI и SB могут производиться за один цикл.Считывание из регистров производиться в начале цикла, запись - в конце.Как и в ALU и MAC в устройстве циклического сдвига имеется два наборарегистров SE, SI, SB, SR - основной и дополнительный.
Выбор набора осуществляетсяустановкой бита 0 в регистре состояния MSTAT.81Сдвиг входного значения зависит от значений управляющего кода С и опорногосигнала HI/LO. Управляющий код имеет размер 8 бит и указывает направление и числопозиций сдвига. Если С положителен - сдвиг осуществляется влево, отрицателен - вправо.Управляющий код может загружаться либо из регистра SE либо напрямую из команды.Опорный сигнал HI/LO определяет опорную точку сдвига.
Если С в состояние HI,то все сдвиги происходят относительно старших бит (регистра SR1), в состоянии LO относительно младших бит (регистра SR0). При операциях сдвига биты справа отвходного значения (при сдвиге влево) заполняются нулями, а слева (при сдвиге вправо)могут заполнятся либо значением из флага переноса АС, либо значением старшего битавходного значения, либо нулем.Логика OR/PASS позволяет сдвинутым секциям числа повышенной точностибытьправильноскомбинированными,КогдавыбранPASSрезультатоперациизагружается в SR без изменения, когда выбран OR результат операции подвергаетсяоперации логического или с предыдущим значением SR.•Устройство сдвига выполняет следующие операции:•Арифметический сдвиг (ASHIFT)•Логический сдвиг (LSHIFT)•Нормализация (NORM)•Определение экспоненты (ЕХР)•Блочное изменение экспоненты (EXPADJ)•Определение экспоненты блокаЭта функция определяет степень самого большого по масштабу числа в блоке.Она выполняется инструкцией EXPADJ.
Последовательность шагов - следующая:Загрузить -16 в SBРегистр SB используется для записи степени всего блока. Возможные значения внем после завершения серии операций от -15 до 0. Логика сравнения степени обновляетего содержимое, если новое значение больше текущего. Таким образом, загрузка -16 вэтот регистр служит для его инициализации.82Таким образом, операция EXPADJ просмотровая операция, в том случае еслистепень следующего элемента больше чем предыдущего в SB помещается новое значениестепени, таким образом, после просмотра всех элементов в SB оказывается значениемаксимальной степени.Немедленный сдвиг просто сдвигает операнд влево/вправо на нужное числоразрядов.Пример: Несколько примеров использования устройства циклического сдвига1.
Реализуйте с помощью сдвига линию задержки.835.1.4 Операция денормализацииДенормализацией называется преобразования числа с плавающей точкой в числосфиксированнойточкой.Осуществляетсяданноепреобразованиезасчетпоследовательности сдвигов. Для начала регистр SE должен содержать значение степени.Это значение может быть специально считано или быть результатом предыдущейоперации. Далее производиться сдвиг.Пример: Пример операции денормализации5.1.5 НормализацияЧисла с избыточными знаковыми битами нуждаются в нормализации. Даннаяоперация может рассматриваться как операция преобразования числа с фиксированнойточкой в число с плавающей точкой.Нормализация процесс двухстадийиый. Первый шаг определяет порядок числа,второй производит собственно сдвиг.Пример: Пример операции нормализации5.2 Генераторы адресов данных и счетчик инструкцийДва выделенных генератора адресов данных DAG и многофункциональныйсчетчикинструкцийобеспечиваютэффективное84использованиевычислительныхустройств.
Генераторы адресов данных обеспечивают генерацию адресов памяти данных,когда данные пересылаются из выходных или во входные регистры. С каждым указателемможет быть связана длина для реализации кольцевых буферов. DAG 1 можетгенерировать адреса для памяти данных, DAG 2 - как для памяти данных, так и для памятипрограмм. В выходном адресе DAG 1 может меняться порядок следования битов передвыдачей на шину адреса. Это облегчает адресацию в алгоритмах БПФ.5.2.1 Счетчик инструкцийСчетчик инструкций формирует адреса инструкций для памяти программ. Онуправляет регистром инструкций, который содержит исполняемую в данный моменткоманду.