![]() |
|
Модераторы: LSD |
![]()
|
|
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев |
Используя свой опыт и ваши консультации по вопросам конвертации С++ в С и адаптации программного кода на DSP-платформы, родилась статья...
Прошу вас ознакомиться и выдать свои рекомендации, что вы считаете в ней не корректным, недопустимым, и чего хорошего видите... И помните, что написано в моей подписи Адрес статьи: КЛИКАЙТЕ СЮДА -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб |
Модератор:
Здесь, пожалуйста, обсуждаем только вышеуказанную статью. |
|||
|
||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев |
Народ, не поленитесь, прочитайте и выскажитесь...
-------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев |
podval, хотт тыы скажи что-нибудь?
-------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб |
ОК.
Если мне не изменяет мой склероз, существует инструментарий разработчика, позволяющий генерить из программы на С++ команды процессоров из семейства Texas Instruments. Там как это все делается? И вот это впечатляет:
Можно подробности о том, где и как это было сделано? Что за фирма, какие разработки? |
|||
|
||||
| val |
|
||||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев |
Да, действительно, каждая фирма производитель DSP поставляет вместе со своим железом компиляторы из С++ в ассемблер этого железа. К примеру, Analog Devices - Visual DSP++ Motorola - CodeWarrier TI- не знаю название продукта, но точно есть такая штука... Помимо этого, есть другие частные фирмы, которые специализируются на выпуске компиляторов (WindRiver и др.). Но, к сожалению, построить хороший оптимизирующий компилятор для DSP достаточно сложная задача и требует примерно времени от 1 до 2-ух лет, а к этому времени, этот самый DSP уже устаревает и появляются другие процессоры с принципиально другими характеристиками, набором регистров и т.д., которым уже нужен новый компилятор. Вот и приходится выбрасывать на рынок не очень совершенные компиляторы, сырые продукты для отладки... Что крайне негативно сказывается на оптимальность кода... Посудите сами, как перемножить 2 32-ух разрядных числа на 16-ти разрядном процессоре? Человек будет мутить примерно такой алгоритм: 1. Выделить младшую и старшую части в первом числе; 2. Выделить младшую и старшую части во втором числе; 3. Перемножать эти кусочки друг на друга; 4. Сложить результаты перемножений этих кусков... 5. Разобраться со знаком резутата, проверить на переполнение, сделать насыщение, если это необходимо... А как глупенькому компилятору проникнуться в такую штуку ?! Размер ассемлерного кода для такого умножения, написанного человеком, составляет примерно 50 строчек (в зависимости от типа ассемблера и процессора), а ассемблерный код, который генерирует компилятор для строчек
Вот и приходиться выкручиваться... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
||||
|
|||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев |
В самой статьи и изложено комплексная методика так такие штуки вытворять... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев |
Про разработки на BlackFin(e) могу сказать - это одно из отделений института кибернетики в г. Киеве, про MCF5249 не могу, в связи с некоторой конфиденциальностью этой информации... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев |
если компилятор поддерживает эту операцию, то она будет написана так как нужно, потому что эту последовательность команд писали люди, которые делали компилятор сам компилятор не может придумать кусок кода, он просто заменяет C-шные строки на фрагменты ассемблера... P.S. на BlackFin'е это заняло 4 строки, но его нельзя уверенно назвать 16-разрядным процессором а вот на ADSP это заняло 30 команд (и то, больше половина была для того, чтобы добраться до переменных) Это сообщение отредактировал(а) maxim1000 - 15.10.2003, 18:29 -------------------- qqq |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб |
val
Ты имеешь в виду институт кибернетики им. Глушкова? А сайт есть у него или у этого подразделения? |
|||
|
||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев |
Нет, не всегда... Простой пример из практики... Ассемблерный код расчета скалярного произведения двух векторов сгенерированный компилятором, не отражает особенности DSP архитектуры и не задействует MAC-операции... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев |
Под словом "придумать" нужно понимать наличие встроенных подпрограмм анализа кода, которые не тупо заменяют С-шные строки на ассемблерные, но и осуществляют некоторую оптимизацию выходного ассемблерного кода... Так вот, при такой формулировке компилятор может "придумать" новый кусок кода... Как я уже писал, что в связи с быстрой эволюцией архитектур DSP производители компиляторов не успевают создавать "думающие" компиляторы... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев |
Так точно... http://www.icyb.kiev.ua Но сайт, конечно, тот еще... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев |
Ввиду замечаний, статья изменилась...
-------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев |
ни один компилятор C не поддерживает такую операцию, как скалярное умножение (по крайней мере, она не входит в стандарт) -------------------- qqq |
|||
|
||||
![]()
|
| Правила раздела «Флейм» | |
|
|
Добро пожаловать в «Флейм». В разделе не действуют многие правила:
Строго запрещено:
Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт. Глас Винграда:
Глас Философии:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Флейм | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |