Знаймо![]() приховати рекламу
| Цей текст може містити помилки.
Примітки ВведенняЦифровой сигнальный процессор (англ. Digital signal processor , DSP; сигнальный микропроцессор, СМП; процессор цифровых сигналов, ПЦС) - специализированный микропроцессор, предназначенный для цифровой обработки сигналов (обычно в реальном масштабе времени). ![]() ЦСП обработки видео из картриджа приставки Nintendo ![]() Установленный на поверхность печатной платы современный ЦСП с BGA выводами 1. Особенности архитектурыАрхитектура сигнальных процессоров, по сравнению с микропроцессорами настольных компьютеров, имеет некоторые особенности:
2. Области применения
3. Історія3.1. Предшествующие разработкиДо 1980 року кілька компаній випустили пристрої, які можна вважати попередниками ЦСП. Так, в 1978 Intel випускає "процесор аналогових сигналів" 2120. До його складу входили АЦП, ЦАП і процесор обробки цифрових даних, однак апаратна функція множення була відсутня. У 1979 AMI випускає S2811 - периферійний пристрій, що керується основним процесором комп'ютера. Обидва вироби не досягли успіху на ринку. 3.2. Перше покоління (початок 1980-х)Основну історію ЦСП прийнято відраховувати від 1979-1980 років, коли Bell Labs представила перший однокристальний ЦСП Mac 4, а також на "IEEE International Solid-State Circuits Conference '80" були показані μMPD7720 компанії NEC і DSP1 компанії AT & T, які, однак, не отримали широкого розповсюдження. Стандартом де-факто став випущений трохи пізніше кристал TMS32010 фірми Texas Instruments, за багатьма параметрами і вдалим технічним рішенням перевершує вироби конкурентів. Ось деякі його характеристики:
3.3. Друге покоління (середина 1980-х)Завдяки прогресу в напівпровідникових технологіях, в цей період були випущені вироби, що мають розширені функції порівняно з першим поколінням. До характерних відмінностей можна віднести:
Багато пізніше також були випущені пристрої, формально відносяться до другого покоління, але мають наступні удосконалення:
3.4. Третє покоління (кінець 1980-х)Третє покоління ЦСП прийнято пов'язувати з початком випуску виробів, що реалізують арифметику з плаваючою комою. Характерні особливості перших випущених зразків:
3.5. Четверте поколінняЧетверте покоління ЦСП характеризується значним розширенням наборів команд, створенням VLIW і суперскалярних процесорів. Помітно зросли тактові частоти. Так, наприклад, час виконання команди MAC ( Y: = X + A B ) Вдалося скоротити до 3 нс. 3.6. Сучасні ЦСПКращі сучасні ЦСП можна характеризувати наступними параметрами:
4. Основні параметри ЦСП
Часто используются также интегральные характеристики ЦСП, например показатель "мощность/ток/быстродействие", например ma/MIPS (миллиампер на 1 млн инструкций в секунду), что позволяет оценить реальную потребляемую мощность в зависимости от сложности задачи, решаемой процессором в указанный момент. Выбор ЦСП целиком определяется назначением разрабатываемой системы. Например, для массовых мобильных устройств важна дешевизна процессора, низкое энергопотребление, в то время как стоимость разработки системы отходит на второй план. С другой стороны, для измерительного оборудования, систем обработки звуковой и видеоинформации важны эффективность процессора, наличие развитых инструментальных средств, многопроцессорность и т. д. 4.1. Оценка и сравнение производительностиКак отмечено ранее, отдельные характеристики типа тактовой частоты, MIPS, MOPS, MFLOPS позволяют оценить быстродействие ЦСП достаточно неоднозначно. Поэтому для решения задачи измерения и сравнения характеристик разных ЦСП используют специальные наборы тестов, имитирующих некоторые распространенные задачи цифровой обработки сигналов. Каждый тест состоит из нескольких небольших программ, которые пишутся на ассемблере и оптимизируются под заданную архитектуру. Эти тесты могут включать реализацию: Наиболее авторитетным пакетом тестов на сегодняшний день является тест BTDImark2000 (BDTI DSP Kernel Benchmarks (BDTImark2000) Certified Results), который кроме указанных алгоритмов включает также оценку используемой алгоритмом памяти, время разработки системы и другие параметры. 5. Устройство5.1. Гарвардская архитектураЦифровые сигнальные процессоры строятся на основе т. н. "Гарвардской архитектуры", отличительной особенностью которой является то, что программы и данные хранятся в различных устройствах памяти - памяти программ и памяти данных. В отличие от архитектуры фон Неймана, где процессору для выборки команды и двух операндов требуется минимум три цикла шины, ЦСП может производить одновременные обращения как к памяти команд, так и к памяти данных, и указанная выше команда может быть получена за два цикла шины. В реальности, благодаря продуманности системы команд и другим мерам, это время может быть сокращено до одного цикла. В реальных устройствах память команд может хранить не только программы, но и данные. В этом случае говорят, что ЦСП построен по модифицированной гарвардской архитектуре. Память команд и память данных обычно располагаются на кристалле ЦСП. В связи с тем, что эта память имеет относительно небольшой объём, возникает необходимость в использовании внешних (относительно кристалла процессора) запоминающих устройств. Для таких устройств раздельные шины команд и данных не используются, так это потребовало бы значительно увеличить количество внешних выводов кристалла, что дорого и непрактично. Поэтому взаимодействие ЦСП с внешними запоминающими устройствами происходит по одному комплекту шин без разделения на команды и данные. Следует также заметить, что обращение к внешней памяти всегда занимает значительно больше времени, чем к внутренней, поэтому в приложениях, критичных ко времени исполнения, такие обращения необходимо минимизировать. 5.2. Структурная схема5.3. Конвейерное исполнение команд5.4. Аппаратная реализация основных функций5.4.1. УмножителиАппаратный умножитель применяется для сокращения времени выполнения одной из основных операций ЦОС - операции умножения. В процессорах общего назначения эта операция реализуется за несколько тактов сдвига и сложения и занимает много времени, а в DSP благодаря специализированному умножителю - за один командный цикл. Функционально, умножители делятся на два вида:
5.4.2. СдвигателиСдвигателем называется как устройство, выполняющее операцию сдвига данных, так и регистр, в котором хранится результат сдвига. [1] С точки зрения выполняемых функций, сдвигатели делятся на:
В обоих случаях структура регистра, хранящего результат сдвига, совпадает со структурой аккумулятора.
5.4.3. Устройства генерации адреса5.4.4. Аппаратная организация циклов5.5. АЛУ5.6. Регистры
Аккумулятор - регистр, предназначенный для сохранения результатов операций. В архитектуре многих ЦСП предусмотрено два аккумулятора, что позволяет повысить скорость выполнения операций, требующих хранения промежуточных результатов. Технически, аккумулятор может состоять из нескольких регистров [1] :
Наличие регистра EXT позволяет повысить точность вычисления промежуточных результатов, а также увеличить диапазон хранения значений, не приводящих к переполнению. При сохранении значения аккумулятора в ячейку памяти или в обычный регистр, его значение округляется с учетом стандартной ширины этой ячейки или регистра. С другой стороны, при необходимости, содержимое регистра EXT может быть сохранено отдельно. 5.7. Способы адресации5.8. Организация памяти5.9. Представление данных5.10. Операции над данными5.11. Прерывания5.12. Ввод-вывод6. Классификация ЦСП по архитектуре [1]Следует отметить, что приведенная ниже классификация достаточно условна, так как разнообразие технических решений зачастую не позволяет однозначно отнести каждое конкретное устройство к одному из указанных типов. Поэтому нижесказанное следует скорее использовать как материал для понимания особенностей архитектуры ЦСП, чем для реальной классификации каких-либо изделий. Особенности архитектуры ЦСП удобно рассматривать на примере конкретного алгоритма цифровой обработки данных, например, КИХ-фильтра, выходной сигнал которого можно записать как:
Как можно легко заметить, вычисление результата является классическим примером использования операции "умножение с накоплением" - MAC (Y := X + A B) . 6.1. Стандартные ЦСПНа рисунке показано два варианта выполнения команды MAC на стандартном ЦСП. В первом варианте оба операнда хранятся в памяти данных, поэтому на их выборку требуется два такта, то есть время выполнения n сложений равно 2n. Во втором случае один из операндов хранится в памяти программ, поэтому команда исполняется за один такт, и общее время выполнения цикла будет равно n тактов (следует уточнить, что в реальности для исполнения за один такт MAC должна исполняться внутри специальной команды цикла для исключения повторной выборки самого кода команды, что требует дополнительного такта). Здесь видно, что эффективная реализация алгоритма требует использования памяти программ для хранения данных. Одним из вариантов, позволяющим отказаться от использования памяти программ для хранения данных, является применение т. н. "двухпортовой памяти", то есть памяти, имеющей два комплекта входных шин - двух шин адреса и данных. Такая архитектура позволяет произвести одновременное обращение по двум адресам (правда, при этом они должны находиться в разных адресуемых блоках). Данное решение применяется в ЦСП компаний Motorola (DSP56000) и Lucent (DSP1600). При указанной архитектуре повысить производительность можно только увеличением тактовой частоты. 6.2. Улучшенные стандартные ЦСП"Покращені стандартні ЦСП" для підвищення продуктивності системи, у порівнянні зі стандартними ЦСП, використовують такі методи підвищення паралелізму:
Багато з цих способів застосовувалися вже починаючи з самих перших процесорів, тому часто їх неможливо однозначно класифікувати як "стандартні" або "покращені". На малюнку показаний приклад реалізації обчислення двох паралельних команд MAC. Для цього в ЦСП присутні два модулі MAC і два акумулятори. Блоки MAC отримують дані по трьох шинам одночасно, причому одне із значень є для них спільним. Таким чином, відбувається одночасне виконання двох команд:
Особливість показаного рішення полягає в тому, що до виконання двох паралельних команд з одним загальним співмножником можна звести багато алгоритми ЦОС, наприклад:
У деяких процесорах (Lucent DSP16xxx, ADI ADSP-2116x) використовуються два однакових ядра, кожен зі своєю пам'яттю, то є одна команда виповнюється одночасно в двох ядрах з різними даними. Це дозволяє обійти обмеження на використання повністю незалежних даних. Характерним недоліком таких процесорів можна вважати необхідність у високій кваліфікації розробника, так як ефективне використання зазначених особливостей вимагає програмування на мові асемблера, доброго знання архітектури та системи команд, тобто ці пристрої вважаються "недружніми" до мов високого рівня. 7. ЦСП з архітектурою VLIWОсновна відмінність VLIW -процесорів полягає в тому, що коди команд ще на етапі компіляції збираються у великі "суперкоманди" і виконуються паралельно. Зазвичай такі процесори використовують RISC-архітектуру з фіксованою довжиною команди, де кожна з них виконується в окремому операційному модулі. До характерних особливостей таких процесорів можна віднести:
Зазвичай, якщо процесор має кілька однакових модулів, то при створенні програми на асемблері є можливість вказівки тільки типу необхідного операційного модуля, а конкретний пристрій буде призначено компілятором. З одного боку, це спрощує програмування таких пристроїв, а з іншого боку, дозволяє досить ефективно використовувати їхні ресурси. 8. Суперскалярні ЦСПСуперскалярні процесори також характеризуються великим набором паралельних операційних модулів і можливістю одночасного виконання кількох команд. Однак, у порівнянні з VLIW, вони мають дві характерні особливості:
За допомогою описаного підходу можна обійти такі недоліки VLIW:
Платою за вирішення цих проблем стає значне ускладнення схеми процесора, в якому з'являється модуль планування виконання команд. Суперскалярні процесори планують виконання команд не тільки на основі інформації про завантаженість операційних блоків, а й на основі аналізу залежностей між даними. Наприклад, команда збереження результату арифметичної операції не може бути виконана раніше самої операції обчислення, навіть якщо модуль звернення до пам'яті в даний момент вільний. Ця особливість призводить зокрема до того, що один і той же набір команд може по-різному виконуватися в різних місцях програми, що робить неможливим точну оцінку продуктивності. Особливо це важливо для систем, що працюють в реальному часі, адже оцінка за найгіршим результату призведе до того, що ресурси процесора будуть використані не повністю. Таким чином, в цих системах завдання точної оцінки продуктивності суперскалярних ЦСП залишається відкритою. 9. Гібридні ЦСППід гібридними ЦСП зазвичай розуміють спеціалізовані пристрої, що поєднують в собі функцію мікроконтролера і цифрового сигнального процесора. Зазвичай такі вироби призначені для виконання однієї функції - наприклад, управління електричними двигунами, або іншими об'єктами в реальному часі. Інший широкої областю їх застосування останнім часом стає мобільна телефонія, де раніше використовувалися два процесори - один звичайний для управління функціями апарату (дисплеєм, клавіатурою), а інший для обробки голосових сигналів (кодування і т. д.). 10. Класифікація ЦСП за призначеннямВ цілому, за призначенням ЦСП можна розділити на дві групи:
"Проблемна орієнтація" зазвичай відноситься не до додаткових командам, а до набору вбудованих спеціалізованих периферійних пристроїв. Наприклад, ЦСП, призначені для управління електродвигунами, можуть містити на кристалі генератори сигналів Шим, контролери локальної промислової мережі і т. д. Процесори, що використовуються для обробки голосових сигналів, часто містять модулі маніпуляції розрядами (BMU) і співпроцесори виправлення помилок. У цифрових фото-і відеокамерах застосовуються ЦСП з модулями кодування / декодування MPEG1, MPEG4, JPG, MP3, AAC і ін 11. Програмування ЦСПДля програмування ЦСП зазвичай використовують один з двох мов - асемблер і C. Основні особливості асемблерів ЦСП збігаються з аналогічними мовами звичайних мікропроцесорів і, в цілому, можуть бути описані як:
З іншого боку, при використанні мов середнього та високого рівня, зокрема, C, можна помітно спростити і прискорити створення програм, але при цьому ресурси системи будуть використовуватися менш ефективно, порівняно з програмою, цілком написаної на асемблері. В реальності зазвичай використовуються підхід, який поєднує переваги як мов високого рівня, так і ефективності програм на асемблері. Виражається це в тому, що стандартні бібліотеки зазвичай створюються на асемблері, як і критичні до часу виконання і обсягом пам'яті частини коду. У той же час допоміжні модулі можуть створюватися на мові високого рівня, прискорюючи і спрощуючи розробку програмної системи в цілому. 11.1. Особливості асемблерів ЦСПДо цікавих особливостей асемблерів ЦСП можна віднести наступне:
11.2. Працює всередині сімейств ЦСПЗазвичай ЦСП випускаються родинами, і вироби всередині родин мають аналогічні мови асемблера, або навіть сумісні на рівні машинних кодів. Також всередині сімейства зазвичай використовуються однакові набори бібліотек підпрограм. Як і в звичайних мікропроцесорах, часто старші моделі ЦСП можуть виконувати машинний код молодших моделей, або їх асемблер включає всі команди молодших моделей як підмножина власного набору команд. 11.3. Налагодження програмЗазвичай, налагодження програм, написаних для ЦСП, проводиться за допомогою спеціальних засобів, що включають програмні імітатори і емулятори. До їх складу також часто входять засоби профілювання (вимірювання швидкості виконання блоків коду). Література
Примітки
Цей текст може містити помилки. Схожі роботи | скачати Схожі роботи: Сигнальний протокол Процесор Багатоядерний процесор Скалярний процесор Графічний процесор Векторний процесор Текстовий процесор Фізичний процесор Цифровий фільтр |