ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
96372
Evgeny_CD (05.08.2007 16:42, просмотров: 6267)
DSP - "отработанная ступень" развития электроники на текущем этапе. Позже ее перезарядят, и она снова будет готова "к бою". Теорема и доказательство. Современный DSP - это хреновина, которая очень быстро умеет делать следующее: * подтаскивание данных для АЛУ (выборка данных в регистровый файл, генерация при помощи хитрожопых многомерных генераторов адресов индекса в массиве для взятия очередного значения, X, Y и прочие памяти, и т.д.) * АЛУ - выполнение операций над операндами * оттаскивание данных из АЛУ * вычисление адреса следующей команды, включая принятие решения (ветвления, циклы и пр.) Все сильно законвейризовано, так что "со стороны" кажется, что DSP все это делает за один такт. Но как не конвейризуй, а наступает технологический предел производительности для однопоточного исполнения. Который, как назло, не соотвествует пределу "чаяний" кустомеров :) Начинам играть в суперскалярность. Первый шаг - SIMD. MMX|3DNow|SSE и пр. В NeuroMatrix (http://caxapa.ru/96359.html) эту идею довели до совешенства. За один такт: * одна 64 битная операция * две 32 битных * далее распараллеливаемся до однобитных :) Потом наступает очередь тяжелой артилеррии - многоядерность. BF561, и , как вершина достижения, http://chipwrights …/showdetails.php/id/45 - 16 ядер на одном кристалле (ну там еще Intel маячит со своим 80 ядерником, но он пока не в серии) Однако природу не обманешь, и навстречу девелоперам чудо камней уже летить на всех парах бронепоезд реальности. DSP алгоритмы их создатели описывают в пространстве примитивов, удобных для их извращенного мышления, и отчасти опирающемся на достижения какой-либо формальной науки (дискретной математики, например). DSP железяки предлагают свое собственное пространство примитивов (те самые 4 операции). И пЫсатель софта, прежде всего, должен выполнить сильно нелинейное преобразование одного пространства в другое. Все усложнаятся еще и тем, что изначальное пространство может быть не суперскалярным, а его надо отобразить на суперскалярное пространство. Получается полная засада. Наиболее талантливых представителей рода DSP программистов регулярно отлавливают вредители из Кащенко и Ко, а все остальные вынуждены потратить остатки своих мозгов на профессиональное лепление отмазок типа "почему при хз. скольких GOPS на этом камне никак нельзя сделать MPEG 4 AVC). Не верите? А вот вам история Cell. За ним ведь IBM стоит, а не просто какие-то недоделки из НТЦ Модуль. Суперкомпьютер из PlayStation 3? http://www.ixbt.co …l/index.shtml?08/97/95 Sony продемонстрирует системную плату с применением Cell и RSX на SIGGRAPH http://www.ixbt.co …l/index.shtml?08/96/64 Cell пиарят уже года два как (если не три), и что-то не видно его победной поступи по рынку. Sony чип могли просто навязать ("Хочешь, чтобы мы сделали чип для тебя (а никто другой не сделает - либо связаны долгосрочными контрактами, либо не могут физически)? Так вот, этот чип будет Cell. Точка."). Все вполне логично. Распараллеливание DSP в описанной идеологии крайне неэффективно. 1. Нагрузка на шины. Вся наша кучка параллельно работающих модулей создает нехилую нагрузку на шины, внутренние и внешние. Турбирование шин - муторный процесс, и очень дорогостоящий. 2. Связи между юнитами. Строить полноортогональную матрицу "все со всеми" даже для технологии 45 нм - малореальное занятие. Значит часть наших юнитов будет уверенно курить бамбук. Скорее всего, большая :) 3. Стоимость труда программистов. Производители чудо камней регуляно забывают выпустить на рынок brain boost kit для программеров, а без него все это игрушки. "Кароче", видно, что вся эта технология буксует. Нет, конечно, все тщательно затушевывается PR службами делателей камней, но жизнь не такова, как нам ее хотят впарить. Что делать? FPGA форЁва! * возможность создавать свои собственные пространства примитивов. Базовый набор примитивов FPGA имеет малую гранулярность и посему универсален. Из него можно слепить все что угодно в рамках двоичной логики. * высокая эффективность связей между юнитами. FPGA делатели отрабатывали эту технологию 20 лет, и преуспели на этом поприще. Соревнование "soft <-> hard" идет в нашем бизнесе со времен его зарождения. У меня пока нет строгой системы фактов, но я чую, что при ныншнем уровне технологии FPGA эффективнее DSP. Успехи Альтеры в построении систем прямого ускорения С кода путем его компиляции в креймний тому подтверждение. Идельная система: * проц общего назначения с высокоэффективной DMA (простенький MAC желателен, чтобы делать "медленные" DSP алгоритмы, не тратят ресурсы FPGA). CF 150-240 Мгц самое то :)) * FPGA на шине, со своей локальной памятью. Выводы: Конечно, DSP никуда не денутся. 51 же не исчезли со сцены :) И если кто владеет технологией DSP - на здоровье. Но! Для тех, кто принимает решение, что же начать по взрослому изучать - DSP или FPGA, первое стоит забанить. Нет, _почитать_ описания стоит (это всегда полезно), но не вкладываться по взрослому. Через некоторое время ситуация, возможно, поменяется. Понятно, что DSP строители не захотят вымирать, и что-нибудь придумают :) Я свое решение принял :)