[an error occurred while processing this directive]
Ответ: (+)
(«Телесистемы»: Конференция 'Цифровые сигнальные процессоры (DSP) и их применение')

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 24 июня 2004 г. 15:11
В ответ на: Спасибо. отправлено st256 24 июня 2004 г. 14:59

Я бы так однозначно не сказал бы про проигрыш (в части 64/67). Для 55 вообще ничего не скажу - не писал на С. Про 67/64 - там оптимизатор компилятора во многих случаях очень хорошо делает циклические структуры, особенно если применять intrinsic'и. Все дело в программной конвейеризации и распараллеливании задачи на 8 фугкциональных блоков. Система такая - если не устраивает код, сгенеренный из С при условии "правильного писания", то следует переход на линейный ассемблер. Если линейный ассемблер не дает желаемого (а сам чувствуешь, что тут можно еще взять) - то следует переход на параллельный ассемблер с последующим закипанием мозгов от 8-ми параллельных инструкций. И при писании вручную обычно ориентируешься на результат С или линейного асма.

А вот в линейном коде (без циклов) С компилер проигрывает ручной кодировке на параллельном асме от 2 до 6 раз примерно.

Честно говоря, если бы я интересовался умением оптимизировать на 6000 асме, то попросил бы... Написать функцию memcpy. Должно получиться 1 такт на одну пересылку. плюс общей оверхид на кажется 5 тактов. Но для этого надо самому хорошо разбираться в ассемблере этих монстров.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru