Портал о бытовой технике

Многоядерный DSP TMS320C6678. Обзор архитектуры процессора

65 нанометров - следующая цель зеленоградского завода «Ангстрем-Т», которая будет стоить 300-350 миллионов евро. Заявку на получение льготного кредита под модернизацию технологий производства предприятие уже подало во Внешэкономбанк (ВЭБ), сообщили на этой неделе «Ведомости» со ссылкой на председателя совета директоров завода Леонида Реймана. Сейчас «Ангстрем-Т» готовится запустить линию производства микросхем с топологией 90нм. Выплаты по прошлому кредиту ВЭБа, на который она приобреталась, начнутся в середине 2017 года.

Пекин обвалил Уолл-стрит

Ключевые американские индексы отметили первые дни Нового года рекордным падением, миллиардер Джордж Сорос уже предупредил о том, что мир ждет повторение кризиса 2008 года.

Первый российский потребительский процесор Baikal-T1 ценой $60 запускают в массовое производство

Компания «Байкал Электроникс» в начале 2016 года обещает запустить в промышленное производство российский процессор Baikal-T1 стоимостью около $60. Устройства будут пользоваться спросом, если этот спрос создаст государство, говорят участники рынка.

МТС и Ericsson будут вместе разрабатывать и внедрять 5G в России

ПАО "Мобильные ТелеСистемы" и компания Ericsson заключили соглашения о сотрудничестве в области разработки и внедрения технологии 5G в России. В пилотных проектах, в том числе во время ЧМ-2018, МТС намерен протестировать разработки шведского вендора. В начале следующего года оператор начнет диалог с Минкомсвязи по вопросам сформирования технических требований к пятому поколению мобильной связи.

Сергей Чемезов: Ростех уже входит в десятку крупнейших машиностроительных корпораций мира

Глава Ростеха Сергей Чемезов в интервью РБК ответил на острые вопросы: о системе «Платон», проблемах и перспективах АВТОВАЗа, интересах Госкорпорации в фармбизнесе, рассказал о международном сотрудничестве в условиях санкционного давления, импортозамещении, реорганизации, стратегии развития и новых возможностях в сложное время.

Ростех "огражданивается" и покушается на лавры Samsung и General Electric

Набсовет Ростеха утвердил "Стратегию развития до 2025 года". Основные задачи – увеличить долю высокотехнологичной гражданской продукции и догнать General Electric и Samsung по ключевым финансовым показателям.

Рассмотрим теперь функцию x = f(t) , представляющую собой некоторое звуковое или какое-либо иное колебание. Пусть это колебание описано графиком на временном интервале (рис. 16.2).

Для обработки этого сигнала в компьютере нужно выполнить его дискретизацию. С этой целью временной интервал делится на N-1 частей


Рис. 16.2.

и сохраняются значения функции x 0 , x 1 , x 2 , ..., x N-1 для N точек на границах интервалов.

В результате прямого дискретного преобразования Фурье могут быть получены N значений для X k согласно (16.1).

Если теперь применить обратное дискретное преобразование Фурье , то получится исходная последовательность {x n } . Исходная последовательность состояла из действительных чисел, а последовательность {X k } в общем случае комплексная. Если приравнять нулю ее мнимую часть, то получим:

(16.8)

Сопоставив эту формулу с формулами (16.4) и (16.6) для гармоники, увидим, что выражение (16.8) представляет собой сумму из N гармонических колебаний разной частоты, фазы и амплитуды. То есть физический смысл дискретного преобразования Фурье состоит в том, чтобы представить некоторый дискретный сигнал в виде суммы гармоник. Параметры каждой гармоники вычисляются прямым преобразованием Фурье, а сумма гармоник - обратным.

Теперь, например, операция "фильтр нижних частот", которая "вырезает" из сигнала все частоты выше некоторой заданной, может просто обнулить коэффициенты , соответствующие частотам, которые необходимо удалить. Затем, после обработки, выполняется обратное преобразование .

Особенности цифровой обработки сигналов рассмотрим на примере алгоритма нерекурсивной фильтрации. Структура устройства, реализующего данный алгоритм , показана на рис. 16.3 .

Обработка заключается в формировании выходного сигнала Y[k] по значениям N последних входных отсчетов x[k] , которые поступают на вход устройства через определенный интервал времени Т . Принятые отсчеты сохраняются в ячейках циклического буфера. При приеме очередного отсчета содержимое всех ячеек буфера переписывается в соседнюю позицию, самый старый отсчет покидает буфер , а новый записывается в его младшую ячейку.

Аналитически алгоритм работы нерекурсивного фильтра записывается как:

(16.9)

где a i - коэффициенты , определяемые типом фильтра.

Отсчеты с выходов элементов буфера поступают на умножители, на вторые входы которых поступают коэффициенты a i . Результаты произведений складываются и формируют отсчет выходного сигнала Y[k] , после чего содержимое буфера сдвигается на 1 позицию и цикл работы фильтра повторяется. Выходной сигнал Y[k] должен быть вычислен до поступления следующего входного сигнала, то есть за интервал T. В этом заключается суть работы устройства в реальном масштабе времени. Интервал времени T задается частотой дискретизации , которая определяется областью применения фильтра. По следствию из теоремы Котельникова в дискретном сигнале период, соответствующий наивысшей представимой частоте, соответствует двум периодам дискретизации . При обработке звукового сигнала частоту дискретизации можно принять в 40 кГц. В этом случае если необходимо реализовать цифровой нерекурсивный фильтр 50-го порядка, то за время в 1/40 кГц = 25 мкс должно быть выполнено 50 умножений и 50 накоплений результатов умножения. Для обработки видеосигнала интервал времени, за который должны быть выполнены эти действия, будет на несколько порядков меньше.

Если выполнять ДПФ входной последовательности напрямую, строго по исходной формуле, то потребуется много времени. Посчитав по определению (N раз суммировать N слагаемых), получаем величину порядка N 2 .

Тем не менее, можно обойтись существенно меньшим числом операций.

Наиболее популярным из алгоритмов ускоренного вычисления ДПФ является метод Кули-Тьюки (Cooley-Tukey), позволяющий вычислить ДПФ для числа отсчетов N = 2k за время порядка N*log 2 N (отсюда и название - быстрое преобразование Фурье , БПФ, или в английском варианте FFT - Fast Fourier TRansformation ). Основная идея этого метода заключается в рекурсивном разбиении массива чисел на два подмассива и сведении вычисления ДПФ от целого массива к вычислению ДПФ от подмассивов в отдельности. При этом процесс разбиения исходного массива на подмассивы проводится по методу побитовой обратной сортировки (bit- reversal sortINg ).

Сначала входной массив делится на две подмассива - с четными и нечетными номерами. Каждый из подмассивов перенумеровывается и снова делится на два подмассива - с четными и нечетными номерами. Эта сортировка продолжается до тех пор, пока размер каждого подмассива не достигнет 2 элементов. В результате (что можно показать математически) номер каждого исходного элемента в двоичной системе переворачивается. То есть, например, для однобайтных номеров двоичный номер 00000011 станет номером 110000000, номер 01010101 - номером 10101010.

Существуют алгоритмы БПФ для случаев, когда N является степенью произвольного простого числа (а не только двойки), а также в случае, когда число N является произведением степеней простых чисел любого числа отсчетов. Однако БПФ, реализованное по методу Кули-Тьюки для случая N = 2k, получило наиболее широкое распространение. Причина этого в том, что алгоритм , построенный по этому методу, обладает рядом очень хороших технологических свойств:

  • структура алгоритма и его базовые операции не зависят от числа отсчетов (меняется только число прогонов базовой операции);
  • алгоритм легко распараллеливается с использованием базовой операции и конвейеризуется, а также легко каскадируется (коэффициенты БПФ для 2N отсчетов могут быть получены преобразованием коэффициентов двух БПФ по N отсчетов, полученных "прореживанием" исходных 2N отсчетов через один);
  • алгоритм прост и компактен, допускает обработку данных "на месте" и не требует дополнительной оперативной памяти.

Однокристальные микроконтроллеры и даже универсальные микропроцессоры оказываются относительно медленными при выполнении операций, характерных для ЦОС. К тому же требования к качеству преобразования аналоговых сигналов постоянно возрастают. В сигнальных микропроцессорах такие операции поддерживаются на аппаратном уровне и выполняются, соответственно, достаточно быстро. Работа в реальном масштабе времени требует от процессора также поддержки на аппаратном уровне таких действий, как обработка прерываний, программных циклов.

Все это приводит к тому, что DS P-процессоры, архитектурно включая в себя многие черты как универсальных микропроцессоров, особенно с RISC-архитектурой , так и однокристальных микроконтроллеров , в то же время значительно отличаются от них. Универсальный микропроцессор помимо чисто вычислительных операций выполняет функцию объединяющего звена всей микропроцессорной системы , в частности компьютера.

Он должен управлять работой различных компонентов аппаратного обеспечения, таких как дисководы, графические дисплеи, сетевой интерфейс , с тем чтобы обеспечить их согласованную работу. Это приводит к достаточно сложной архитектуре, поскольку она должна поддерживать наряду с целочисленной арифметикой и операциями с плавающей запятой такие базовые функции , как защита памяти , мультипрограммирование , обработка векторной графики и т. п. В итоге типичный универсальный микропроцессор с CISC -, а зачастую и RISC -архитектурой имеет систему из несколько сотен команд, которые обеспечивают выполнение всех этих функций, и соответствующую аппаратную поддержку. Это ведет к необходимости иметь в составе такого МП десятки миллионов транзисторов .

В то же время DSP-процессор является узкоспециализированным устройством. Его единственная задача - быстро обрабатывать поток цифровых сигналов. Он состоит главным образом из высокоскоростных аппаратных схем, выполняющих арифметические функции и манипулирующих битами, оптимизированных таким образом, чтобы быстро обрабатывать большие объемы данных. В силу этого набор команд у DSP куда меньше, чем у универсального микропроцессора: их число обычно не превышает 80. Это значит, что для DSP требуется облегченный декодер команд и гораздо меньшее число исполнительных устройств. Кроме того, все исполнительные устройства в конечном итоге должны поддерживать высокопроизводительные арифметические операции . Таким образом, типичный DSP-процессор состоит не более чем из нескольких сот тысяч (а не десятков миллионов, как в современных CISC -МП) транзисторов . В силу этого такие МП потребляют меньше энергии, что позволяет использовать их в продуктах, работающих от батарей. Крайне упрощается их производство, поэтому они находят себе применение в недорогих устройствах. Сочетание низкого энергопотребления и невысокой стоимости позволяет использовать их не только в высокой сфере телекоммуникаций , но и в сотовых телефонах и роботах-игрушках.

Отметим основные особенности архитектуры процессоров цифровой обработки сигналов :

  1. Гарвардская архитектура , основу которой составляет физическое и логическое разделение памяти команд и памяти данных. Ключевые команды DSP-процессора являются многооперандными, и ускорение их работы требует одновременного чтения нескольких ячеек памяти. Соответственно на кристалле имеются раздельные шины адреса и данных (в некоторых типах процессоров - несколько шин адреса и данных). Это позволяет совмещать во времени выборку операндов и исполнение команд. Использование модифицированной гарвардской архитектуры предполагает, что операнды могут храниться не только в памяти данных, но и в памяти команд вместе с программами. Например, в случае реализации цифровых фильтров коэффициенты могут храниться в памяти программ, а значения данных - в памяти данных. Поэтому коэффициент и данные могут выбираться в одном машинном цикле. Для обеспечения выборки команды в том же машинном цикле используется либо кэш- память программ , либо двукратное обращение к памяти программ за время машинного цикла.
  2. Для сокращения времени выполнения одной из основных операций цифровой обработки сигнала - умножения - применяется аппаратный умножитель. В процессорах общего назначения эта операция реализуется за несколько тактов сдвига и сложения и занимает много времени, а в DSP-процессорах благодаря специализированному умножителю нужен всего один цикл. Встроенная схема аппаратного умножения позволяет выполнить за 1 такт основную операцию ЦОС - умножение с накоплением ( MultIPly - Accumulate - MAC ) для 16- и/или 32-разрядных операндов.
  3. Аппаратная поддержка циклических буферов. Например, для фильтра, представленного на рис. 16.3 , при каждом вычислении отсчета выходного сигнала используется новый отсчет входного сигнала, который сохраняется в памяти на месте самого старого. Для такого циркулирующего буфера может использоваться фиксированная область ОЗУ . При этом во время вычислений генерируются лишь последовательные значения адресов ОЗУ вне зависимости от того, какая операция - запись или чтение - выполняется в настоящий момент. Аппаратная реализация циклических буферов позволяет установить параметры буфера (адрес начала, длина) в программе вне тела цикла фильтрации, что позволяет сократить время выполнения циклического участка программы.
  4. Сокращение длительности командного такта. Это во многом обеспечивается приемами, характерными для RISC -процессоров. Главными из них являются размещение операндов большинства команд в регистрах, а также конвейеризация на уровне команд и микрокоманд . Конвейер имеет от 2 до 10 ступеней, что позволяет на различных стадиях выполнения одновременно обрабатывать до 10 команд. При этом используется генерация адресов регистров параллельно с выполнением арифметических операций, а также многопортовый доступ к памяти. Сюда же можно отнести и такой прием, характерный для универсальных микропроцессоров с EPIC-архитектурой , как применение команд со сверхбольшой длиной слова ( VLIW ), генерируемых на стадии компиляции программы. Этому же служит и рассмотренная выше гарвардская архитектура процессора, характерная для однокристальных микроконтроллеров.
  5. Наличие на кристалле процессора внутренней памяти, что роднит ЦСП с однокристальными МК. Встроенная в процессор память обычно имеет значительно большее быстродействие, чем внешняя. Наличие встроенной памяти позволяет значительно упростить систему в целом, уменьшить ее размеры, энергопотребление и стоимость. Емкость внутренней памяти является результатом определенного компромисса. Ее увеличение ведет к удорожанию процессора и увеличивает энергопотребление, а ограниченная емкость памяти программ не позволяет хранить сложные алгоритмы. Большинство DS P-процессоров с фиксированной точкой имеют малую емкость внутренней памяти, обычно от 4 до 256 Кбайт, и невысокую разрядность внешних шин данных , связывающих процессор с внешней памятью. В то же время ЦСП с плавающей точкой обычно предполагают работу с большими массивами данных и сложными алгоритмами и имеют либо встроенную память большой емкости, либо большую разрядность адресных шин для подключения внешней памяти (а иногда и то, и другое).
  6. Широкие возможности по аппаратному взаимодействию с внешними устройствами, включающие:
    • большое разнообразие интерфейсов, в том числе контроллеры локальной промышленной сети CAN, встроенные коммуникационные ( SCI ) и периферийные ( SPI ) интерфейсы, I2C , UART ;
    • несколько входов для аналоговых сигналов и, соответственно, встроенный АЦП ;
    • выходные каналы широтно-импульсной модуляции (ШИМ);
    • развитую систему внешних прерываний;
    • контроллеры прямого доступа в память.
  7. В некоторых DSP -семействах предусмотрены специальные аппаратные средства, облегчающие создание мультипроцессорных систем с параллельной обработкой данных для наращивания производительности.
  8. DSP -процессоры широко используются в мобильных устройствах, где потребляемая мощность является основной характеристикой. Для снижения энергопотребления в сигнальных процессорах применяется множество методов, в том числе уменьшение напряжения питания и введение функций управления потреблением, например, динамическое изменение тактовой частоты , переключение в спящий или дежурный режим либо отключение не используемой в данный момент периферии . Следует отметить, что эти меры оказывают значительное воздействие на скорость работы процессора и при некорректном использовании могут привести к неработоспособности проектируемого устройства (в качестве примера можно упомянуть некоторые сотовые телефоны, которые в результате ошибок в программах управления сокращенного набора команд , в DSP -процессорах применяются и такие характерные для MMX -обработки аппаратно поддерживаемые инструкции, как команды поиска минимума и максимума, получения абсолютного значения, сложения с насыщением, при котором в случае переполнения при сложении двух чисел результату присваивается максимально возможное в данной разрядной сетке значение . Это ведет к уменьшению количества конфликтов в конвейере и повышает эффективность работы процессора.

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

    Программирование микропроцессоров этого класса также имеет свои особенности. Значительное удобство для разработчика, обычно связываемое с использованием языков высокого уровня, в большинстве случаев оборачивается получением менее компактного и быстрого кода. Так как особенности ЦОС предполагают работу в реальном времени, это приводит к необходимости использования для решения тех же задач более мощных и дорогих DSP . Такая ситуация особенно критична для крупносерийной продукции, где разница в стоимости более производительного DSP или дополнительного процессора играет важную роль. В то же время в современных условиях скорость разработки (и, следовательно, выхода нового изделия на рынок) может принести больше выгод, чем затраты времени на оптимизацию кода при написании программы на ассемблере .

    Компромиссным подходом здесь служит использование ассемблера для написания наиболее критичных с точки зрения время- и ресурсоемкости участков программы, в то время как основная часть программы пишется на языке высокого уровня, как правило, Си или Си ++.

Данная статья открывает серию публикаций, посвященных многоядерным цифровым сигнальным процессорам TMS320C6678. В статье дается общее представление об архитектуре процессора. Статья отражает лекционно-практический материал, предлагаемый слушателям в рамках курсов повышения квалификации по программе «Многоядерные процессоры цифровой обработки сигналов C66x фирмы Texas Instruments», проводимых в Рязанском государственном радиотехническом университете.

Цифровые сигнальные процессоры TMS320C66xх строятся по архитектуре KeyStone и представляют собой высокопроизводительные многоядерные сигнальные процессоры, работающие как с фиксированной, так и с плавающей точкой. Архитектура KeyStone – это разработанный фирмой Texas Instruments принцип изготовления многоядерных систем на кристалле, позволяющий организовывать эффективную совместную работу большого числа ядер DSP- и RISC-типов, акселераторов и устройств периферии с обеспечением достаточной пропускной способности внутренних и внешних каналов пересылки данных, основой чего являются аппаратные компоненты: Multicore Navigator (контроллер обмена данными по внутренним интерфейсам), TeraNet (внутренняя шина пересылки данных), Multicore Shared Memory Controller (контроллер доступа к общей памяти) и HyperLink (интерфейс с внешними устройствами на внутрикристальной скорости).

Архитектура процессора TMS320C6678 , наиболее высокопроизводительного процессора в семействе TMS320C66xх, изображена на Рисунке 1. Архитектура может быть разбита на следующие основные компоненты:

  • набор операционных ядер (CorePack);
  • подсистема работы с общей внутренней и внешней памятью (Memory Subsystem);
  • периферийные устройства;
  • сетевой сопроцессор (Network Coprocessor);
  • контроллер внутренних пересылок (Multicore Navigator);
  • служебные аппаратные модули и внутренняя шина TeraNet.

Рисунок 1. Общая архитектура процессора TMS320C6678

Процессор TMS320C6678 работает на тактовой частоте 1.25 ГГц. В основе функционирования процессора лежит набор операционных ядер С66х CorePack, количество и состав которых зависят от конкретной модели процессора. ЦСП TMS320C6678 включает в свой состав 8 ядер DSP-типа. Ядро является базовым вычислительным элементом и включает в свой состав вычислительные блоки, наборы регистров, программный автомат, память программ и данных. Память, входящая в состав ядра, называется локальной.

Кроме локальной памяти, есть память общая для всех ядер – общая память многоядерного процессора (Multicore Shared Memory – MSM). Доступ к общей памяти осуществляется через подсистему управления памятью (Memory Subsystem), которая также включает интерфейс внешней памяти EMIF для обмена данными между процессором и внешними микросхемами памяти.

Сетевой сопроцессор повышает эффективность работы процессора в составе различного рода телекоммуникационных устройств, реализуя аппаратно типовые для данной сферы задачи обработки данных. В основе работы сопроцессора лежат акселератор пакетной передачи данных (Packet Accelerator) и акселератор защиты информации (Security Accelerator). В спецификации на процессор перечислен набор протоколов и стандартов, поддерживаемых данными акселераторами.

Периферийные устройства включают:

  • Serial RapidIO (SRIO) версии 2.1 – обеспечивает скорость передачи данных до 5 GBaud на линию при числе линий (каналов) – до 4;
  • PCI Express (PCIe) версии Gen2 – обеспечивает скорость передачи данных до 5 GBaud на линию при числе линий (каналов) – до 2;
  • HyperLink – интерфейс внутренней шины, позволяющий коммутировать процессоры, построенные по архитектуре KeyStone, напрямую друг с другом и осуществлять обмен на внутрикристальной скорости; скорость передачи данных – до 50 Gbaud;
  • Gigabit Ethernet (GbE) обеспечивает скорости передачи: 10/100/1000 Mbps и поддерживается аппаратным акселератором сетевых коммуникаций (сетевым сопроцессором);
  • EMIF DDR3 – интерфейс внешней памяти типа DDR3; имеет разрядность шины 64 бита, обеспечивающую адресуемое пространство памяти до 8 Гбайт;
  • EMIF – интерфейс внешней памяти общего назначения; имеет разрядность шины 16 бит и может использоваться для подключения 256MB NAND Flash или 16MB NOR Flash;
  • TSIP (Telecom Serial Ports) – телекоммуникационный последовательный порт; обеспечивает скорости передачи до 8 Mбит/с на одну линию при числе линий – до 8;
  • UART – универсальный асинхронный последовательный порт;
  • I2C – шина внутренней связи;
  • GPIO – ввод-вывод общего назначения – 16 выводов;
  • SPI – универсальный последовательной интерфейс;
  • Таймеры (Timers) – используются для генерации периодических событий.
Служебные аппаратные модули включают в себя:
  • модуль отладки и трассировки (Debug and Trace) – позволяет получать отладочным инструментальным средствам доступ к внутренним ресурсам работающего процессора;
  • загрузочное ПЗУ (boot ROM) – хранит программу начальной загрузки;
  • аппаратный семафор (semaphore) – служит для аппаратной поддержки организации совместного доступа параллельных процессов к общим ресурсам процессора;
  • модуль управления питанием – реализует динамическое управление режимами питания компонентов процессора с целью минимизации энергозатрат в моменты, когда процессор работает не в полную мощь;
  • схема ФАПЧ – формирует внутренние тактовые частоты процессора из внешнего опорного тактирующего сигнала;
  • контроллер прямого доступа в память (EDMA) – управляет процессом пересылки данных, разгружая операционные ядра ЦСП и являясь альтернативой Multicore Navigator.
Контроллер внутренних пересылок (Multicore Navigator) представляет собой мощный и эффективный аппаратный модуль, отвечающий за арбитраж передачи данных между различными компонентами процессора. Многоядерные системы на кристалле TMS320C66xx являются весьма сложными устройствами и, чтобы организовать обмен информацией между всеми компонентами такого устройства, необходим специальный аппаратный блок. Multicore Navigator позволяет ядрам, периферийным устройствам, хост-устройствам не брать на себя функции управления обменом данными. Когда какому-либо компоненту процессора необходимо переслать массив данных на другой компонент, он просто указывает контроллеру, что и куда нужно передать. Все функции по самой пересылке и синхронизации отправителя и получателя берет на себя Multicore Navigator.

Основой функционирования многоядерного процессора TMS320C66xх с позиции высокоскоростного обмена данными между всеми многочисленными компонентами процессора, а также внешними модулями, служит внутренняя шина TeraNet.

В следующей статье будет подробно рассмотрена архитектура операционного ядра C66x.

1. Multicore Programming Guide / SPRAB27B - August 2012;
2. TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Data Manual / SPRS691C - February 2012.

Цифровая обработка сигналов DSP (digital signal processor)

Особенности DSP

DSP представляют собой специализированные процессоры для приложений, требующих интенсивных вычислений.
Если ближе рассмотреть, к примеру, процесс операции умножения двух чисел с сохранением результата в традиционных микропроцессо­рах, то можно увидеть как расходуется машинное время: сначала про­исходит выборка команды (адрес команды выставляется на шину адре­са), затем первого операнда (адрес операнда выставляется на шину адреса), затем операнд переносится в аккумулятор, далее происходит выборка второго операнда и т.д. Ускорение этого процесса в процес­соре общего назначения невозможна из-за наличия единственной шины адреса и единственной шины данных, а также единственного банка данных. Ввиду этого все операции по извлечению операндов из памя­ти, выборки команды и сохранения операнда производится последова­тельно с использованием одной и той же шины данных и шины адреса. Кроме того, если рассмотреть операцию циклического суммирования арифметического ряда, то можно видеть что здесь непроизводительные затраты времени связаны с запоминанием адреса первой команды цик­ла, с проверкой условия цикла (счетчика) и возвратом к первой ко­манде. Также большие непроизводительные затраты существуют при операциях перехода к подпрограмме и возврата (запись и восстанов­ление значений регистров из стека) и при многих других операциях. Если при этом учесть огромное количество математических операций при выполнении цифровой обработки сигналов, то станет ясно, что неизбежны весьма чувствительные потери в точности вычисления при округлениях, которые не могут не сказаться на общем результате. Это происходит по причине одинаковой разрядности всех регистров процессоров общего назначения.
При цифровой обработке сигналов все эти затраты недопустимы. С целью преодоления этого недостатка про­цессоров общего назначения и были разработаны процессоры цифровых сигналов (DSP - Digital Signal Processor).

Трехшинная Гарвардская архитектура

Ее особенность состоит прежде всего в том, что в отличии от привычных нам двух шин: шины адреса и шины данных, а также одного банка памяти, DSP имеет как минимум 6-7 различных шин и 2-3 банка памяти. Эта особенность име­ет своей целью максимально ускорить выполнение операции умножения с сохранением результата, которая, несомненно, является наиболее употребляемой и ресурсоемкой при цифровой обработке сигналов. Ар­хитектура DSP позволяет за один машинный цикл произвести:

  • выборку команды посредством шины адреса программ и шины данных программ;
  • выборку двух операндов для операции умножения посредством двух шин адреса данных;
  • занесение операндов в аккумуляторы посредством двух шин данных;
  • операцию умножения;
  • сохранить результат в аккумуляторе.

Таким образом, трехшинная Гарвардская архитектура позволяет выполнить практически любую операцию за один машинный цикл.
B качестве примера эффективности использования DSP при реали­зации алгоритмов цифровой обработки сигналов можно привести следу­ющий факт: время выполнения комплексного 1024-точечного преобразо­вания Фурье составляет 20 мс для 486DX2 66 МГц (32-разрядный) и 3.23 mc для 24-разрядного 33 МГц DSP56001 фирмы Motorola или 3.1 мс для 32- разрядного 33 МГц DSP TMS320C30 с плавающей арифметикой фирмы Texas Instruments.
Однако, как уже упоминалось, процессоры цифровой обработки сигнала имеют отличием не только высокую производительность, изме­ряемую в быстроте выполнения операций умножения/аккумуляции (MIPS - миллионы команд в секунду), но и такие характеристики, как после­довательность выполнения программ, арифметических операций и адре­сации памяти, позволяющие сократить до минимума непроизводительные затраты времени. В целом DSP отличается от других типов микропро­цессоров и микроконтроллеров по следующим пяти основным признакам:

  • Быстрая арифметика.

DSP - процессор должен осуществлять выполнение за один цикл операций умножения, умножения с аккумуляцией, цикли­ческий сдвиг, а также стандартные арифметические и логи­ческие операции.

  • Расширенный динамический объем для операции умножения/ак­кумуляции.

Операция вычисления суммы некой последовательности значе­ний является фундаментальной для алгоритмов, реализуемых на DSP. Защита от переполнения необходима для избежания потери данных.

  • Выборка двух операндов за один цикл.

Очевидно, что для большинства операций, выполняемых DSP, необходимы два операнда. Таким образом, для достижения максимального быстродействия процессор должен быть спосо­бен производить одновременную выборку двух операндов, что требует также наличия гибкой системы адресации.

  • Наличие аппаратно реализованных циклических буферов(встро­енных и внешних).

Широкий класс алгоритмов, реализуемых на DSP требует ис­пользования циклических буферов. Аппаратная поддержка цик­лического возврата указателя адреса или модульная адреса­ция уменьшает непроизводительные затраты процессорного времени и упрощает реализацию алгоритмов.

  • Организация циклов и ветвлений без потери в производитель­ности.

Алгоритмы DSP включают очень много повторяющихся операций, которые могут быть реализованы в виде циклов. Возможность организации последовательности выполнения программы кодов в цикле без потери производительности отличают DSP от дру­гих процессоров. Аналогично, потеря времени при выполнении операции ветвления по условию также недопустима при цифро­вой обработке сигналов.
Не следует, однако, думать, что DSP могут полностью заменить процессоры общего назначения. Как правило, процессоры цифровых сигналов имеют упрощенную систему команд, не позволяющие выполнить операции, не связанные с математическими вычислениями с такой же эффективностью, как и процессоры общего назначения. Попытка же со­четания в одном процессоре мощность при математических вычислениях и гибкость при операциях другого рода приводит к неоправданному повышению себестоимости. Поэтому DSP используют чаще в виде сопро­цессоров (математических, графических, акселераторов и т.д.) при главном процессоре либо в качестве самостоятельного процессора, если этого достаточно.

DSP фирмы Motorola

Фирмой Motorola в настоящее время выпускается три семейства Цифровых Процессоров Сигналов. Это серии DSP56100, DSP56000 и DSP96000. Все микросхемы приведенных серий основываются на архитектуре DSP56000 и различаются разрядностью (16, 24, 32 бит соответственно) и некоторыми встроен­ными устройствами. Таким образом достигается совместимость микрос­хем всех трех семейств снизу вверх. Все DSP фирмы Motorola постро­ены по идентичной трехшинной Гарвардской архитектуре, описанной ранее, с большим количеством составных частей, портов, контролле­ров, банков памяти и шин, работающих параллельно с целью достиже­ния максимального быстродействия.
Передача данных происходит по двунаправленным шинам данных (одной для DSP56100 (XDB) и двум для DSP56000 и DSP96000 (XDB и YDB)), шине данных программ (PDB) и общей шине данных (GDB). Кроме того, у DSP96000 присутствует отдельная шина прямого доступа к памяти (DDB). Передача данных между шинами про­исходит через внутреннее устройство управления шинами.
Адресация осуществляется по двум однонаправленным шинам: шине адреса данных и шине адреса программ.
Блок манипуляции битами позволяет гибко управлять состоянием любого бита в регистрах и ячейках памяти. Наличие такой возможнос­ти является преимуществом по отношению к DSP других пользователей.
Арифметико-логическое устройство (АЛУ) выполняет все арифме­тические и логические операции и имеет в своем составе входные ре­гистры, аккумуляторы, регистры расширения аккумуляторов (8-битные, допускающие 256 переполнений без потери точности), параллельный одноцикловой блок умножения с сохранением (МАС), а так же сдвиго­вые регистры.Гибкая система команд позволяет выполнить АЛУ за один цикл команды умножения, умножения с сохранением результата, сумми­рования, вычитания, сдвига и логические операции. Характерной осо­бенностью DSP фирмы Motorola является возможность сдваивания вход­ных регистров АЛУ и увеличения таким образом разрядности обрабаты­ваемых чисел. Еще одной важной особенностью является наличие опе­рации деления, зачастую отсутствующей у других производителей и заменяемой операцией умножения на обратное число, что приводит к потере точности.
Блок формирования адреса выполняет все вычисления, связанные с определением адресов в памяти. Этот блок работает независимо от остальных блоков процессора. За один цикл могут производиться две операции считывания из памяти или одна операция записи. DSP фирмы Motorola обладают чрезвычайно мощной мощной системой адресации, позволяющей производить практически любые манипуляции с данными за одну команду. Это важная особенность выгодно отличает DSP, выпус­каемые фирмой, от аналогов. Адресация по модулю удобна для органи­зации кольцевых буферов без проверки выхода за границу, что позво­ляет избегать непроизводительных затрат времени. Возможность адре­сации с инверсией значащих битов облегчает реализацию БПФ.
Блок управления выполнением программ содержит 6 регистров, среди которых Указатель адреса цикла и Счетчика циклов , позволяю­щие организовать аппаратную поддержку организации циклов в DSP фирмы Motorola, при которой не тратятся дополнительные машинные циклы на проверку условия выхода из цикла и изменения счетчика цикла. В команде организации цикла DO явно указывается количество повторений.
Системный стек представляет из себя отдельную часть из 15 слов ОЗУ, и может хранить информацию о 15 прерываниях, 7 циклах или 15 выходах в подпрограмму. Данные из стека читаются за один цикл уменьшая таким образом непроизводительные затраты времени процессора.
Главной отличительной особенностью DSP фирмы Motorola являет­ся наличие у всех микросхем внутрикристального эмулятора , позволяющие производить отладку программ без ис­пользования дополнительных аппаратных средств. Таким образом нет необходимости в покупке дорогостоящих отладочных средств. Эмулятор позволяет производить запись/считывание регистров и ячеек памяти, установку точек останова, пошаговое выполнение программ и дру­гие действия посредством подачи команд по 4- проводной шине.
Для снижения потребления энергии в моменты, когда не произво­дится вычисления, предусмотрены два режима с пониженным энергопот­реблением: STOP и WAIT.
Для работы совместно с другими процессорами и каналами прямо­го доступа к памяти предусмотрен встроенный HOST-интерфейс.
Обладая всеми вышеперечисленными свойствами, необходимыми для цифровой обработки сигналов, DSP фирмы Motorola имеют чрезвычайно мощную и гибкую систему команд, позволяющую пользователю удобно и эффективно работать с процессорами.

Семейство DSP96000

Семейство DSP DSP96000 имеет 32-битную архитектуру и поддер­живает операции с плавающей точкой. Микросхемы семейства предназ­начены для компьютерных систем Multimedia. DSP этой серии могут работать и как самостоятельные микросхемы, и через два независи­мых 32-битных порта могут последовательно обмениваться данными с другими процессорами.
Микросхемы семейства имеют в своем составе 6 банков памяти, 8 шин и 4 автономных вычислительных блока: АЛУ, блок управления программой, двойной блок генерации адреса и встроенный двухка­нальный контроллер прямого доступа к памяти.
Характеристики микросхем семейства DSP96000:

  • 49.5 MIPS при 40 МГц
  • 60 MFLOPS при 40 МГц, цикл 50 нс
  • 32-битная организация
  • 2 банка памяти данных ОЗУ 512х32 бит
  • 2 банка памяти данных ПЗУ 512х32 бит
  • ОЗУ программ 1024х32 бит
  • загрузочное ПЗУ объемом 56 байт
  • адресуемая внешняя память 2х232 32-битных слов памяти дан­ных и программ
  • встроенный эмулятор
  • 2 канала прямого доступа к памяти
  • 2 канала обмена с внешними процессорами
  • корпус с 223 выводами в корпусе PGA или QFP

DSP фирмы Texas Instruments

DSP этой фирмы представлены следующими микропроцессорами: TMS 32010, TMS 320C20, TMS 320C25, TMS 320C30, TMS 320C40, TMS 320C50.

Особенности архитектуры ТMS320C25

Архитектура TMS320C2x основана на архитектуре TMS32010 - пер­вом члене микропроцессорного семейства DSP. Кроме того, набор его команд перекрывает набор команд микропроцессора TMS32010, что сохраняет программную совместимость снизу вверх.
Микропроцессор TMS320C2x имеет один аккумулятор и использует Гарвардскую архитектуру в которой память данных и память программ разнесены в разные адресные пространства. Это позволяет полностью перекрыть во времени вызов и выполнение команды. Система команд включает команды обмена данными между двумя областями памяти. Вне микропроцессора пространства памяти данных и программ объединены на одну и ту же шину для того, чтобы максимально увеличить диапа­зон адресов в обеих областях памяти и одновременно максимально уменьшить количество выводных контактов. Внутри микропроцессора пространства программ и данных выведены на разные шины, чтобы уве­личить мощность процессора и скорость выполнения программ.
Повышенная гибкость конструкции системы обеспечивается распо­ложенными на кристалле двумя большими блоками памяти RAM, один из которых может использоваться и как память программ и как память данных. Большинство команд процессора выполняются за один машинный цикл с использованием как внешней памяти программ с быстрой выбор­кой, так и с использованием внутренней памяти RAM. Гибкость мик­ропроцессора TMS320C2x предусматривает также подключение медленной внешней памяти или периферийных устройств, используя сигнал READY; но в этом случае команды выполняются за несколько машинных циклов.

Организация памяти

На кристалле TMS32020 находится 544 16-разрядных слова памяти RAM, из которых 288 слова (блоки B1 и B2) всегда отведены под дан­ные, а 256 слов (блок B0) в разных конфигурациях процессора могут использоваться либо как память данных, либо как память программ. TMS320C25 кроме того обеспечен маскируемым ПЗУ (ROM), объемом 4К слов, а TMS320E25 - памятью 4К слов с ультрафиолетовым стиранием EPROM.
TMS320C2x обеспечен тремя разделенными адресными пространс­твами - для памяти программ, для памяти данных и для устройств ввода/вывода, как показано на рис. 6.5. Эти пространства вне крис­талла различаются при помощи сигналов -PS, -DS, -IS (для прост­ранств программы, данных, ввода/вывода соответственно). Блоки па­мяти B0, B1, B2, расположенные на кристалле, охватывают в сумме 544 слова памяти с произвольным доступом (RAM). RAM блок B0 (256 слов) располагается на 4 и 5 страницах памяти данных, если он от­веден под данные, или по адресам >FF00 - >FFFF, если он является частью памяти программ. Блок B1 (только для данных) располагается на 6 и 7 страницах, а блок B2 занимает старшие 32 слова 0 страни­цы. Отметим, что оставшуюся часть 0 страницы занимают 6 адресуемых регистров и резервная область; 1 - 3 страницы также представляют собой резервную область. Резервные области нельзя использовать для хранения информации, при чтении их содержимое не определено.
Внутренняя память программ (ROM), расположенная на кристалле процессора может быть использована в качестве младших 4К слов па­мяти программ. Для этого на контакт MP/*MC должен быть подан сиг­нал низкого уровня. Для запрещения использования внутренней облас­ти ROM на MP/*MC надо подать высокий уровень.

Внешняя память и интерфейс ввода/вывода

Микропроцессор TMS32020 поддерживает широкий диапазон интер­фейсных систем. Адресное пространство данных, программ и ввода/вы­вода обеспечивает сопряжение с памятью и внешними устройствами, что увеличивает возможности системы. Интерфейс локальной памяти состоит из:

  • 16-ти разрядной шины данных (D0-D15);
  • 16-ти разрядной шины адреса (A0-A15);
  • адресных пространств данных, программ и ввода/вывода выбираемых сигналами (*DS, *PS и *IS);
  • различных сигналов управления системой.

Сигнал R/*W управляет направлением передачи, а сигнал *STRB управляет передачей.
Пространство ввода/вывода содержит 16 портов для вводы и 16 портов для вывода. Эти порты обеспечивают полный 16-разрядный ин­терфейс со внешними устройствами по шине данных. Одноразовый ввод/вывод с помощью команд IN и OUT выполняется за два командных цикла; однако использование счетчика повторений снижает время од­ного обращения к порту до 1-го цикла.
Использование ввода/вывода упрощается тем, что ввод/ вывод осуществляется также, как и обращение к памяти. Устройства вво­да/вывода отображаются в адресном пространстве ввода/вывода, ис­пользуя внешние адреса процессора и шину данных, таким же образом, как память. При адресации внутренней памяти шина данных находится в третьем состоянии, а управляющие сигналы в пассивном состоянии (высоком).
Взаимодействие c памятью и устройствами ввода/вывода на раз­личных скоростях сопровождается сигналом READY. При связи с мед­ленными устройствами, TMS320C2x ждет, пока устройство не завершит свою работу и просигнализирует процессору об этом через линию REA­DY, после чего процессор продолжит работу.

Центральное арифметико-логическое устройство

Центральное арифметическо-логическое устройство (CALU) содер­жит 16-разрядный масштабирующий регистр сдвига, 16 x 16 парал­лельный умножитель, 32-разрядное арифметическо-логическое устройс­тво (ALU), 32-разрядный аккумулятор и несколько дополнительных сдвиговых регистров, расположенных как на выходе из умножителя, так и на выходе из аккумулятора.
Любая операция ALU выполняется в следующей последовательнос­ти:

  1. данные захватываются из RAM на шину данных,
  2. данные проходят через масштабирующий сдвиговый регистр и через ALU, в котором выполняются арифметические опера­ции,
  3. результат передается в аккумулятор.

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

Конвейерные операции

Конвейер команд состоит из последовательности операций обра­щения ко внешней шине, которые возникают в течении выполнения ко­манд. Конвейер "предвыборка-декодирование-выполнение" обычно неза­метен для пользователя, за исключением некоторых случаев, когда конвейер должен быть прерван (например, при ветвлении). Во время работы конвейера предвыборка, декодирование и выполнение команд независимы друг от друга. Это позволяет командам перекрываться. Так в течении одного цикла две или три команды могут быть активны, каждая на разных этапах работы. Поэтому получается двухуровневый конвейер для TMS32020 и трехуровневый для TMS320C25.
Количество уровней конвейера не всегда влияет на скорость вы­полнения команд. Большинство команд выполняется за одно и то же количество циклов вне зависимости от того, из какой памяти выбира­ются команды: внешней, внутренней RAM или внутренней ROM.
Добавочные аппаратные средства, имеющиеся на процессоре TMS320C25, позволяют расширить количество уровней конвейера до трех, что повышает производительность процессора. К этим средствам относятся счетчик предзахватов (PFC), 16-разрядный стек микровызо­вов (MCS), регистр команд (IR), и регистр очереди команд (QIR).
При трехуровневом конвейере PFC содержит адрес следующей ко­манды, которая должна быть предзахвачена. Как только предзахват осуществлен, команда загружается в IR. Если же IR хранит команду, которая еще не выполнена, то предзахваченная команда помещается в QIR. После этого PFC увеличивается на 1. Как только текущая коман­да будет выполнена, команда из QIR будет перегружена в IR, для дальнейшего исполнения.
Счетчик команд (PC) содержит адрес команды, которая должна быть выполнена следующей, и не используется для операций захвата.
Но обычно PC используется в качестве указателя на текущую позицию в программе. Содержимое PC увеличивается после каждой выполненной команды. Когда возникает прерывание или вызов подпрограммы, содер­жимое PC помещается в стек, чтобы в дальнейшем можно было выпол­нить возврат в нужное место программы.
Циклы предзахвата, декодирования и выполнения конвейера неза­висимы друг от друга, это позволяет перекрываться исполняемым ко­мандам во времени. В течении любого цикла три команды могут быть одновременно активны, каждая на разных стадиях завершения.

Что такое DSP?

Цифровые сигнальные процессоры (DSP, Digital Signal Processors) принимают на вход предварительно оцифрованные физические сигналы, например, звук, видеоизображение, показания температуры, давления и положения, и производят над ними математические манипуляции. Внутренняя структура цифровых сигнальных процессоров специально разрабатывается таким образом, чтобы они могли очень быстро выполнять такие математические функции, как “сложение”, “вычитание”, “умножение” и “деление”.

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

Для иллюстрации этой концепции рассмотрим приведенную ниже блок-схему, на которой показано, как цифровой сигнальный процессор используется в составе MP3 аудиоплеера. В фазе записи аналоговый звуковой сигнал поступает в систему от приемника или иного источника. Этот аналоговый сигнал преобразовывается в цифровой сигнал при помощи аналого-цифрового преобразователя и передается в цифровой сигнальный процессор. Цифровой сигнальный процессор выполняет кодирование в формат MP3 и сохраняет файл в память. В фазе воспроизведения файл извлекается из памяти, декодируется цифровым сигнальным процессором и преобразовывается при помощи цифро-аналогового преобразователя обратно в аналоговый сигнал, который может быть воспроизведен в акустической системе. В более сложном примере цифровой сигнальный процессор может выполнять дополнительные функции, например, регулировку громкости, частотную компенсацию и обеспечение интерфейса пользователя.

Информация, формируемая цифровым сигнальным процессором, может быть использована компьютером, например, для управления системами безопасности, телефонами, домашними кинотеатрами или сжатием видеоизображений. Сигналы могут подвергаться сжатию (компрессии) для более быстрой и эффективной передачи из одного места в другое (например, в системах телеконференций для передачи речи и видеоизображений по телефонным линиям). Сигналы также могут подвергаться дополнительной обработке для повышения их качества или предоставления информации, которая изначально недоступна для восприятия человеком (например, в задачах эхокомпенсации в мобильных телефонах или компьютерного улучшения качества изображений). Физические сигналы могут обрабатываться и в аналоговой форме, однако цифровая обработка обеспечивает повышенное качество и быстродействие.

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

Более подробную информацию о преимуществах применения цифровых сигнальных процессоров при обработке сигналов реального мира вы можете найти, прочитав первую часть статьи Цифровая обработка сигналов 101 - Вводный курс в проектирование систем цифровой обработки сигналов, которая называется “Зачем нужен цифровой сигнальный процессор?”


Что находится внутри цифрового сигнального процессора (DSP)?

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

  • Память программ: Содержит программы, которые цифровой сигнальный процессор использует для обработки данных
  • Память данных: Содержит информацию, которую необходимо обрабатывать
  • Вычислительное ядро: Выполняет математическую обработку, обращаясь к программе, содержащейся в памяти программ, и данным, содержащимся в памяти данных
  • Подсистема ввода/вывода: Осуществляет спектр функций для интерфейса с внешним миром

Для получения подробной информации о процессорах и прецизионных аналоговых микроконтроллерах компании Analog Devices мы предлагаем вам ознакомиться со следующими ресурсами:

Цифровая обработка сигналов - это сложный предмет, и он способен ошеломить даже наиболее опытных профессионалов в области цифровых сигнальных процессоров. Здесь мы дали лишь краткий обзор, но компания Analog Devices также предлагает дополнительные ресурсы, содержащие более подробную информацию о цифровой обработке сигналов:

  • - обзор технологий и вопросы практического применения
  • Серия статей в журнале Analog Dialogue: (на англ.яз.)
    • Часть 1: Зачем нужен цифровой сигнальный процессор? Архитектуры цифровых сигнальных процессоров и преимущества цифровой обработки сигналов перед традиционными аналоговыми схемами
    • Часть 2: Узнайте больше о цифровых фильтрах
    • Часть 3: Реализация алгоритмов на аппаратной платформе
    • Часть 4: Вопросы программирования для поддержки ввода/вывода в реальном времени
  • : Часто используемые слова и их значение

Практические занятия по цифровым сигнальным процессорам являются быстрым и эффективным способом ознакомиться с применением цифровых сигнальных процессоров компании Analog Devices. Они позволят вам овладеть уверенными практическими навыками работы с цифровыми сигнальными процессорами Analog Devices через курс лекций и практических упражнений. Расписание и информацию о регистрации вы можете найти на странице Обучение и разработка.

Загрузка...