Сравнение dsp. DSP – персональный компьютер: не может быть? Зачем нужны DSP-процессоры

Сравнение dsp. DSP – персональный компьютер: не может быть? Зачем нужны DSP-процессоры

Микропроцессоры — это универсальные цифровые микросхемы, в которых вычислительный блок под управлением программы может выполнять различные действия. В результате все микропроцессоры позволяют обменять свое предельное быстродействие на сложность реализуемого алгоритма. Место микропроцессоров в классификации цифровых устройств приведено на рисунке 1.


Рисунок 1. Классификация микропроцессоров

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

  1. суммирование нескольких сигналов;
  2. перенос спектра сигналов;
  3. фильтрация сигналов;
  4. вычисление спектра сигнала (быстрое преобразование Фурье);
  5. помехоустойчивое кодирование (подавление шума для аналоговых систем связи);
  6. формирование кадров (только для цифровых систем связи)
  7. скремблирование сигнала (формирование одинаковой вероятности передачи нулей и единиц)

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

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

Теперь проанализируем процесс фильтрации сигналов. При реализации частотных фильтров во временной области приходится осуществлять операцию свёртки. Типовая схема цифрового фильтра приведена на рисунке 2.



Рисунок 2. Типовая схема цифрового фильтра

Из рисунка явно прослеживается последовательность одинаковых участков алгоритма. Многократно приходится умножать цифровой отсчет сигнала на коэфициент фильтра и суммировать результат с предыдущей суммой. При этом следует отметить такую особенность сумматора, как большая разрядность. Для 16-разрядного сигнального процессора разрядность чисел на выходе умножителя будет равна тридцатидвум разрядам. При суммировании нескольких чисел тоже увеличивается разрядность результата. При суммировании 256 одинаковых чисел значение результата увеличится в 256 раз, что соответствует увеличению разрядности числа на восемь разрядов (2 8 =256). Поэтому разрядность сумматора в 16-разрядном сигнальном процессоре будет равна сорока разрядам (32+8=40).

В результате мы сформировали еще одно требование к сигнальному процессору. Сигнальный процессор должен содержать в своем составе не просто аппаратный умножитель, а умножитель-накопитель данных (MAC). Причем операция умножения-накопления должна выполняться за один машинный цикл микропроцессора. Хотелось бы отметить тот факт, что операция умножения-накопления является составной частью не только алгоритма фильтрации, но и (половина базового алгоритма "бабочка")

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

Еще одной важной особенностью микропроцессоров является способ организации циклического выполнения программы (операция умножения-накопления MAC при реализации цифрового фильтра или операция "бабочка" при реализации быстрого преобразования Фурье должны повторяться заданное количество раз). В вычислительном микропроцессоре для организации цикла используется особая переменная — параметр цикла. В конце цикла эта переменная сравнивается с заданным значением (обычно с нулем) и осуществляется переход на начало цикла. В результате алгоритм фильтрации будет выглядеть следующим образом:

  1. Сформировать адрес очередной ячейки линии задержки фильтра
  2. Считать очередной отсчет входного сигнала из линии задержки фильтра
  3. Сформировать адрес очередного коэффициента фильтра
  4. Считать очередной коэффициент фильтра
  5. Умножить отсчет входного сигнала из линии задержки на коэффициент фильтра (чаще всего за несколько машинных циклов)
  6. Просуммировать результат с уже накопленной суммой (сформировать очередной отсчет сигнала на выходе фильтра)
  7. Изменить значение переменной-параметра цикла
  8. Сравнить полученное значение с заданной величиной
  9. Перейти на начало цикла или выйти из него (обычно это длительная процедура, занимающая несколько машинных циклов)

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

  1. Наличие аккумулятора-накопителя MAC с 40-разрядным сумматором и аккумулятором
  2. Наличие аппаратного сдвигателя чисел
  3. Наличие аппаратной организации цикла
  4. Наличие двух формирователей адреса
  5. Трехшинная структура операционного блока микропроцессора

Литература:

Вместе со статьей "Особенности сигнальных процессоров" читают:

В начало

Цифровые процессоры обработки сигналов (Лекция)

ПЛАН ЛЕКЦИИ

1. Общая структура цифровой обработки сигналов

2. Структура процессоров цифровой обработки сигналов

3. Основные показатели процессоров цифровой обработки сигналов

4. Основные производители сигнальных процессоров

5. Аппаратная реализация

1. Общая структура цифровой обработки сигналов

Цифровые процессоры обработки сигналов (ЦПОС) или их равнозначное название – цифровые сигнальные процессоры (ЦСП или просто сигнальные процессоры), англоязычное сокращение – DSP (Digital Signal Processor ), предназначены для реализации алгоритмов цифровой обработки сигналов (ЦОС) и систем управления в реальном времени.

Схема цифровой обработки аналоговых сигналов.

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

Декодер по принятому сигналу формирует аналоговый сигнал, то есть производит преобразования, обратные происходившим в кодере.

На вход системы поступает ограниченный по длительности сигнал x (t ). В силу конечной длительности сигнала его спектр бесконечен.

Аналого-цифровое преобразование осуществляется в два этапа: дискретизации по времени и квантования по уровню.

Дискретизация – это процедура взятия мгновенных значений сигнала x (t ) через равные промежутки времени Т. Мгновенные значения x (n Т) называются выборками, время Т – период дискретизации, а n - указывает порядковый номер отсчета. Чем чаще брать отсчеты, тем меньше период дискретизации Т, тем точнее последовательность отсчетов x (n Т) будет изображать исходный сигнал x (t ).

Период дискретизации Т определяет частоту дискретизации:

f д =;Т =

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

Однако существует ограничениена минимальное значение f д : для полного восстановления сигнала по его отсчетам x (n Т) нужно, чтобы частота дискретизации f д была, как минимум, в два раза больше наивысшей частоты F в в спектре передаваемого сигнала x (t ).

f д 2F в; Т ≤

Отсюда следует, что при бесконечном спектре, когда F → ∞, дискретизация невозможна.

Тем не менее, в спектре любого конечного сигнала есть такие высшие составляющие, которые, начиная с некоторой верхней частоты f в, имеют незначительные амплитуды, и потому ими можно пренебречь без заметного искажения самого сигнала. Значение f в определяется конкретным типом сигнала и решаемой задачей. Например: для стандартного телефонного сигнала f в = 3,4 кГц, минимальная стандартная частота его дискретизации f д = 8 кГц. Ограничение спектра до частоты F = f в осуществляется фильтром нижних частот ФНЧ.

Квантование отсчетов по уровням (квантование) – производится с целью формирования последовательности чисел: весь диапазон изменения величины отсчетов разбивается на некоторое количество дискретных уровней, и каждому отсчету по определенному правилу присваивается значение одного из двух ближайших уровней квантования, между которыми оказывается данный отсчет. В результате получается последовательность чисел x (n Т) = x (n ), представляемых в двоичном коде. Количество уровней определяется разрядностью АЦП. Например: Если разрядность АЦП = 3, то всего можно иметь к = 2 3 = 8 уровней квантования, а минимальное значение отсчета равно 0 (000), а максимальное значение отсчета равно 7 (111). Ясно, что квантованный отсчет отличается от выборки x (n Т). Это отличие выражается ошибкой квантования:

,

которая тем больше, чем меньше разрядность АЦП.

После АЦП последовательность x (n Т) = x (n ) поступает на сигнальный процессор (СП), который по заданному алгоритму каждому отсчету x (n ) ставит в однозначное соответствие выходной отсчет y (n Т) = y (n ).

Количество операций (умножений, сложений и т.д.) для получения одного отсчета может исчисляться тысячами, поэтому сигнальный процессор должен работать на более высокой частоте F г, чтобы успеть произвести все необходимые действия до поступления очередного отсчета x (n ), то есть какой бы сложности не был алгоритм, время переработки t пер не должно превышать периода дискретизации T :

t пер ≤ T

Но это может быть обеспечено лишь в случае, когда тактовая частота f T вычислителя существенно превышает частоту дискретизации f д :

f д << f T

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

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

Основные задачи (алгоритмы) сигнальных процессоров:

1.)Цифровая фильтрация

Цифровая фильтрация – это селекция по частоте, то есть какие то частоты пропускать, а какие то нет. За цифровой фильтрацией стоит Z- преобразование, свертка.

2.) Спектроскопи

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

3.) Идентификация сигналов

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

Корреляция – это степень совпадения двух функций.

4.) Модуляция и демодуляция.

За модуляцией и демодуляцией стоит аппаратное, математическое преобразование Гильберта.

Пример: демодуляция однополосного сигнала, который получается выделением одной из боковых полос амплитудно-модулированного сигнала. Результатом демодуляции является низкочастотный сигнал, представляющий собой огибающую узкополосного сигнала. Демодулированный сигнал x (n ) можно представить в комплексном виде:

;;, где

Мнимый сигнал;

x (n ) – вещественный сигнал;

s (n ) – огибающая сигнала x (n ).

Из формул видно, что x (n ) инаходятся в квадратуре относительно друг друга, то есть их фазы отличаются на π /2. Следовательно, необходимо иметь фазовращатель на π /2. Такие сигналы называются сопряженными по Гильберту, а устройство, формирующее пару сопряженных сигналов, называется цифровым преобразователем Гильберта (ЦПГ), который позволяет организовать вычисление огибающей s (n ) сигнала x (n ).

5) Сжатие, растяжение, перенос спектра

За сжатием, растяжением, переносом спектра стоит то же самое преобразование Гильберта. Считаются одним из модификаций модуляции и демодуляции.

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

, где n = 0, 1, 2, … , N -1

x ( n ) – отсчеты воздействия;

y ( n ) – отсчеты реакции;

b к - вещественные коэффициенты, полностью определяющие свойства цифровых фильтров;

x ( n -к) - отсчеты воздействия, задержанные на к периодов дискретизации T .

Фильтр, описываемый данным выражением, называется нерекурсивным , или КИХ-фильтром (фильтром с конечной импульсной характеристикой).

Пример : Нужно сделать дискретизацию за определенное время, а не вообще. Пусть частота дискретизации f д = 48 кГц (округлим до 50 кГц). Нужно сделать дискретизацию за 20 мкс. Возьмем N = 5 и распишем формулу:

y 0 = b 0 x ( 0 - 0) + b 1 x (0 - 1) + b 2 x (0 - 2) + b 3 x (0 - 3) + b 4 x (0 - 4) = b 0 x 0 + b 1 x - 1 + b 2 x - 2 + b 3 x - 3 + b 4 x – 4

y 1 = b 0 x ( 1 - 0) + b 1 x (1 - 1) + b 2 x (1 - 2) + b 3 x (1 - 3) + b 4 x (1 - 4) = b 0 x 1 + b 1 x 0 + b 2 x - 1 + b 3 x - 2 + b 4 x – 3

y 2 = b 0 x ( 2 - 0) + b 1 x (2 - 1) + b 2 x (2 - 2) + b 3 x (2 - 3) + b 4 x (2 - 4) = b 0 x 2 + b 1 x 1 + b 2 x 0 + b 3 x - 1 + b 4 x – 2

y 3 = b 0 x ( 3 - 0) + b 1 x (3 - 1) + b 2 x (3 - 2) + b 3 x (3 - 3) + b 4 x (3 - 4) = b 0 x 3 + b 1 x 2 + b 2 x 1 + b 3 x 0 + b 4 x – 1

y 4 = b 0 x ( 4 - 0) + b 1 x (4 - 1) + b 2 x (4 - 2) + b 3 x (4 - 3) + b 4 x (4 - 4) = b 0 x 4 + b 1 x 3 + b 2 x 2 + b 3 x 1 + b 4 x 0

y 5 = записывается как y 0.

Примечание: x 0 – это отсчет показания АЦП в данный момент времени. Если отсчет показания АЦП с отрицательным знаком, то это означает, что отсчет – предшествующий. Для вычисления y 0 нужно использовать текущее показание АЦП и четыре предшествующих ему показаний, а для вычисления y 1 нужно использовать x 1 и четыре предшествующих ему показаний и т.д.

2. Структура процессоров цифровой обработки сигналов

Базовой операцией цифровой обработки сигналов является операция умножения и добавление (накопление) результата умножения. Устройство комбинированного сложения и умножения часто обозначают при описаниях мнемоникой МАС (Multiplier-Adder Combination ).Для того чтобы работать с высокой производительностью, процессор должен выполнять операцию МАС за один цикл (такт) работы процессора. Это должно выполняться аппаратно, а не программно. Отсчеты сигнала, коэффициенты фильтра и команды программы хранятся в памяти. Для выполнения операции требуется произвести три выборки из памяти – команды и двух сомножителей. Следовательно, для работы с высокой производительностью эти три выборки необходимо произвести за один такт работы процессора. При этом подразумевается, что результат операции остается в устройстве выполнения операции (в центральном процессорном устройстве), а не помещается в память. В более общем случае, нужна еще операция записи результата в память, т.е. необходимы четыре обращения к памяти за цикл. Таким образом, производительность процессора, прежде всего, определяется возможностями обмена данными между центральным процессорным устройством и памятью процессора и организацией их взаимодействия.

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


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

В цифровых процессорах обработки сигналов используют специализированные устройства генерации адреса (УГА), которые формируют адреса данных, извлекаемых из памяти данных. УГА функционируют параллельно с другими модулями и позволяют одновременно с выполнением операций в АЛУ вычислять адреса операндов для следующей команды.

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

В процессорах Motorola используется команда цикла DO ,которая работает с регистрами начала и конца цикла (LC и LA ).

Гарвардская архитектура автоматически открывает многоступенчатый конвейер (от 3 до 11 ступеней конвейера). В базовом варианте: три ступени конвейера.

Базовый вариант: Motorola DSP 56 000 = 560 = 56К, где К = 000


Номер Процессор

сериив этой серии


3. Основные показатели процессоров цифровой обработки сигналов

1.) Способ представления данных.

По этому показателю все процессоры цифровой обработки сигналов делятся на :

1.1. Процессоры с фиксированной запятой (ФЗ) или процессоры с фиксированной точкой (ФТ ).

1.2. Процессоры с плавающей запятой (ПЗ) или процессоры с плавающей точкой (ПТ).

Наиболее распространены процессоры с фиксированной запятой или процессоры с фиксированной точкой - они стоятво всех телефонах.

В процессорах с плавающей запятой данные представляются в виде мантиссы или порядка. Процессоры с плавающей запятой значительно более сложные и наиболее дорогие (в несколько сотен долларов).

2.) Разрядность представления данных.

Для процессоров с фиксированной точкой разрядность равна 16 (у большинства сигнальных процессоров) или равна 24 (у фирмы Motorola).

Для процессоров с плавающей точкой разрядность равна 32 (из них порядок представляется8 разрядами, мантисса 23 разрядами, а знак 1 разрядом).

У процессоров с плавающей точкой большой диапазон представления чисел (мантиссу откидываем) с учетом знака: от 2 −128 до 2 127 .

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

Динамический диапазон (ДД):

ДД = |max значение | / |min значение ≠ 0 |

Динамический диапазон в децибелах равен:

20 lg (ДД ) = 20 lg (| max значение | / | min значение ≠ 0 |)

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

3) Производительность

Одна из самых частых ошибок разработчика - отождествление тактовой частоты и быстродействия, что в большинстве случаев неправильно. Очень часто скорость работы DSP указывают в MIPS (миллионах инструкций в секунду). Это наиболее просто измеряемый параметр. Производительность нормальных процессоров – это несколько десятков MIPS.

Однако проблема сравнения скорости различных DSP состоит в том, что процессоры

имеют различные системы команд, и для выполнения одного и того же алгоритма разными процессорами требуется разное число этих команд. Кроме того, иногда для выполнения различных команд одним процессором требуется различное количество тактов синхронизации. В результате процессор со скоростью 1000 MIPS вполне может оказаться в разы медленнее процессора со скоростью 300 MIPS, особенно при различной их разрядности.

Одно из решений этой проблемы - сравнивать процессоры по скорости выполнения

определенных операций, например, операции умножения с накоплением (MAC). Скорость

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

фильтрацию, корреляцию и преобразования Фурье. К сожалению, такая оценка также не

дает полной информации о реальном быстродействии процессора.

Наиболее точной является оценка скорости исполнения определенных алгоритмов -

например, КИХ и БИХ - фильтрации, однако это требует разработки соответствующих программ и тщательного анализа результатов тестирования.

Существуют компании, занимающиеся анализом и сравнением процессоров по основным характеристикам, в том числе и по скорости. Лидером среди таких компаний является BDTI(Berkeley Design Technology, Inc ).

4. Основные производители сигнальных процессоров

1.) Фирма Texas Instruments (TI ) занимает около 48 % рынка ПЦОС. Именно она выпустила в 1982 г . первый ПЦОС, который имел коммерческий успех. ПЦОС TMS32010 использовался в игре Speak and Spell ("Скажи и произнеси по буквам"), а также в говорящей кукле по имени Джули . Все процессоры цифровой обработки сигналов фирмы Texas Instruments идут под маркой: TMS3200xxx.

2.) Фирма Analog Devices (AD). Все процессоры цифровой обработки сигналов фирмы Analog Devices идут под маркой: ADSP21 xxx .

3.)Фирма Motorola. Серии: DSP560xx

DSP 561xx Процессоры с фиксированной точкой.

DSP 563xx

DSP 566xx

DSP 568xx

Фирма Intel раньше тоже входила в первую тройку производителей сигнальных процессоров, но сейчас её оттеснили.

В нашей стране также производятся сигнальные процессоры, правда они несколько уступают зарубежным аналогам, но они есть. Например: в настоящее время научно-исследовательский институт электронной техники («НИИЭТ») серийно выпускает 16-разрядные процессоры ЦОС с фиксированной запятой М1867ВМ x с производительностью 5 MIPS.

5. Аппаратная реализация


Процессор цифровой обработки сигналов разбивается на две части: операционный блок и блок управления.

Операционныйблок

Блок управления операцией.

На входные регистры x 0 , x 1 , y 0 , y 1 из памяти поступают данные и передаются на МАС или АЛУ, которые могут использоваться как отдельно, так и в паре. Если нужно использовать данные двойной длины, то, как правило, используют 16 разрядов. Результат выполнения операции из аккумулятора А или В передаётся в память данных через сдвигатель - выходной.

Распределение нагрузки между МАС и АЛУ: 62 команды в базовом варианте, из них: 61 - АЛУ и 1 - МАС.

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

Рис. Схема блока МАС

В блоке МАС после умножения первое суммирование происходит с нулём, а далее после каждого умножения происходит суммирование с каждым значением аккумулятора. Аккумуляторов всегда два или более.

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

Если в процессорах фирмы Motorola (в базовом варианте Motorola DSP 560xx ) разрядность слова равна 24, то длина расширенного слова составляет: 24 + 24 + 8 = 56 битов, где 8 разрядов отводится на расширение данных.

Если в процессорах фирмы Motorola разрядность слова равна 16, то длина расширенного слова составляет: 16 + 16 + 8 = 40 битов, где 8 разрядов отводится на расширение данных.

Пример представления целых чисел в форматах двойное и расширенное слово аккумулятора длиной 56 битов в процессорах DSP560xx фирмы Motorola:


Примечание:

На рисунке расширение EXT заполнено нулями – значением 47-го знакового бита.

Представление целых чисел в формате с ФТ в форматах двойное и расширенное слово предполагает следующее функциональное распределение битов:

1.) Старший бит MSB старшего слова MSP используется:

· как знаковый при представлении целых чисел со знаком ; значение MSB = 0 соответствует положительному знаку, а MSB = 1 - отрицательному знаку; ноль считается положительным; остальные биты являются значащими;

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

2.) Все биты, кроме знакового, считаются значащими ; они выравниваются по правому краю формата, т.е. младший бит LSB соответствует младшему разряду целого двоичного числа.

3.) При представлении целых чисел со знаком в формате «расширенное слово» в расширении EXT происходит расширение знака ; это означает, что все биты EXT автоматически заполняются значением старшего знакового бита MSB слова MSP : LSP .

4.) При представлении целых беззнаковых чисел в формате «расширенное слово» все биты EXT обнуляются.


"Научно-технические статьи" - подборка научно-технических статей радиоэлектронной тематики: новинки электронных компонентов , научные разработки в области радиотехники и электроники , статьи по истории развития радиотехники и электроники , новые технологии и методы построения и разработки радиоэлектронных устройств, перспективные технологии будущего, аспекты и динамика развития всех направлений радиотехники и электроники , обзоры выставок радиоэлектронной тематики.

В статье рассмотрены основные параметры цифровых сигнальных процессоров (DSP) и их влияние на выбор подходящей микросхемы, а также описано текущее состояние рынка DSP.

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

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

Таблица 1. Основные производители DSP и принадлежащие им доли рынка

Компании-лидеры рынка Company Name Доля рынка DSP
1 Texas Instruments 54,3%
2 Freescale Semiconductor 14,1%
3 Analog Devices 8,0%
4 Philips Semiconductors 7,5%
5 Agere Systems 7,3%
6 Toshiba 4,9%
7 DSP Group 2,2%
8 NEC Electronics 0,6%
9 Fujitsu 0,4%
10 Intersil 0,3%

Other Companies 0,5%

Total 100,0%

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

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

Кроме того, во многих случаях имеет смысл учитывать и место на рынке, занимаемое поставщиком процессора, т.к. далеко не все производители могут предоставить в ваше распоряжение спектр процессоров, покрывающих все ваши потребности. Сложившееся к настоящему времени распределение рынка между ведущими поставщиками (см. табл. 1) показывает, что 4 компании, стоящие в начале списка, поставляют более 80% всех используемых в мире DSP. Именно эти компании наиболее известны и на российском рынке, и их продукция часто упоминается в нашем журнале, например, основные характеристики DSP производства Texas Instruments ? Analog Devices рассматривались в №7 за 2005 г. и №1 за 2006 г.

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

Таблица 2. Области применения семейств сигнальных процессоров разных производителей

Обработка видео, видеонаблюдение, цифровые камеры, 3D графика TMS320DM64x/DaVinci, TMS320C64xx, TMS320C62xx (TI), PNX1300, PNX1500, PNX1700 (Philips), MPC52xx (Freescale)
Обработка аудио,распознавание речи, синтез звука TMS320C62xx, TMS320C67xx (TI), SHARC (Analog Devices)
Портативные медиа устройства TMS320C54xx, TMS320C55xx (TI), Blackfin (Analog Devices)
Беспроводная связь, телекоммуникации, модемы, сетевые устройства TMS320C64xx, TMS320C54xx, TMS320C55xx (TI), MPC7xxx, MPC86xx, MPC8xx PowerQUICC I, MPC82xx PowerQUICC II, MPC83xx PowerQUICC II Pro, MPC85xx PowerQUICC III (Freescale), Blackfin, TigerSHARC (Analog Devices), PNX1300 (Philips)
Управление приводами,преобразование мощности, автомобильная электроника, предметы домашнего обихода, офисное оборудование TMS320C28xx, TMS320C24xx (TI), ADSP-21xx (Analog Devices), MPC55xx, MPC55xx (Freescale)
Медицина, биометрия, измерительные системы TMS320C62xx, TMS320C67xx, TMS320C55xx, TMS320C28xx (TI), TigerSHARC, SHARC (Analog Devices)

Формат данных и разрядность

Одна из основных характеристик цифровых сигнальных процессоров - формат обрабатываемых данных.

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

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

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

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

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

Скорость

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

Очень часто скорость работы DSP указывают в MIPS (миллионах инструкций в секунду). Это наиболее просто измеряемый параметр.

Однако проблема сравнения скорости различных DSP состоит в том, что процессоры имеют различные системы команд, и для выполнения одного и того же алгоритма разными процессорами требуется разное число этих команд. Кроме того, иногда для выполнения различных команд одним процессором требуется различное количество тактов синхронизации. В результате процессор со скоростью 1000 MIPS вполне может оказаться в разы медленнее процессора со скоростью 300 MIPS, особенно при различной их разрядности.

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

Наиболее точной является оценка скорости исполнения определенных алгоритмов - например, КИХ- и БИХ-фильтрации, однако это требует разработки соответствующих программ и тщательного анализа результатов тестирования.

Рис. 1 Cравнение по скорости современных DSP разных производителей

Существуют компании, занимающиеся анализом и сравнением процессоров по основным характеристикам, в том числе и по скорости. Лидером среди таких компаний является BDTI - Berkeley Design Technology, Inc. (www.bdti.com). В качестве примера на рисунке 1 показано сравнение по скорости современных DSP разных производителей.

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

Простые советские инженеры, не допущенные на крупнейшие мировые профессиональные семинары по электронике и не посвященные в тайны, разведанные КГБ, могли судить о развитии электроники по программе "Время" и по голливудским фильмам десятилетней давности. После восторгов об электронных штучках Джеймсов Бондов делалось заключение, что: все это спецэффекты кинематографа; все создано на специализированных микропроцессорах (никогда не уточнялось, на каких); и что "у нас, где надо и у кого надо есть вещи и покруче". После таких глубокомысленных выводов советские инженеры с новым творческим порывом в своих НИИ продолжали создавать шедевры на 155-х ТТЛ-микросхемах, или, самые приближенные к военно-промышленному комплексу, на 133-й серии.

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

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

Сигнальные процессоры появились в начале 80-х годов. Первым широко известным сигнальным процессором стал выпущенный в 1982 году фирмой Texas Instruments ЦСП TMS32010, с производительностью в несколько MIPS (миллионов инструкций в секунду), созданный по 1,2 мкм технологии. Вслед за Texas Instruments ЦСП стали выпускать и другие фирмы. В настоящее время Texas Instruments является лидером по производству ЦСП, ей принадлежит около половины рынка этих контроллеров. Вторым по величине производителем ЦСП является компания Lucent Technologies, которая производит около трети этих устройств. Замыкают четверку лидеров Analog Devices и Motorola, имеющие примерно равную долю рынка и выпускающие вместе примерно четверть всех ЦСП. На долю остальных производителей, хотя среди них находятся такие известные фирмы, как Samsung, Zilog, Atmel и другие, приходятся оставшиеся 5-6 процентов рынка сигнальных процессоров.

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

Texas Instruments ставит задачу производства максимально широкого ассортимента, способного перекрыть все возможные применения процессоров при все большей производительности. В настоящее время производительность сигнальных процессоров достигает до 8800 MIPS, и производятся они по технологии от 0,65 мкм до 0,1 мкм. Тактовая частота достигает 1,1 ГГц.

Lucent Technologies ориентируется на крупных производителей конечного оборудования и предлагает свою продукцию через дистрибьюторскую сеть, не прибегая к широкой рекламной компании. Фирма специализируется на ЦСП для телекоммуникационного оборудования, в частности, в таком перспективном в настоящее время направлении, как создание станций сотовой связи.

Analog Devices, напротив, ведет активную маркетинговую политику и рекламную компанию, о чем свидетельствует хотя бы аббревиатура в названии ЦСП этой фирмы SHARK и Tiger SHARK (акула и тигровая акула). В технической области процессоры этой фирмы оптимизированы по энергопотреблению и для построения многопроцессорных систем.

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

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

Характеристики ЦСП-процессоров

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

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

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

Построение памяти с множественным доступом достигается, в основном, за счет применения Гарвардской архитектуры. Под Гарвардской архитектурой понимается такая архитектура, которая имеет две физически разделенные шины данных, что позволяет осуществить два доступа к памяти одновременно. Но для выполнения DSP-операций только этого недостаточно, особенно при использовании в команде двух операндов. Поэтому Гарвардская архитектура добавляется еще кэш-памятью, для хранения тех инструкций, которые будут использоваться вновь. При использовании кэш-памяти шина адреса и шина данных остаются свободными, что делает возможным выборку двух операндов. Такое расширение - Гарвардская архитектура плюс кэш - называют расширенной Гарвардской архитектурой или SHARC (Super Harvard ARChitecture).

Конкретные характеристики ЦСП рассмотрим на семействе DSP568xx компании Motorola, в которых совмещены особенности цифровых сигнальных процессоров и универсальных микроконтроллеров.

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

Встроенная память может содержать (для семейства):

Флэш-память программ до 60К

Флэш-память данных до 8К

ОЗУ-программ до 2К

ОЗУ-данных до 4К

Флэш-память программы загрузки 2К

На микрочипах семейства реализовано большое количество периферийных устройств: ШИМ-генераторы, 12-разрядные АЦП с одновременной выборкой, квадратурные декодеры, четырехканальные таймеры, контроллеры CAN-интерфейса, двухпроводные последовательные коммуникационные интерфейсы, последовательные интерфейсы, программируемый генератор с ФАПЧ для формирования тактовой частоты ядра DSP и др.

Общие характеристики

Производительность 40 MIPS при тактовой частоте 80 МГц и напряжении питания 2.7:3.6 В;

Однотактный параллельный 16х16 умножитель-сумматор;

Два 36-разрядных аккумулятора, включая биты расширения;

Однотактное 16-разрядное устройство циклического сдвига;

Аппаратная реализация команд DO и REP;

Три внутренние 16-разрядные шины данных и три 16-разрядные шины адреса;

Одна 16-разрядная шина внешнего интерфейса;

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

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

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

Насколько неожиданными могут быть применения сигнальных процессоров, мне пришлось не так давно убедиться именно на примере игрушки. Однажды ко мне обратился знакомый и попросил починить говорящую куклу, которую подарили его дочери немецкие знакомые. Кукла, и правда, была замечательной, по словам знакомого, она понимала до полусотни фраз и "сознательно" поддерживала разговор. В Германии стоила сто пятьдесят марок, что навело меня на размышления, что о поломке куклы более жалеют родители, чем их чадо. Дочурка и так любила куклу, тем более что до того как стать немой, та разговаривала на немецком языке. Без всякой надежды на успех взялся я за ремонт этой куклы. Напильником спилил эпоксидную смолу, которой была залита схема и, под толстым-толстым слоем эпоксидки, обнаружил полдесятка корпусов микросхем, центральным из которых был ЦСП к DSP56F... последние цифры, к сожалению, безвозвратно стерлись. Заставить куклу заговорить так и не удалось, и насколько добавлял ей интеллекта сигнальный процессор, я, увы, так и не определил. Как потом оказалось, старший сын моих знакомых, чтобы заставить куклу кричать погромче, вначале подсоединял к ней напряжение вместо 3 в, 4,5 вольта, что было еще не "смертельно", и игрушка хоть и хрипела, но орала, ну а после 220в... . Отсюда первый вывод - высокие технологии хороши, но не всегда и не везде. Вывод второй - вскоре, возможно, ЦСП мы сможем увидеть в кухонной посуде, обуви и одежде, по крайней мере, технических препятствий к тому нет.


Цифровой сигнальный процессор (англ. digital signal processor , DSP , цифровой процессор обработки сигналов (ЦПОС) ) - специализированный микропроцессор , предназначенный для обработки оцифрованных сигналов (обычно, в режиме реального времени).

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

Архитектура сигнальных процессоров, по сравнению с микропроцессорами общего применения, имеет некоторые особенности, связанные со стремлением максимально ускорить выполнение типовых задач цифровой обработки сигналов, таких, как цифровая фильтрация , преобразование Фурье , поиск сигналов и т. п. Математически эти задачи сводятся к поэлементному перемножению элементов многокомпонентных векторов действительных чисел, последующему суммированию произведений (например, в цифровой фильтрации выходной сигнал фильтра с конечной импульсной характеристикой равен сумме произведений коэффициентов фильтра на вектор выборок сигнала, аналогичные вычисления производятся при поиске максимумов корреляционных и автокорелляционных функций выборок сигналов). Поэтому сигнальные процессоры оптимизированы по быстродействию для выполнения именно таких операций. И ЦСП ориентированы, в первую очередь, на многократное выполнение умножения с расчётом «на лету» адресов перемножаемых элементов массивов:

  • Операция «умножение с накоплением» (англ. multiply-accumulate , MAC ) (Y = Y + A × B ), где Y, A, B - элементы действительных массивов с автоматическим расчетом адресов элементов массивов и обычно реализована аппаратно и исполняется за один машинный цикл.
  • Аппаратная реализация многократного повторения заданного набора команд, то есть циклы с заранее назначенной длиной без использования счетчиков цикла и команд проверки обнуления счетчика цикла - признака выхода из цикла.
  • Возможность одновременной в одном машинном такте выборки команды и двух операндов для максимально быстрого выполнения команды MAC. Для этого ЦСП имеет несколько портов обращения к памяти (независимых областей памяти, каждая со своим комплектом шин адреса и данных).
  • Поддержка векторно-конвейерной обработки с помощью генераторов адресных последовательностей.

Ограниченность аппаратных ресурсов первых ЦСП накладывала существенный отпечаток на их архитектуру:

  • Гарвардская архитектура (разделение памяти команд и данных), как правило, модифицированная ; с разделением памяти на сегменты с независимым доступом.
  • Детерминированная работа с известными временами выполнения команд, что позволяет выполнять планирование работы в реальном времени .
  • Сравнительно небольшая длина конвейера , так что незапланированные условные переходы могут занимать меньшее время, чем в универсальных процессорах.
  • Экзотический набор регистров и инструкций, часто сложных для компиляторов . Некоторые архитектуры тогда использовали VLIW .

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

Области применения

  • Коммуникационное оборудование:
    • Уплотнение каналов передачи данных;
    • Кодирование аудио- и видеопотоков;
  • Системы гидро- и радиолокации;
  • Распознавание речи и изображений;
  • Речевые и музыкальные синтезаторы;
  • Управление технологическими процессами;
  • Другие области, где необходима быстродействующая обработка сигналов, в том числе в реальном времени.

История

Предшествующие разработки

До 1980 года несколько компаний выпустили устройства, которые можно считать предшественниками ЦСП. Так, в 1978 Intel выпускает «процессор аналоговых сигналов» 2120. В его состав входили АЦП , ЦАП и процессор обработки цифровых данных, однако аппаратная функция умножения отсутствовала. В 1979 AMI выпускает S2811 - периферийное устройство, управляемое основным процессором компьютера. Оба изделия не достигли успеха на рынке.

Первое поколение (начало 1980-х)

Основную историю ЦСП принято отсчитывать от 1979-1980 годов, когда Bell Labs представила первый однокристальный ЦСП Mac 4, а также на «IEEE International Solid-State Circuits Conference "80» были показаны µMPD7720 компании NEC и DSP1 компании AT&T , которые, однако, не получили широкого распространения. Стандартом де-факто стал выпущенный чуть позже кристалл TMS32010 фирмы Texas Instruments , по многим параметрам и удачным техническим решениям превосходящий изделия конкурентов. Вот некоторые его характеристики:

  • АЛУ :
    • Размер слова: 16 бит;
    • Разрядность вычислителя: 32 бит;
    • Быстродействие: 5 млн операций сложения или умножения в секунду;
  • Длительность командного цикла: 160-280 нс;
  • Память:
    • ОЗУ : 144-256 слов;
    • ПЗУ программ: 1,5-4 К слов;
    • ППЗУ : до 4К слов (отдельные модели);
  • Внешняя шина:
    • Разрядность: 16 бит;
    • Адресуемое пространство: 4К слов
    • Пропускная способность: 50 Мбит/с
  • Устройства ввода-вывода: 8 портов по 16 разрядов;

Второе поколение (середина 1980-х)

Благодаря прогрессу в полупроводниковых технологиях в этот период были выпущены изделия, имеющие расширенные функции по сравнению с первым поколением. К характерным отличиям можно отнести:

  • Увеличение объёма ОЗУ до 0,5 К слов;
  • Добавлена возможность подключения внешней памяти программ и внешней памяти данных объёмом до 128 К слов;
  • Быстродействие повышено в 2-4 раза;
  • Улучшенные подсистемы прерываний и ввода-вывода.

Много позднее также были выпущены устройства, формально относящиеся ко второму поколению, но имеющие следующие усовершенствования:

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

Третье поколение (конец 1980-х)

Третье поколение ЦСП принято связывать с началом выпуска изделий, реализующих арифметику с плавающей запятой. Характерные особенности первых выпущенных образцов:

  • Производительность: порядка 20-40 млн оп./сек. (MIPS);
  • Два блока ОЗУ по 1 К 32-разрядных слов с возможностью одновременного доступа;
  • Кэш-память объёмом 64 слова;
  • Разрядность регистров: 32 бит;
  • Разрядность АЛУ: 40 бит;
  • Регистры для операций с повышенной точностью;
  • Встроенные контроллеры ПДП;
  • Разрядность шин: 32 бит для команд и 24 бит для адреса;

Четвёртое поколение

Четвёртое поколение ЦСП характеризуется значительным расширением наборов команд, созданием VLIW и суперскалярных процессоров. Заметно возросли тактовые частоты. Так, например, время выполнения команды MAC (Y:= X + A × B ) удалось сократить до 3 нс.

Современные ЦСП

Лучшие современные ЦСП можно характеризовать следующими параметрами:

  • Тактовая частота - 1 ГГц и выше;
  • Многоядерность;
  • Наличие двухуровневого кеша;
  • Встроенные многоканальные контроллеры прямого доступа к памяти;
  • Быстродействие порядка нескольких тысяч MIPS и MFLOPS ;
  • Выполнение до 8 параллельных инструкций за такт;
  • Совместимость со стандартными шинами (PCI и др.)

Основные параметры ЦСП

  • Тип арифметики . ЦСП делятся на процессоры, обрабатывающие данные с фиксированной точкой и обрабатывающие данные с плавающей точкой. Устройства с плавающей точкой удобнее в применении, но они заметно сложнее по устройству и более дороги;
  • Разрядность данных . Большинство ЦСП с фиксированной точкой обрабатывают данные с разрядностью 16 бит, процессоры с плавающей точкой - 32 бита. Многие модели могут обрабатывать данные с двойной точностью.
  • Быстродействие . Быстродействие как интегральную характеристику определить достаточно сложно, поэтому скорость работы характеризуют несколькими параметрами, а также временем решения некоторых реальных задач.
    • Тактовая частота и Время командного цикла . Для современных ЦСП тактовая внутренняя частота может отличаться от внешней, поэтому могут указываться два значения. Время командного цикла указывает на время выполнения одного этапа команды, то есть время одного цикла конвейера команд. Так как команды могут исполняться за разное количество циклов, а также с учётом возможности одновременного исполнения нескольких команд, этот параметр может характеризовать быстродействие ЦСП достаточно приближённо.
    • Количество выполняемых команд за единицу времени . Различное время исполнения команд, а также исполнение нескольких команд одновременно не позволяют использовать этот параметр для надёжной характеристики быстродействия.
    • Количество выполняемых операций за единицу времени (MIPS) . Данный параметр учитывает одновременную обработку нескольких команд и наличие параллельных вычислительных модулей, поэтому достаточно хорошо может указывать на быстродействие ЦСП. Некоторой проблемой здесь остаётся то, что понятие «операции» чётко не формализовано.
    • Количество выполняемых операций с плавающей точкой за единицу времени . Параметр аналогичен предыдущему и используется для процессоров с плавающей точкой.
    • Количество выполняемых операций MAC за единицу времени . Данная команда, с одной стороны, является базовой для многих вычислений, а с другой - достаточно проста. Поэтому время её исполнения можно использовать в том числе и для оценки общей производительности ЦСП.
  • Виды и объём внутренней памяти . Объём внутренней оперативной памяти показывает, сколько данных ЦСП может обработать без обращения к внешней памяти, что может характеризовать общее быстродействие системы, а также возможность работать «в реальном времени». Тип ПЗУ определяет возможности по программированию устройства. Модели с обычным ПЗУ подходят для крупносерийного производства, ППЗУ (однократно программируемое) удобно для небольших тиражей, а применение Flash-памяти позволяет менять программу устройства многократно во время эксплуатации. На данный момент не очень мощные DSP чаще всего снабжены достаточно большой Flash-памятью (её цена неуклонно снижается) и заметным объёмом RAM и поэтому могут являться самодостаточными без добавления внешней памяти и на этапе разработки, и на этапе производства, что повышает конкурентоспособность таких DSP в ряде сегментов рынка. Мощные DSP, как правило, полагаются на внешнюю память, подключённую по достаточно быстрым шинам, а размещение там Flash-памяти может быть технически проблематичным, например, из-за заметного выделения тепла.
  • Адресуемый объём памяти . Объём адресуемой внешней памяти характеризуется шириной внешней шины адреса.
  • Способ начальной загрузки .
  • Количество и параметры портов ввода-вывода . Данный параметр показывает возможности ЦСП по взаимодействию с внешними по отношению к нему устройствами.
  • Состав внутренних дополнительных устройств . В число внутренних могут входить разнообразные по назначению устройства, например, общего применения - таймеры, контроллеры ПДП и т. д., а также проблемно-ориентированные - АЦП, кодеки, компрессоры данных и другие.
  • Напряжение питания и потребляемая мощность . Данная характеристика особенно важна для ЦСП, встраиваемых в переносные устройства. Обычно предпочтительнее низковольтные устройства (1,8-3,3В), которые имеют быстродействие аналогично 5В процессорам, но заметно экономнее в плане потребления энергии. Многие устройства имеют режимы экономии при простое, либо позволяют программно отключать часть своих устройств.
  • Состав и функциональность средств разработки и поддержки .
    • Перечень языков программирования, для которых есть компиляторы под данную систему;
    • Наличие и возможности средств отладки готовых программ;
    • Доступность документации и технической поддержки;
    • Наличие библиотек стандартных подпрограмм и математических функций;
    • Наличие, доступность и возможности совместимых устройств - АЦП, ЦАП, контроллеры питания и т. д.
  • Допустимые параметры окружающей среды .
  • Другие, в зависимости от назначения.

Часто используются также интегральные характеристики ЦСП, например, показатель «мощность/ток/быстродействие», например, ma/MIPS (миллиампер на 1 млн инструкций в секунду), что позволяет оценить реальную потребляемую мощность в зависимости от сложности задачи, решаемой процессором в указанный момент.

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

Оценка и сравнение производительности

Как отмечено ранее, отдельные характеристики типа тактовой частоты, MIPS, MOPS, MFLOPS позволяют оценить быстродействие ЦСП достаточно неоднозначно. Поэтому для решения задачи измерения и сравнения характеристик разных ЦСП используют специальные наборы тестов, имитирующих некоторые распространенные задачи цифровой обработки сигналов. Каждый тест состоит из нескольких небольших программ, которые пишутся на ассемблере и оптимизируются под заданную архитектуру. Эти тесты могут включать реализацию:

  • Фильтры КИХ и БИХ ;
  • Перемножение векторов ;

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

Устройство

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

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

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

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

Конвейерное исполнение команд

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

Наличие нескольких конвейеров реализует суперскалярную архитектуру.

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

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

  • Компиляция машинного кода под конкретный процессор.
  • Оптимизация загрузки конвейера в блоки предварительного декодирования команд.

В итоге команды выполняются не в том порядке, в каком их записывал программист.

Аппаратная реализация основных функций

Умножители

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

Функционально умножители делятся на два вида:

Сдвигатели

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

С точки зрения выполняемых функций, сдвигатели делятся на:

  • Предсдвигатели , выполняющие сдвиг до начала операции или в ходе её исполнения;
  • Постсдвигатели , выполняющие сдвиг после исполнения операции.

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

Функции предсдвигателей Функции постсдвигателей

  • Масштабирование результатов при сохранении в память. При этом содержимое аккумулятора (результат основной операции) остается неизменным;
  • Удаление битов расширения знака;
  • Нормализация;
  • Выделение одинакового порядка.

Устройства генерации адреса

Аппаратная организация циклов

АЛУ

АЛУ - блок процессора, который под управлением декодера команд выполняет арифметические и логические преобразования над данными, называемыми в этом случае операндами. Разрядность операндов обычно называют размером машинного слова.

Регистры

Аккумулятор

Аккумулятор - регистр, предназначенный для сохранения результатов операций. В архитектуре многих ЦСП предусмотрено два аккумулятора, что позволяет повысить скорость выполнения операций, требующих хранения промежуточных результатов. Технически аккумулятор может состоять из нескольких регистров :

  • EXT - регистр расширения;
  • MSP - регистр старшего слова;
  • LSP - регистр младшего слова.

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

Способы адресации

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

Классификация ЦСП по архитектуре

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

Особенности архитектуры ЦСП удобно рассматривать на примере конкретного алгоритма цифровой обработки данных, например, КИХ-фильтра , выходной сигнал которого можно записать как:

Y (n) = ∑ i = 0 P b i x (n − i) {\displaystyle y\left(n\right)=\sum _{i=0}^{P}b_{i}x\left(n-i\right)} , где

Как можно легко заметить, вычисление результата является классическим примером использования операции «умножение с накоплением» - MAC (Y:= X + A × B) .

Стандартные ЦСП

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

Одним из вариантов, позволяющим отказаться от использования памяти программ для хранения данных, является применение т. н. «двухпортовой памяти», то есть памяти, имеющей два комплекта входных шин - двух шин адреса и данных. Такая архитектура позволяет произвести одновременное обращение по двум адресам (правда, при этом они должны находиться в разных адресуемых блоках). Данное решение применяется в ЦСП компаний Motorola (DSP56000) и Lucent (DSP1600).

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

Улучшенные стандартные ЦСП

«Улучшенные стандартные ЦСП» для повышения производительности системы, по сравнению со стандартными ЦСП, используют следующие методы повышения параллелизма:

  • Увеличение количества операционных и вычислительных устройств;
  • Введение специализированных сопроцессоров;
  • Расширение шин для увеличения количества передаваемых данных;
  • Использование памяти с многократным доступом (несколько обращений за такт);
  • Усложнение системы команд;

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

На рисунке показан пример реализации вычисления двух параллельных команд MAC. Для этого в ЦСП присутствуют два модуля MAC и два аккумулятора. Блоки MAC получают данные по трём шинам одновременно, причём одно из значений является для них общим. Таким образом, происходит одновременное исполнение двух команд:

  • АК1:= АК1 + D1 × D2
  • АК2:= АК2 + D1 × D3

Особенность показанного решения состоит в том, что к выполнению двух параллельных команд с одним общим сомножителем можно свести многие алгоритмы ЦОС, например:

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

В некоторых процессорах (Lucent DSP16xxx, ADI ADSP-2116x) используются два одинаковых ядра, каждый со своей памятью, то есть одна команда исполняется одновременно в двух ядрах с различными данными. Это позволяет обойти ограничение на использование полностью независимых данных.

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

ЦСП с архитектурой VLIW

Основное отличие VLIW -процессоров состоит в том, что коды команд ещё на этапе компиляции собираются в большие «суперкоманды» и выполняются параллельно. Обычно такие процессоры используют RISC-архитектуру с фиксированной длиной команды, где каждая из них выполняется в отдельном операционном модуле. К характерным особенностям таких процессоров можно отнести:

  • Большой набор операционных модулей, работающих независимо друг от друга. В состав таких модулей могут входить:
    • Арифметические:
      • модули арифметических операций и операций сравнения;
      • модули логических операций;
      • модули умножения чисел с плавающей и фиксированной точкой;
      • модули генерации констант.
    • Модули генерации адреса, в том числе для линейных и циклических буферов;
  • Необходимость оптимизации компилятора под каждую модель процессора, так как между моделями может меняться состав и функции вычислительных блоков, что влечет за собой изменение перечня команд, которые могут выполняться одновременно;
  • Необходимость в наличии сверхшироких шин данных (порядка 128 бит), чтобы код операции, состоящий из отдельных команд (до 8-ми), мог быть получен из памяти за одно обращение.
  • Высокие требования к объёму памяти программ, что также связано с большой длиной операции.

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

Суперскалярные ЦСП

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

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

С помощью описанного подхода можно обойти следующие недостатки VLIW:

  • Неэффективное использование памяти из-за большой длины групповой операции;
  • Зависимость скомпилированного кода от состава операционных модулей конкретного процессора.

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

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

Классификация ЦСП по назначению

В целом, по назначению ЦСП можно разделить на две группы:

  • ЦСП общего назначения;
  • Проблемно-ориентированные ЦСП.

«Проблемная ориентация» обычно относится не к дополнительным командам, а к набору встроенных специализированных периферийных устройств. Например, ЦСП, предназначенные для управления электродвигателями , могут содержать на кристалле генераторы сигналов ШИМ , контроллеры локальной промышленной сети и т. д. Процессоры, используемые для обработки голосовых сигналов, часто содержат модули манипуляции разрядами (BMU) и сопроцессоры исправления ошибок. В цифровых фото- и видеокамерах применяются ЦСП с модулями кодирования/декодирования MPEG1, MPEG4, JPG, MP3, AAC и др.

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

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

    Особенности ассемблеров ЦСП

    К интересным особенностям ассемблеров ЦСП можно отнести следующее:

    • Наличие двух форм записи многих команд - мнемонической и алгебраической . Мнемоническая форма аналогична записи команд для обычных микропроцессоров, например, ADD dst, src . Другая, алгебраическая, в ассемблерах стандартных микропроцессоров используется реже, в то время как на языке ЦСП упомянутая команда может быть записана в виде dst = dst + src . Обычно ассемблеры ЦСП понимают обе формы записи, но, например, ассемблеры Analog Devices и Lucent Technologies используют только алгебраическую запись.
    • Средства организации стандартных структур, например, специальных аппаратных команд повторения одной команды или блока кода. При этом, в отличие от команд повторения обычных процессоров, ЦСП может пропускать цикл выборки кода повторяемой команды, что уменьшает время выполнения каждого повторения как минимум на 1 цикл шины, что при двухцикловой команде даёт двойной выигрыш по времени.

    Совместимость внутри семейств ЦСП

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

    Отладка программ

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



    © 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows