ПЦОС с фиксированной и плавающей точкой          

(арифметикой)

ПЦОС различных компаний-производителей образуют два класса,

существенно различающихся по цене: более дешевые ПЦОС обработки

данных в формате с фиксированной точкой и более дорогие ПЦОС,

аппаратно поддерживающие операции над данными в формате с

плавающей точкой.

Использование данных в формате с плавающей точкой обусловлено

несколькими причинами. Для многих задач, связанных с  выполнением

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

имеет точность вычислений, обеспечить которую позволяет экспо-

ненциальный формат представления данных. Алгоритмы компрессии,

декомпрессии, адаптивной фильтрации в цифровой обработке сигналов

связаны с определением логарифмических зависимостей и весьма

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

Работа с данными в формате с плавающей точкой существенно

упрощает и ускоряет обработку, повышает надежность программы,

поскольку не требует выполнения операций округления и нормализации

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

Платой за дополнительные «комфорт и скорость» является высокая

сложность функциональных устройств, выполняющих обработку данных в

формате с плавающей точкой, необходимость использования более

сложных технологий производства микросхем, больший процент

отбраковки изделий и, как следствие, дороговизна ПЦОС.

В сигнальных процессорах для реализации таких алгоритмах как быстрое преобразование Фурье и цифровая фильтрация часто требуется еще большее количество внутренних шин. Обычно применяются две шины для чтения данных, одна шина для записи данных и одна шина для чтения инструкций. Подобная структура микропроцессора получила название расширенной гарвардской архитектуры. Этот подход практикуют производители сигнальных процессоров — фирмы Analog Devices (семейства сигнальных процессоров BlackFin и Tiger Shark), Texas Instrunents (семейства сигнальных процессоров C5000™ DSPs и C6000™ DSPs), Freescale (семейства сигнальных процессоров MSC8251 и DSP56K).

Каждый процессор семейства ADSP-2100 содержит три независимых полнофункциональных вычислительных блока: арифметико-логическое устройство (АЛУ), умножитель-накопитель (MAC) и сдвигатель данных (Shifter). Вычислительные устройства обрабатывают 16-разрядные данные и для ряда команд позволяют выполнять вычисления повышенной точности. Базовая архитектура сигнальных процессоров (ядро) семейства ADSP-2100 приведена на рисунке 12.1.

 

 

Рисунок 12.1 - Базовая архитектура сигнальных процессоров семейства ADSP-2100

 

В АЛУ выполняются стандартные арифметические и логические команды и примитивы деления. В умножителе-накопителе за один машинный цикл выполняются команды умножения, умножения/сложения и умножения/вычитания. Сдвигатель данных выполняет команды арифметического и логического сдвига, нормализации, денормализации и нахождения порядка числа. Сдвигатель данных предназначен для преобразования форматов данных, включая представления чисел, состоящих из нескольких машинных слов, числами с плавающей точкой. Вычислительные устройства соединены между собой таким образом, что выход любого из этих блоков может быть входом в любой из этих блоков в следующем машинном цикле. Передача данных в этом случае произодится по внутренней шине результатов (Р-шина) напрямую соединяющей вычислительные блоки базовой архитектуры сигнального процессора семейства ADSP-2100.

Все три вычислительных блока содержат регистры ввода и вывода, подключенные к шине данных памяти данных (ДПД) и к шине данных памяти программ (ДПП). Вычислительные блоки обычно используют операнды из регистров ввода и загружают результат в регистры вывода. Эти регистры являются буферами между оперативной памятью сигнального процессора и вычислительными блоками. Благодаря этому вводится один уровень конвейерной обработки при вводе данных и один уровень — при выводе. Р-шина позволяет непосредственно использовать результат одного вычислительного блока в качестве входного значения для другого вычислительного устройства. Это позволяет избежать применения операции NOP для ожидания завершения предыдущей команды при выполнении серии различных вычислений.

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

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

Генератор адреса данных 1 может формировать адреса только для памяти данных. Генератор адреса данных 2 может формировать адреса как для памяти данных, так и для памяти программ. При установке бита соответствующего режима в регистре состояния режима (MSTAT) биты выходного адреса генератора адреса данных 1 переставляются в обратном порядке перед их выводом на шину адреса. Это свойство облегчает организацию бит-реверсной адресации при выполнении быстрого преобразования Фурье (БПФ).

Генератор адреса следующей команды формирует адреса команд в памяти программ. Генератор адреса следующей команды управляется регистром команд, в котором содержится текущая выполняемая команда. Регистр команд позволяет ввести один уровень конвейерной обработки для потока команд. Команды считываются и загружаются в регистр команд за один цикл сигнального процессора, а выполняются в течении следующего машинного цикла. Одновременно подготавливается адрес следующей команды. Для сокращения количества холостых циклов (команд NOP) генератор адреса следующей команды осуществляет выполнение условных переходов, вызовов подпрограмм и возврата из подпрограммы за один цикл. Благодаря счетчику циклов и стеку цикла сигнальный процессор может выполнять программный цикл без дополнительных затрат времени. Никаких дополнительных команд условного перехода для организации циклов не требуется.

Сигнальный процессор ADSP-21xx содержит пять внутренних шин. Внутренние шины адреса памяти программы (АПП) и адреса памяти данных (АПД) используются для адресации памяти программ и памяти данных соответственно. Шины данных памяти программы (ДПП) и памяти данных (ДПД) используются для передачи данных из соответствующей области памяти. По Р-шине промежуточные результаты напрямую передаются между вычислительными устройствами ядра сигнального процессора ADSP2100. Базовая архитектура сигнальных процессоров семейства ADSP-2100 приведена на рисунке 12.2;

 

 

Рисунок 12.2 - Базовая архитектура сигнальных процессоров семейства ADSP-2100

Все внутренние шины мультиплексированы в одну внешнюю шину адреса и одну внешнюю шину данных. Для разделения адресных пространств памяти программ, памяти данных и памяти загрузки программы служат дополнительные сигналы BMS, DMS и РМS. Применение сигналов BMS, DMS и РМS показано на структурной схеме микропроцессорной системы, приведенной на рисунке 12.3.

 

 

Лекция № 13

 

ТЕМА: Структурная схема микропроцессорной системы на сигнальном процессоре.Арифметико-логическое устройство (АЛУ) сигнальных процессоров

 

Основные вопросы, рассматриваемые на лекции:

 

1. Структурная схема микропроцессорной системы на сигнальном процессоре

2. Структурная схема АЛУ сигнальных процессоров семейства ADSP-2100

3. Структурная схема MAC сигнальных процессоров семейства ADSP-2100

4. Сдвигатель данных сигнальных процессоров семейства ADSP2100

 

 

 

Рисунок 13.1 - Структурная схема микропроцессорной системы на сигнальном процессоре ADSP-2100

14-разрядная адресная шина памяти программ АПП позволяет осуществлять адресацию до 16К слов как кода программы, так и данных. 24-разрядная шина данных памяти программ ДПП позволяет за один такт считывать 24-битовые команды сигнального процессора или 16-разрядные данные.

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

Шина ДПП может также использоваться для передачи данных между вычислительными устройствами напрямую или через устройство обмена данными между шинами ДПП и ДПД. Устройство обмена данными между шинами ДПП и ДПД позволяет осуществлять обмен данными между шинами. Оно содержит аппаратуру, позволяющую осуществлять при необходимости согласование 24- и 16-разрядных данных, например, расширение знака.

Арифметико-логическое устройство (АЛУ) реализует стандартный набор арифметических и логических команд. К арифметическим командам относятся сложение, вычитание, изменение знака числа, инкрементирование, декрементирование и нахождение абсолютного значения числа. Эти команды дополнены двумя примитивами деления, при помощи которых за несколько машинных циклов может выполнена команда деления. К логическим командам относятся инструкции "логическое И" (AND), "логическое ИЛИ" (OR), "исключающее ИЛИ" (XOR) и "логическое НЕ" (NOT).

 

Рисунок 13.2 - Структурная схема АЛУ сигнальных процессоров семейства ADSP-2100

В сигнальных процессорах ADSP-21xx применено 16 разрядное АЛУ c двумя 16-битовыми входами X и Y, и одним выходом R. АЛУ может учитывать флаг (признак) переноса (CI), который хранится в регистре состояния процессора (ASTAT). При выполнении команд АЛУ формирует 6 флагов (признаков): нулевой результат (AZ), отрицательный результат (AN), перенос в 16-й разряд (АС), флаг (признак) переполнения (AV), ввода знака через порт X (AS) и флаг частного (AQ). Все флаги (признаки), сформированные АЛУ, в конце машинного цикла запоминаются в регистре состояния процессора ASTAT.

На вход X АЛУ могут поступать данные либо из регистров АХ, либо из шины результатов (Р-шина). Р-шина соединяет выходные регистры всех вычислительных устройств, позволяя использовать их непосредственно в качестве входного операнда АЛУ. В АЛУ сигнального процессора ADSP-21xx регистры AX предназначены для входа X АЛУ. Регистровый файл AX содержит два регистра: АХ0 и АХ1. Считывание и запись содержимого этих регистров может производиться по шине данных памяти данных ДПД. Наборе команд позволяет читать эти регистры по шине данных памяти программ ДПП, но эти операции производятся через устройство обмена данными между шинами ДПП и ДПД, прямого соединения регистров AX с шиной данных памяти программ нет. Выходы регистров АХ двухпортовые, что позволяет осуществлять одновременно ввод данных с выхода одного регистра AX в АЛУ, и передачу данных с выхода другого на шину ДПД.

На вход Y АЛУ могут поступать данные из двух источников: регистров AY и регистра обратной связи AF. АЛУ содержит два регистра AY: AY0 и AY1. Считывание из этих регистров и запись в них производится с шины ДПД, запись может производится из шины ДПП. В наборе команд предусматривается считывание данных из этих регистров по шину ДПП, но прямого соединения регистров AY с шиной памяти программ не существует; в этой операции используется устройство обмена данными между шинами ДПП и ДПД. Выходы регистров АY двухпортовые, что позволяет осуществлять одновременно ввод данных с выхода одного регистра AX в АЛУ, и передачу данных с выхода другого на шину ДПД.

Выходные данные АЛУ могут быть сохранены либо в регистре обратной связи АЛУ (AF), либо в регистре результатов АЛУ (AR). Регистр AF позволяет использовать результат АЛУ в качестве входного значения для входа Y АЛУ в следующей операции. Регистр AR может быть считан как по шине ДПД, так и по шине результатов. Этот регистр может прямо загружаться с шины ДПД. В наборе команд предусматривается также считывание с AR на шину ДПП, но в данном случае нет прямого соединения; для этой операции используется устройство обмена данными между шинами ДПП и ДПД.

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

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

 

Умножитель-накопитель (MAC) сигнальных процессоров семейства ADSP2100

Основным устройством вычислительного блока MAC является аппаратный умножитель. Его входы называются X и Y. Разрядность входов умножителя равна 16. Так как в умножителях разрядность выходного слова определяется как сумма разрядностей входных слов, то выходная шина умножителя является32-разрядной. 32-разрядный результат поступает на вход 40-разрядного сумматора/вычитателя. Его выход подключен к 40-разрядному регистру-аккумулятору (накопителю). Так как сигнальный процессор AD21xx 16-разрядный, то 40-разрядный регистр для отображения в 16-разрядную память процессора разбивают на три регистра: 16-разрядный регистр младших бит MR0, 16-разрядный регистр старших бит MR1 и 8-разрядный регистр защитных бит MR2. Структурная схема MAC сигнальных процессоров семейства ADSP-2100 приведена на рисунке 13.3.

 

 

Рисунок 13.3 - Структурная схема MAC сигнальных процессоров семейства ADSP-2100

 

Сумматор/вычитатель и регистр MR обычно называется аккумулятором (накопителем). Разрядность аккумулятора выбирают больше 32 для того, чтобы предотвратить переполнение при выполнении нескольких операций умножителя-накопителя последовательно. Это обычно требуется при реализации цифрового фильтра с КИХ характеристикой. Восемь защитных бит обычно достаточно для реализации 200-отводного цифрового фильтра. Если при выполнении операции цифровой фильтрации возникает переполнение (число больше 40 разрядов), то устанавливается бит переполнения умножения MV (в этот бит записывается '1')

Регистры ввода/вывода MAC аналогичны регистрам ввода/вывода вычислительного блока АЛУ. Вход умножителя X может получать данные как из регистров MX, так и из регистров результата любого вычислительного блока процессора по Р-шине (шине результатов). MAC содержит два набора регистров MX: МХ0 и МХ1. Запись в эти наборы регистров и считывание из них может производиться по шине памяти данных ДПД. Выходы регистров MX двухпортовые, так что один регистр может осуществлять передачу данных в умножитель, в то время как данные из другого регистра будут записываться в память данных по шине ДПД.

На вход умножителя Y могут поступать данные как из регистров MY, так и из регистра обратной связи MF. Имеется два регистра MY: MY0 и MY1. Запись в эти регистры и считывание с них может производиться по шине ДПД, кроме того запись вних может быть произведена по шине ДПП. В наборе команд возможно также считывание данных из этих регистров по шине ДПП, но в этой операции используется устройство обмена данными между шинами ДПД и ДПП. Выходы регистров MY, как и MX двухпортовые, что позволяет одновременно осуществлять считывание данных из одного регистра MY в умножитель, а из другого сохранять данные в память процессора по шине ДПД.

Выход MAC подключается либо к регистру обратной связи MF, либо к регистру результата MR. Регистр обратной связи MF позволяет использовать биты результата 16-31 для входа Y данных в следующем машинном цикле. Как уже упоминалось выше, 40-разрядный регистр результата MR разделен на три части: MRO, MR1 и MR2. Каждый из этих регистров может загружаться с шины ДПД и передавать данные либо на шину ДПД, либо на Р-шину.

Запись и считывание из любого регистра умножителя-накопителя MAC может осуществляться в одном и том же цикле. Считывание данных из регистров происходит в начале цикла, а запись — в конце. Следовательно, при чтении из регистра считывается значение, загруженное в конце предыдущего цикла. Новое значение, записанное в регистр, невозможно считать до следующего цикла. Это позволяет считывать из регистра ввода операнд для умножителя в начале цикла и записывать новое значение данных из памяти сигнального процессора в конце этого же цикла. Это также позволяет сохранять предыдущее содержимое регистра результатов в памяти процессора и записывать в него очередной результат в течении этого же цикла.

MAC содержит два банка регистров MR, MF, MX, MY, теневые банки регистров показаны на рисунке 1 за основными регистрами. В любой момент времени доступен только один банк. Теневой ряд регистров может быть задействован для быстрого переключения между задачами. Новая задача, такая как подпрограмма обслуживания прерывания, может выполняться без сохранения текущего содержимого регистров в памяти сигнального процессора.

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

Дата: 2019-03-05, просмотров: 46.