|
|
|
|
В классических процессорах имеется один блок, где выполняются все арифметические и логические операции, и данные обычно статически размещаются в ячейках памяти. Эта структура последовательно выполняет команды процессора и, поэтому ее называют " основанной на потоке команд ". Такая архитектура хороша при работе по сложным алгоритмам с большим числом команд ветвления и не очень интесивными процессами ввода-вывода. Для увеличения быстродействия классических процессоров используют параллельное выполнение нескольких команд целиком или различных этапов выполнения соселних команд (выполнение одной команды, дешифрация другой и выборка третьей). Такой параллелелизм в традиционных процессорах приносит хорошие результаты.
Исторически, процессоры цифровой обработки сигналов берут начало от обычных микропроцессоров, они построены по тому-же принципу последовательного действия и ориентированы на поток команд.
Однако используемые при цифровой обработки сигналов алгориты характеризуются простыми алгоритмами, почти полным отсутствием команд ветвления и интенсивными процессами ввода вывода. Для реализации данных алгоритмов более оптимальна структура основанная на потоке данных - имеющая много специализированных арифметическо-логических устройств (АЛУ), каждая из которых выполняет только одну команду. В процессе обработки данных они передаются от одного АЛУ к другому, так что такую систему можно назвать" основанной на потоке данных ". Совсем не экзотика и вполне реально в такой системе реализовать синхронную машину конвейерного типа, производящую все действия довольно сложного алгоритма за один такт одновременно.
Элементы параллельной обработки данных в настоящее время внесены и в архитектуру классических ЦПОС, например в процессорах TMS320C6X могут выполняться параллельно до восьми команд (принцип VLIW - очень длинного командного слова), однако в этом случае возникают большие трудности при написании программ и оптимизации кода для одновременной загрузке всех АЛУ. Поэтому большую эффективность можно получить от устройств изначально ориентированных на поток данных.
К таким устройствам относятся -