Цифровой сигнальный процессор

Процессоры семейства NeuroMatrix. Нейросигнальный процессор NeuroMatrix NM6403. Архитектура векторного узла. Задание границ насыщения с помощью программно доступных регистров управления функцией. Карта памяти процессора. Цифровая обработка сигнала.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид реферат
Язык русский
Дата добавления 13.01.2014
Размер файла 113,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Цифровой сигнальный процессор

1. Цифровые сигнальные процессоры

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

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

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

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

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

2. Процессоры семейства NeuroMatrix

Научно-техническим центром «Модуль» разработано семейство процессоров цифровой обработки сигналов (DSP) NeuroMatrix, включающее СБИС Л1879ВМ1 (NM6403) и 1879ВМ2 (NM6404), а в перспективе - процессор третьего поколения 1879ВМ4 (NM6405). Поначалу при создании плат для поддержки нейронных процессов специалисты НТЦ использовали зарубежные DSP. Однако их архитектура не соответствовала классу решаемых задач, и со временем специалисты «Модуля» пришли к выводу, что можно не только разработать свой DSP-процессор, но и сделать его гораздо лучше зарубежных аналогов. Таким устройством стала микросхема NeuroMatrix NM6403.

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

Процессоры семейства NeuroMatrix - это высокопроизводительные вычислительные устройства RISC-архитектуры с элементами VLIW (Very Long Instruction Word - очень длинное командное слово), SIMD (Single Instruction Multiple Data) и суперскаляра. Они аппаратно поддерживают матричные и векторные операции над 64-разрядными векторами, в которых упакованы данные (в дополнительном коде с фиксированной точкой). Каждый вектор может состоять из нескольких элементов произвольной разрядности, но суммарная разрядность всех элементов вектора должна составлять 64 разряда. Процессор Л1879ВМ1

Процессор Л1879ВМ1 выпускается уже более семи лет. Он изготавливается по КМОП-технологии с технологическими нормами 0,5 мкм фирмой Samsung.

Процессор работает на частотах до 40 МГц в диапазоне температур от -40…+85 °С и напряжений от 3,0-3,6 В. В 1999 году лицензия на использование микропроцессорного ядра этого процессора была приобретена фирмой Fujitsu. Л1879ВМ1 поддерживает работу с 32-разрядными скалярными данными и векторными данными программируемой разрядности от 1 до 64, упакованными в 64-разрядные блокиданных.

Нейросигнальный процессор NEUROMATRIX NM6403 (фирма «Модуль», Россия)

Нейрочип NM6403.

Основные характеристики:

тактовая частота - 40 MГц;

- 0,5 - мкм КМОП-технология;

- корпус 256BGA;

- напряжение питания от 2,7 до 3,6 В;

- потребляемая мощность около 1,3 Вт при 50 МГц;

- условия эксплуатации: -60…+85C.

Основой NeuroMatrix NM6403 является процессорное ядро NeuroMatrixCore (NMC), которое представляет собой синтезабильную модель высокопроизводительного DSP-процессора с архитектурой VLIM/SIMD (язык Ver ilog).

В состав процессора входят:

· 32-разрядный RISC-процессор с 5-ступенчатым конвейером, выполняющий скалярные арифметические, логические и сдвиговые операции над 32-разрядными данными, а также управляющий выполнением программ. RISC-процессор использует оригинальную систему команд. Команды - 32- и 64-разрядные, одна команда обычно задает две операции: арифметическую и ввода-вывода;

· векторный узел, выполняющий арифметические и логические операции над 64-разрядными векторами данных;

· два идентичных 64-разрядных интерфейса с внешней памятью - локальной (LMI) и глобальной (GMI). Каждый интерфейс позволяет работать с двумя банками внешней памяти типа SRAM/DRAM общим объемом 8 Гбайт (231 32-разрядных ячеек).

Таким образом, доступное адресное пространство составляет 16 Гбайт (рис. 2). Обмен происходит 32- и 64-разрядными данными.

Младший разряд адреса используется только при обмене 32-разрядными данными. Интерфейсы LMI и GMI поддерживают режим совместного использования общей памяти с другим процессором;

· два байтовых коммуникационных порта ввода / вывода для межпроцессорного обмена, аппаратно совместимые с портами DSP TMS320C4x фирмы Texas Instruments (CP0 и CP1);

· сопроцессор прямого доступа к памяти (ПДП), осуществляющий обмен

64-разрядными данными между памятью и портами;

· коммутатор шин данных, позволяющий динамически связать одну из внешних шин с одной из шести внутренних: с шиной команд IB, входных / выходных скалярных данных SDIB/SDOB, входных / выходных векторных данных VDIB/VDOB, а также с входной шиной весов WB. Все шины · 64-разрядные.

3. Архитектура процессора NM6403

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

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

Число MAC, выполняемых за один такт, зависит от разрядности операндов (размеров макроячеек) и изменяется от 2 (32-разрядные данные) до 224 (2-разрядные данные) МАС. Соответственно, пиковая производительность при 2-разрядных данных составляет 8,96 млрд МАС (GMAC) на частоте 40 МГц. Если повысить точность, используя 32-разрядные операнды с получением 64-разрядного результата, производительность снизится до 80 MMAC.

Конфигурация векторного узла может меняться динамически в процессе вычислений. Например, начав вычисления с небольшой разрядностью, но с большой производительностью, по мере накопления промежуточных результатов (и увеличения их разрядности) можно перейти к обработке данных большей разрядности за счет снижения быстродействия (рис. 4). Например, при работе с 8-разрядными входными данными (Xi) и весами (Wij) (рис. 5) достигается пиковая производительность в 960 MMAC (за один такт в 25 нс выполняются 24 операции MAC с получением 21-разрядных результатов).

Операционное устройство достигает еще большей производительности - 40,96 GMOPS при выполнении булевого умножения, когда разрядность входных операндов и весов равна 1. Интересно отметить, что при использовании 1-разрядных коэффициентов векторный узел превращается в мощный коммутатор, когда перестановка битов в 64-разрядном входном операнде происходит за один такт.

Для предотвращения переполнения регистров результата аппаратно реализована функция насыщения, выполняемая одновременно над всеми элементами 64-разрядных векторов упакованных данных. Границы насыщения задаются с помощью программно доступных регистров управления этой функцией.

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

Структурная схема процессора

Карта памяти процессора

Конвейер Л1879ВМ1 состоит из нескольких подконвейеров. Любая скалярная или векторная команда в заданный момент времени занимает один или несколько подконвейеров. Очередная команда (но не более одной за такт) может быть запущена, только если свободны необходимые подконвейеры. Одновременно выполнются до четырех векторных команд (включая два доступа в память) и одна скалярная команды.

Синхронизируются подконвейеры с помощью механизма блокировок. Если команда требует некоторый ресурс, который в данный момент занят, формируется блокировка, и выполнение команды приостанавливается. Принадлежащие команде подконвейеры блокируются, остальные же могут продолжать свою работу.

Таким образом, несмотря на последовательный запуск команды в конвейер, использование векторных команд позволяет достичь производительности суперскалярных процессоров. Также поддерживается завершение команд не в том порядке, в котором они выбирались из памяти. Вместе с тем достигается высокий уровень загрузки аппаратуры на кристалле, поскольку скалярные и векторные команды используют единый конвейер и одни и те же исполнительные устройства. При этом объем управляющей логики невелик - менее 5% от 115 тыс. используемых вентилей на кристалле.

Эффективность заложенных в NeuroMatrix архитектурных решений демонстрирует сравнение производительности DSP Л1879ВМ1 и TMS320C80 (Texas Instruments) на задачах вычисления фильтра-свертки. Важно отметить, что число циклов для Л1879ВМ1 с увеличением размера маски свертки растет линейно.

Работа над технологией NeuroMatrix, объединяющей в себе две современные архитектуры - VLIW (Very Long Instruction Word) и SIMD (Single Instruction Multiple Data), началась в 1996 г. А уже в 1998-м в НТЦ получена первая партия (25 шт.) новых процессоров, изготовленных на заводе Samsung Electronics по КМОП-технологии с соблюдением проектных норм 0,5 мкм. Инженеры справились со всеми проблемами и за восемь месяцев спроектировали первую версию микросхемы оригинальной архитектуры. В июне 1999-го было объявлено о начале поставок коммерческих партий этого процессора.

На 48-м Всемирном Салоне изобретений, научных исследований и промышленных инноваций в 1999 г. в Брюсселе работа «Нейропроцессор, устройство для вычисления функций насыщения, вычислительное устройство и сумматор» (патент РФ №2131145) получила золотую медаль за достижения в области электроники и высоких технологий. Ноу-хау НТЦ стало использование в одной микросхеме сразу двух процессоров - векторного (DSP) и скалярного (RISC), причем с единой системой команд. Действительно, в состав устройства входят 32-разрядное RISC-ядро и 64-разрядное VECTOR-ядро. За один процессорный такт может быть выполнено до 288 операций умножения с накоплением. Именно поэтому NM6403 классифицируется как 64-разрядный DSP RISC-процессор, который по своим возможностям превосходит все мировые DSP-аналоги. Отметим, что при соблюдении проектных норм 0,7 мкм 100 тыс. вентилей, требуемых для реализации процессора, умещаются на кристалле размером 10х10,5 мм.

Для большинства DSP-приложений взвешенное суммирование является доминирующим действием, требующим применения аппаратных узлов типа матричных умножителей с аккумулятором (Multiply Accumulate, MAC) - таким образом обеспечивается производительность, необходимая для работы в реальном масштабе времени. Одна из главных идей, воплощенных в этом процессоре, - функции с операндами переменной разрядности. За счет этого может варьироваться скорость обработки данных и точность вычислений.

В процессоре NM6403 реализован универсальный узел, одновременно выполняющий столько MAC-операций, сколько требуется для оптимизации критерия производительность / точность. При решении ряда задач, связанных с большим потоком данных (обработка черно-белого видео в реальном масштабе времени, радиолокация, нейросети и т.п.), традиционные DSP-архитектуры, имеющие 16- и 32-разрядный формат данных, используются неэффективно.

Из-за жесткой фиксации разрядной сетки не представляется возможным подстроиться под изменяющиеся форматы данных. Новая архитектура NeuroMatrix позволяет обойти подобные ограничения и производить MAC-операции в пределах от 1 до 64 разрядов, причем количество MAC, выполняемых в единицу времени, зависит от числа и разрядности операндов, умещающихся в 64-разрядном слове. Ядром архитектуры является регулярная структура, похожая на матричный умножитель. Матрица состоит из 64x64 ячеек, каждая из которых содержит элемент памяти и несколько логических элементов. Матрица может быть разделена на несколько подматриц двумя 64-разрядными программируемыми регистрами, определяющими границы MAC и входных данных.

Как известно, производительность нейровычислителей принято измерять в (миллионах) умножений с накоплением в секунду: (М) МАС - наряду с распространенными (М) IPS и (M) OPS. Так вот, производительность этого процессора для 32-разрядных данных достигает 50 MIPS и 200 MOPS (на тактовой частоте 40 МГц - 40 MIPS и 120 MOPS). Уникальная возможность программного управления длиной операндов и результатов позволяет варьировать производительность на векторных операциях в пределах от 50 MMAC (32 разряда) до 51 200 MMAC (1 разряд) при тактовой частоте 50 МГц. Оценивать быстродействие тех или иных устройств на основе DSP принято по времени выполнения типовых операций цифровой обработки сигналов: фильтр Собеля, быстрое преобразование Фурье (БПФ), преобразование Уолша - Адамара и т.д. При оценке производительности нейровычислителей используется такой показатель, как CPS (Connections Per Second) - число соединений (умножений с накоплением) в секунду.

При тестировании процессор NM6403 продемонстрировал отличные результаты в широком спектре DSP-приложений. Так, 256-точечное 32-разрядное комплексное БПФ производится за 4070 тактов и требует только 80 мкс, преобразование Уолша - Адамара (2M точек) вычисляется за 0,34 с, нейросеть прямого распространения (1024 слоя, 1024 нейрона в слое) эмулируется за 1,53 с, фильтр Собеля работает со скоростью 68 кадров в секунду (размер кадра 384x288 байт). Производительность при тактовой частоте 30 МГц для байтовых операндов составляет 720 MCPS (миллионов соединений в секунду), а для бинарных операций - 8640 MCPS.

Как уже отмечалось, ядро NM6403 состоит из двух базовых блоков: 64-разрядного векторного и 32-разрядного RISC-процессора. Кроме того, имеются два идентичных программируемых интерфейса для работы с внешней памятью различного типа и два коммуникационных порта, на аппаратном уровне совместимых с портами ЦПС TMS320C4x (Texas Instruments) и позволяющих строить многопроцессорные системы.

Центральный процессорный узел представляет собой суперскалярный пятиступенчатый 32-разрядный RISC-процессор с оригинальной системой команд. Он предназначен для выполнения арифметико-логических операций над 32-разрядными скалярными данными, формирования 32-разрядных адресов команд и данных при обращениях к внешней памяти и выполнения всех основных функций по управлению работой NM6403. В его состав входят АЛУ, сдвигатель, два генератора адресов данных, восемь регистров общего назначения, восемь адресных регистров, счетчик команд, регистр слова состояния процессора, регистр запросов прерываний, буфер и регистры команд, два программируемых таймера.

Векторный сопроцессор выполняет арифметические и логические операции над 64-разрядными векторами данных программируемой разрядности. Его ядром является запатентованная разработка NeuroMatrix Engine. В систему входят два идентичных блока программируемого интерфейса с локальной и глобальной 64-разрядными внешними шинами, позволяющими подключить внешнюю память. Каждый такой блок обеспечивает эффективную работу процессора с двумя банками внешней памяти различной емкости (типа SRAM, EDO DRAM) и различного быстродействия без использования внешнего контроллера. В обоих блоках предусмотрена аппаратная поддержка режима разделяемой памяти для трех различных многопроцессорных конфигураций внешней шины. Выборка команд из внешней памяти осуществляется 64-разрядными словами, каждое из которых представляет собой одну 64-разрядную или две 32-разрядные команды. По шине выходных данных информация из RISC-ядра, векторного сопроцессора и коммуникационных портов пересылается в память. По входным шинам данные и команды могут быть из памяти направлены в любой основной узел нейропроцессора. При обращении во внешнюю память процессор использует 32-разрядный вычисляемый адрес. Его доступное адресное пространство равно 16 Гб. Пропускная способность двух 64-разрядных интерфейсов с памятью достигает 800 Мб/с. Два идентичных коммуникационных порта обеспечивают двунаправленный обмен информацией со скоростью 20 Мб/с. Они предназначены для построения высокопроизводительных многопроцессорных систем на основе NM6403 и полностью совместимы с коммуникационным портом процессора TMS320C4x. Каждый коммуникационный порт имеет встроенный контроллер ПДП, позволяющий обмениваться 64-разрядными данными с внешней памятью в фоновом режиме.

neuromatrix процессор память сигнал

3. Цифровая обработка сигнала с помощью процессора NM6403

1 Общие сведения

Процессор NM6403 выполняет все функции цифровой обработки сигналов. К локальной шине подключена высокоскоростная статическая память, в которую загружается исполняемый код процессора после системного сброса через коммуникационный порт 1 при помощи ЭВМ.

Все периферийные устройства подключены к глобальной шине через ПЛИС Altera EPM7512AETC144. Эта микросхема выполняет следующие функции:

- Чтение данных с АЦП AD9240

- Запись данных для ЦАП AD9754

- Деление системной частоты 40 МГц для АЦП и ЦАП.

- Управление мультиплексором

- Управление светодиодом

Программирование ПЛИС осуществляется через интерфейс JTAG.

2 Подробное описание платы

2.1 Интерфейс NM6403 - ЭВМ

Взаимодействие процессора NM6403 с ЭВМ осуществляется при помощи коммуникационного порта 1 и параллельного порта ЭВМ. Эта схема при минимальном наборе микросхем позволяет ЭВМ напрямую контролировать работу процессора NM6403

Процессор NM6403

Статическое ОЗУ

Локальная шина

Интерфейс с периферийными устройствами (Altera)

Глобаль ная шина

Комм. порт 1

Интерфейс с LPT портом ЭВМ

Светодиод

Генератор тактовой частоты 40 МГц ЦАП

Регулируемый усилитель сигнала

АЦП

Регулируемый усилитель сигнала

Мультиплексор

Аналоговый выход

Аналоговые входы

JTAG

Reset

и избежать возможных конфликтов по линиям управления и данных комм. порта. Здесь и далее для описания конструктивных особенностей приводится ссылка на чертеж nm6403_lpt.pdf. Интерфейс выполнен на двух микросхемах 74НС08 U9, U10 и одной микросхеме 74НС32 U11 - квадраты B, C 1,2 на чертеже. U9 формирует управляющие линии (drive), подключенные к двунаправленным контрольным линиям параллельного порта. U10 формирует контрольные линии (sense) подключенные к входным линиям порта. Ограничительные резисторы предотвращают повреждение портов ЭВМ и NM6403. Чтение и запись определенных линий LPT порта позволяет определить, находятся ли управляющие линии коммуникационного порта NM6403 в режиме приема или передачи. Например, если при подаче высокого а затем низкого уровня напряжения на линию Р4.17 напряжение на линии Р4.11 повторяет эти значения значит линия CREQ1 процессора NM6403 находится в режиме приема. Если же напряжение на выводе Р4.11 остается постоянным независимо от вывода Р4.17, значит CREQ1 процессора NM6403 находится в режиме передачи. То же самое применимо ко всем остальным контрольным линиям коммуникационного порта. Простые функции на языке С позволяют регулировать направление передачи данных без повреждения линий порта несмотря на то, что LPT порт гораздо медленнее комм. порта процессора NM6403.

Интерфейс с периферийными устройствами

ПЛИС Altera выполняет декодирование всех периферийных устройств на глобальной шине а также ряд вспомогательных функций. Эта микросхема также позволяет выполнять запись и чтение процессором NM6403 без циклов ожидания. Системная частота 40 МГц делится до необходимой для работы АЦП и ЦАП - 1,25 МГц в данном случае. ЦАП и АЦП расположены по адресу 80000004h. Запись по этому адресу обновляет регистр ЦАП, чтение - загружает данные с АЦП. Контрольный регистр для мультиплексора и светодиода расположен по адресу 80000002h. Светодиод служит для отображения статуса прибора. Мультиплексор подключает один из двух аналоговых входов к АЦП Программирование ПЛИС осуществляется через интерфейс JTAG - разъем P1.

АЦП и ЦАП

14-ти битный ЦАП AD9754AR U18 (квадрат D4 на чертеже) служит для формирования выходного сигнала. Динамический диапазон на выходе конвертера +/-1В. Усилитель AD9631AR U20 имеет коэффициент усиления равный единице и служит буфером. Следующий каскад на U13 - это усилитель с регулируемым коэффициентом усиления / ослабления в пределах +/-40dB. В данной версии прибора регулирование осуществляется переменным резистором R57, однако при небольшой доработке возможна программная регулировка - с использованием дополнительного ЦАП, контролируемого ПЛИС Altera. U25 и U26 дополнительно усиливают сигнал. Таким образом на выводах Tx+ и Tx - может быть сформировано любое напряжение в диапазоне +/-12В. Следует отметить, что существует два способа регулирования выходного напряжения - путем регулировки коэффициента усиления U13 и путем контроля ЦАП U18. 14-ти битный АЦП AD9240AS U17 (квадрат D3 на чертеже) служит для оцифровки входного сигнала. Мультиплексор U12 служит для выбора одного из двух возможных входных каналов. Далее следует усилитель с регулируем коэффициентом усиления / ослабления U24, такой же как и в канале ЦАП. Каскад на усилителе U19 является буфером, конденсаторы С33, С34 отфильтровывают постоянную составляющую сигнала.

Инициализация и работа процессора

После системного сброса процессор NM6403 инициализируется через коммуникационный порт 1. Системный сброс осуществляется нажатием кнопки S1 (квадрат А3 на чертеже) или программно управляющей ЭВМ. Исходный код исполняемой программы написан на языке ассемблера NM6403. После загрузки файла в статическую память управление передается процессору NM6403. Процессор инициализирует систему и переходит в режим ожидания команд от ЭВМ. Получение команды фиксируется по прерыванию завершения ввода канала ICH1. Затем команда выполняется и процессор снова переходит в режим ожидания - до получения следующей команды от ЭВМ.

Алгоритмы цифровой обработки сигналов

Общие положения Манчестерским кодом является такой код, у которого информация о единице или нуле передается не абсолютным значением напряжения, а его перепадом в середине периода бита. Перепад с высокого уровня на низкий представляет единицу, с низкого на высокий - ноль. Каждое слово или блок слов также содержат синхросигнал. Синхросигналы бывают двух типов. При перепаде напряжения с высокого уровня на низкий - это синхросигнал команды. В противном случае - синхросигнал данных. Разработанный алгоритм цифровой обработки работает с Манчестерским кодом трех типов: - частотой 20,83 кГц, где каждое слово состоит из 20 бит, из которых первые 3 бита формируют синхросигнал, затем следуют 16 бит данных и замыкает пакет один бит четности. Сумма всех 16 битов плюс бит четности должна быть нечетным числом (odd parity). Каждое последующее слово имеет свой собственный синхросигнал. Проверка каждого полученного слова осуществляется по двум параметрам - бит четности и перепад напряжения в середине периода бита. - такой же как приведен выше но с частотой 41,66 кГц - частотой 93,75 кГц. В данном случае в начале пакета данных передается синхросигнал, состоящий из восьми единиц, затем 3-х битный синхросигнал как в Манчестере первого типа. После этого данные передаются сплошным потоком словами по 16 бит без бита четности и синхросигнала для каждого отдельного слова. В данном случае каждое слово проверяется только по одному параметру - перепад напряжения в середине периода бита. Назовем вышеприведенные коды соответственно М1, М2 и М5. Плата обработки сигнала кодирует сигнал М1 и декодирует сигналы М2 и М5.

Алгоритм кодирования достаточно прост. ЭВМ посылает команду процессору NM6403 с указанием, сколько 16-ти битных слов необходимо передать, какой тип синхросигнала использовать для каждого слова и конечно же сами данные. Для формирования слова используется функция <word_tx> (здесь и далее ссылки на файл nm_krnl.asm). Динамический диапазон ЦАП от -1В (000h) до +1В (3FFFh). При формировании слова используются средние значения диапазона - отрицательное напряжение представлено величиной -0.5В (1000h), а положительное - величиной +0.5В (3000h). В начале цикла включается таймер T1. Затем через определенные промежутки времени, когда срабатывает прерывание от таймера, значения входного регистра ЦАП обновляются, формирую тем самым необходимые перепады. Например, нам необходимо сформировать единицу в Манчестерском коде М1. Этот процесс будет состоять из нескольких шагов:

- Записываем значение 3000h в регистр ЦАП (+0.5В). - Включаем таймер на время, равное половине периода бита. - Когда возникает прерывание от таймера, записываем значение 1000h в регистр ЦАП (-0.5В). Таким образом мы формируем перепад напряжения с высокого уровня на низкий посередине периода бита. - Снова включаем таймер на время, равное половине периода бита. - Когда возникает прерывание от таймера, передача бита завершена и мы можем снова повторить цикл для следующего бита. Результат данной операции показан на рисунке 2.

Алгоритмы декодирования для Манчестерского кода М2 и М5 в принципе схожи, поэтому рассмотрим алгоритм для М5 - сигнала частотой 93,75 кГц. Вначале определим несколько терминов исходя из рисунка 3.

Рисунок 3. Основные параметры Манчестерского кода

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

Середина периода бита

+0.5В

-0.5В

3000h

1000h

1

0,5

0

-0,5

-1

Зазор

Порог

Первый бит данных

Синхроимпульс

геофизических приборов, последующие примеры будут ссылаться именно на работу с этими приборами. Суть тренировки заключается в том, что процессор NM6403 посылает специальную команду геофизическому прибору и ответ на эту команду заранее известен. Сначала определяется порог. Рассматриваемый алгоритм несколько упрощен и порог был сделан постоянной величиной - 242мВ. Поэтому в алгоритме тренировки нам необходимо определить только зазор. Делается это следующим образом. Декодируются данные, полученные от геофизического прибора (заранее уже известно, что должно быть декодировано) с каким то начальным значением зазора. Если данные соответствуют тому, что ожидается, величина зазора запоминается как пригодная. Затем величина зазора увеличивается и сигнал снова декодируется с этой новой величиной зазора. После определенного числа шагов декодирования, скажем 30-ти, должен образоваться непрерывный ряд значений зазора, при которых данные декодируются правильно. Выбирается среднее значение из этого ряда и фиксируется как наиболее подходящая величина зазора. В рассматриваемом алгоритме зазор определяется функциями: <parse_10> - для Манчестера М2 и <parse_14> - для Манчестера М5

Теперь рассмотрим непосредственно алгоритм декодирования данных. Он состоит из нескольких частей. Вначале необходимо определить импульс синхронизации, означающий начало слова. Эта задача выполняется функцией <sync_detect>. Работает функция следующим образом. Перед вызовом <sync_detect> включается таймер t1, определяющий максимальное время ожидания. То есть функция <sync_detect> завершает свою работу либо после детектирования синхроимпульса, либо по прерыванию от таймера. Для поиска синхроимпульса используется функция арифметической активации векторного узла процессора, при этом регистр f1cr разбивает вход Х следующим образом:

f1cr = 0e0h; // *** ********** ****** ******* ****… rep 1 data = [ar0] with activate data + 0;

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

gr0 = gr1 xor gr2; // gr1 ******** ****** *** ********* (********** ******** f1cr), gr2 - *************** ********* *********, ****** 24 ******* **** ********.

Если полученный результат равен нулю, синхроимпульс был обнаружен. Если нет - цикл поиска повторятся до тех пор, пока импульс не будет обнаружен или же не возникнет прерывание от таймера t1.

После того, как синхроимпульс был найден, включается таймер t1 на время зазора, которое уже предварительно должно было быть определено алгоритмом тренировки. После прерывания от таймера, то есть по истечении времени зазора, процессор начинает записывать в память выборки оцифрованного сигнала через равные промежутки времени. Эта задача выполняется функцией <m5_acquire> для Манчестера М5 и функцией <m2_acquire> для Манчестера М2. За время периода одного бита записывается восемь выборок, как это показано на рисунке 4.

Разбиение бита

Для Манчестера М5 в память записывается весь пакет данных, прежде чем начнется декодирование. Данные от ЦАП упаковываются в 64-х битные слова, причем используются только 8 старших битов. Таким образом после записи всех оцифрованных данных в памяти образуется массив 64-х битных слов, где каждое слово представляет один бит данных Манчестерского кода - 8 бит * 8 выборок. Далее необходимо определить значение бита - ноль или единица а также проверить правильность Манчестерского кода, т.е. был ли перепад напряжения посередине периода бита. Эти задачи выполняются функциями <m5_decode> и <m2_decode> для Манчестера М5 и М2 соответственно. Рассмотрим более подробно функцию <m5_decode>. Для определения значения бита выполняется операция взвешенного суммирования по формуле:

V = (-1)*b1 + (-1)*b2 + (-1)*b3 + (-1)*b4 + (1)*b5 + (1)*b6 + (1)*b7 + (1)*b8 (1)

где числа в скобках представляют собой весовые коэффициенты, а b1…b8 - значения соответствующих выборок бита. Если результат взвешенного суммирования отрицательный, бит равен единице. Если результат положительный или равен нулю - бит равен нулю. Матрица весовых коэффициентов задается следующим образом:

decode_matrix: long[8] = (0ffffffffhl, 0ffffffffhl, 01ffffffffhl, 0ffffffffhl, 01hl, 0100000001hl, 01hl, 01hl);

Особенностью этой матрицы является то, что она содержит весовые коэффициенты сразу для двух операций взвешенного суммирования. Младшая часть длинных слов используется в формуле 1, а старшая - в формуле 2 (далее по тексту). Это возможно потому, что при вычислении значения бита интерес представляет только младшее 32-х битное слово результата, а при проверке перепада напряжения - наоборот только старшее 32-х битное слово. Таким образом матрица весовых коэффициентов загружается только один раз:

rep 8 wfifo = [ar3++], ftw; wtw;

1 2 3 4 5 6 7 8

Регистр границы нейронов разбивает вход Y на 2 части по 32 бита: nb1 = 080000000h; Регистр границы синапсов разбивает вход Х на 8 частей по 8 бит: sb = 02020202h;

За одну инструкцию вычисляются значения сразу 16-ти битов, т.е. одного слова Манчестерского кода:

rep 16 data = [ar0++] with vsum, data, 0;

В полученном результате нас интересуют только младшие 32-х битные слова.

После этого необходимо проверить, был ли перепад напряжения посередине периода бита. Для этого сравниваются знаки выборок 3 и 6. Если знаки противоположны - бит соответствует требованиям Манчестерского кода. Если знаки равны - произошло искажение при передаче и этот бит неправильный. Проверка перепада напряжений выполняется в несколько этапов. Сначала выполним логическую активацию тех же самых данных, что использовались в предыдущей инструкции для вычисления значения бита. При этом регистр f1cr задает разбиение следующим образом:

f1cr = 080808080h;… rep 16 data = [ar0++] with activate data or 0;

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

S = (0)*a1 + (0)*a2 + (1)*a3 + (0)*a4 + (0)*a5 + (1)*a6 + (0)*a7 + (0)*a8; (2)

где значения в скобках представляют собой весовые коэффициенты, а1…а8 - значения соответствующих выборок бита после активации.

rep 16 with vsum, afifo, 0;

Т.е. складываем выборки 3 и 6 и обнуляем все остальные.

В данном случае нас интересуют только старшие 32-х битные слова результата. Если выборки 3 и 6 были противоположных знаков, результат взвешенного суммирования будет 0ffffffffh. В противном случае обе выборки были либо положительными, либо отрицательными. Таким образом функция <m5_decode> выдает декодированные данные или сообщает об ошибке преобразования. Функция <m2_decode> аналогична за исключением того, что все преобразования проводятся для 17-ти битов - включая бит паритетности

rep 17 data = [ar0++] with vsum, data, 0;

И декодированное слово помимо перепада напряжения посередине периода бита также проверяется на нечетность.

Заключение

Процессор NM6403 (Л1879ВМ1) используется в целом ряде применений, требующих большую производительность при умеренном потреблении питания. Отечественные процессоры семейства NeuroMatrix® являются представителями нового класса векторно-конвейерных DSP. Их отличает высокая производительность на задачах обработки больших потоков данных при относительно небольших аппаратных затратах и малом потреблении питания. Просматриваются пути дальнейшего повышения вычислительной мощности процессоров семейства за счет углубления конвейера и реализации на других технологиях, имеющих меньшие топологические нормы проектирования. Благодаря аппаратной поддержке матрично-векторных операций и возможности увеличения производительности при обработке данных меньшей разрядности, процессоры NeuroMatrix® могут найти применение для решения широкого класса задач в таких областях, как видеообработка, распознавание образов, сигнальная обработка, радиолокация, телекоммуникация, навигация и многих других. Благодаря встроенным средствам для построения многопроцессорных систем, они могут использоваться как базовые блоки для создания параллельных вычислительных систем.

Литература

1. Шахнович И. Отечественный процессор цифровой обработки сигналов NM6403 - чудо свершилось. - ЭЛЕКТРОНИКА: НТБ, 1999, №2, с. 30-34.

2. Texas Instruments Europe. Implementation of an Image Processing Library for the TMS320C8X (MVP). - BPRA059, July, 1997.

3. Борисов Ю. Комплекс «Трафик-Монитор» на базе процессора Л1879ВМ1. Особенности разработки. - ЭЛЕКТРОНИКА: НТБ, 2003, №6.

4. Мушкаев С. Оценка производительности корреляционных мер сходства в задачах полного поиска движения на процессоре NM6403. - Сборник докладов научно-технической конференции «Молодежь в науке», 2005.

5. Мушкаев С. К вычислению квадратов и абсолютных значений на процессоре NM6403 (Л1879ВМ1). - Цифровая обработка сигналов, 2005, №1.

6. Мушкаев С. Реализация ранжирующих и медианных фильтров на процессоре NM6403 (Л1879ВМ1). - Цифровая обработка сигналов, 2005, №1.

7. Миронов С., Дударев В., Богатов А. Цифровая обработка радиолокационных сигналов. - ЭЛЕКТРОНИКА: НТБ, 2003, №3.

8. Мушкаев C., Ландышев С. Применение процессора Л1879ВМ1 для сжатия изображений. - Цифровая обработка сигналов, 2002, №1.

9. Кашкаров В., Мушкаев С. Организация параллельных вычислений в алгоритмах БПФ на процессоре NM6403. - Цифровая обработка сигналов, 2001, №1.

Размещено на Allbest.ru


Подобные документы

  • Ознакомление со структурой микроконтроллера семейства MCS-51. Характеристика программно доступных ресурсов и организации памяти. Анализ прямого, непосредственного, регистрового способов адресации операндов. Описание программной модели битового процессора.

    курсовая работа [405,5 K], добавлен 22.08.2010

  • Характеристика и область применения сигналов в системах цифровой обработки. Специализированный процессор цифровой обработки сигналов СПФ СМ: разработчики и история, структура и характеристики, область применения, алгоритмы и программное обеспечение.

    курсовая работа [224,9 K], добавлен 06.12.2010

  • Описание сигнальных процессоров серии "Мультикор" - однокристальных программируемых многопроцессорных "систем на кристалле" на базе IP-ядерной платформы, разработанной в ГУП НПЦ "Элвис". Архитектура микросхем по организации потоков данных и инструкций.

    отчет по практике [13,9 K], добавлен 21.07.2012

  • Проектирование устройства, принимающего и передающего данные по радиоканалу, при этом выполняющего кодирование и декодирование информации, используя цифровой сигнальный процессор. Выбор цифрового сигнального процессора, кодека и драйвера интерфейса.

    дипломная работа [949,9 K], добавлен 20.10.2010

  • Функции цифровых сигнальных процессоров в радиопередатчиках. Типы структурных схем радиочастотных трактов: прямая и прямая квадратурная модуляция, непрямая модуляция, петля трансляции. Описание и структура цифрового сигнального процессора передатчика.

    реферат [234,4 K], добавлен 15.01.2011

  • Цифровая последовательность из непрерывного сигнала с помощью алгоритмов работы систем IKM-30. Расчет количества абонентских модулей и плат на центральном узле и выносах. Структура узла связи на базе цифрового коммутационного оборудования SI-2000.

    контрольная работа [369,7 K], добавлен 28.03.2009

  • Особенности микроконтроллера ATTINY семейства AVR. Описание ресурсов микроконтроллера ATTINY12: описание процессора, порты ввода/вывода, периферийные устройства, архитектура ядра. Разработка устройства со световыми эффектами на базе микроконтроллера.

    курсовая работа [2,1 M], добавлен 24.06.2013

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

    курсовая работа [43,2 K], добавлен 03.10.2010

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

    презентация [2,8 M], добавлен 15.02.2013

  • Характеристики сигнальных процессоров разных поколений и области их применения. Типовые операции, выполняемые цифровыми сигнальными процессорами. Назначение алгебраического логического устройства. Адресация регистров, включённых в адресное пространство.

    курсовая работа [3,1 M], добавлен 30.09.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.