Evgeny_CD 0 11 июля, 2005 Опубликовано 11 июля, 2005 · Жалоба Случайно наткнулся на "членомер" производительности микроконтроллеров, и он меня очень сильно впечатлил. www.freertos.org/PC/index.html страница www.freertos.org/PC/a00004.html описания тестов 1. Собраны совершенно разные архитектуры. 2. Тесты на понятных задачах, а не, например, на абстрактном решении "системы линейных уравнений". Все становится гораздо интереснее, если свести в единую таблицу (мудрые люди на сайте этого не сделали - иначе по судам затаскают). :)) Понятно, что имеет смысл анализировать совокупность данных, т.к. каждая конкретная цифра может быть предметом спора (компилятор и его параметры, версия, переписать на ASM и т.д.), а вот совокупность очень интересна. Время выполнения тестовых задач (выбрано самое интересное) !лучший результат! +второй результат+ ~худший результат~ Процессор ATMega323 ATMega323 MSP430F449 PIC18F452 LPC2106 AM186ED Rabbit 2000 C8051F120 C8051F120 Архитектура 8 8 16 8 32 16 8 8 8 (элементарная операция, бит) Тактовая, МГЦ 7.9 7.9 7.995392 20 59 33.3 22.1 99 99 Компилятор WinAVR IAR MSPGCC MPLAB PIC18 GCC Watcom Dyn. C SDCC SDCC Оптимизация full speed size full RAM speed speed LMM SMM 16bit addition, мкс 40.4 55.2 27 ~71.6~ +7.4+ 30.2 63.6 9.9 !3.1! 16bit multiplication, мкс 60.8 71.4 72.4 ~193~ !8.2! 30.2 80 24 +13.68+ 16bit division, мкс 538 536 480 ~940~ !22! +38.4+ 608 364 108.4 32bit multiplication, мкс 191 180 182 ~344~ !8.76! 143.6 286 +55.6+ 32bit subtraction, мкс 75.6 88.1 57.2 76.4 !7.6! 52 ~172~ +16.6+ Bubble sort, мкс 836 834 992 3330 420 1070 ~6380~ +412+ !201! Block memory move and compare, ms 5.8 7.9 6.75 ~12.4~ !1.08! +1.65+ 6.36 5.48 Conditional branch to procedure, 143.6 ~245.6~ 131.2 169 46.8 132.8 242 +36.8+ !19.5! мкс Scheduler tick function, мкс 41.8 66.2 45.6 PUSH’ing and POP’ing, мкс 258 258 314 412 43.6 248 ~426~ +21.6+ !19.5! Процессоры AM186ED -R8822 from http://www.rdc.com.tw C8051F120 - Cygnal C8051F120 Компиляторы WinAVR – September 2003 build IAR - версия неизвестна MSPGCC - MSPGCC V3.2.3 MPLAB PIC18 - версия не известна GCC - версия не известна Watcom - Open Watcom V1.2. Dyn. C - Dynamic C V8.03 SDCC - SDCC V2.4.0 Опции RAM (LPC2106) - код исполнялся из ОЗУ. Из FLASH чуть медленнее, но не критично. LMM - Large Memory Model SMM - Small Memory Model То же самое, пересчитанное для тактовой частоты 8 Мгц для каждого процессора. Процессор ATMega323 ATMega323 MSP430F449 PIC18F452 LPC2106 AM186ED Rabbit 2000 C8051F120 C8051F120 Архитектура 8 8 16 8 32 16 8 8 8 (элементарная операция, бит) Тактовая, МГЦ 7.9 7.9 7.995392 20 59 33.3 22.1 99 99 Коэфф. 1.0127 1.0127 1.0006 0.4000 0.1356 0.2402 0.3620 0.0808 0.0808 Компилятор WinAVR IAR MSPGCC MPLAB PIC18 GCC Watcom Dyn. C SDCC SDCC Оптимизация full speed size full RAM speed speed LMM SMM 16bit addition, мкс 39.9 54.5 !27.0! ~179.0~ 54.6 125.7 175.7 122.5 +38.4+ 16bit multiplication, мкс +60.0+ 70.5 72.4 ~482.5~ !60.5! 125.7 221.0 297.0 169.3 16bit division, мкс 531.3 529.3 479.7 2350.0 +162.3+ !159.8! 1679.6 ~4504.5~ 1341.5 32bit multiplication, мкс 188.6 +177.8+ 181.9 ~860.0~ !64.6! 597.7 790.1 688.1 32bit subtraction, мкс 74.7 87.0 +57.2+ 191.0 !56.1! 216.5 ~475.2~ 205.4 Bubble sort, мкс +825.6+ !823.6! 991.4 8325.0 3097.5 4453.9 ~17624.8~ 5098.5 2487.4 Block memory move and compare, ms !5.7! 7.8 6.7 31.0 8.0 +6.9+ 17.6 ~67.8~ Conditional branch to procedure, +141.8+ 242.5 !131.1! 422.5 345.2 552.8 ~668.5~ 455.4 241.3 мкс Scheduler tick function, мкс 41.3 165.5 189.8 PUSH’ing and POP’ing, мкс +254.8+ +254.8+ 313.8 1030.0 321.6 1032.3 ~1176.8~ 267.3 !241.3! >>>Мои выводы (IMHO 10 раз!!!)<<< ==>>>1. Если вдруг с утра, в понедельник, начиная новую жизнь (и новый проект), пошарив в столе, Вы найдете там одно из нижеследующего: * x86 камень для embedded применений * плату на таком камне * рекламную листовку, описывающую, "как хорошо разрабатывать embedded системы, пользуясь стандартной x86 архитектурой" немедленно выкиньте все это (если только Ваши целевые алгоритмы не состоят целиком из деления и блочных пересылок)! Если у Вас есть жесткое требование об использовании х86 - смените Заказчика (или место работы). ==>>>2. Если вдруг по почте Вам придет бесплатный кит на Rabbit 2000, в котором будет борда, компилятор (полный), TCP/IP стек и все остальное, и в доке не будет указано, что это самый не эффективный контроллер - немедленно подайте в суд на того, кто Вам это прислал (за недобросовестную рекламу). TCP/IP сейчас уже не является вещью, которая на 100% определяет выбор процессора (в смысле, если код для стека есть - выбираем проц). ==>>>3. Прежде чем юзать PIC, особенно без умножителя, хорошенько подумайте, стоит ли он того (если нет необходимости юзать специфическую периферию PIС). ==>>>4. Прежде чем юзать MSP430, подумайте, а стоит ли? AVR покажет почти такую же скорость (интегрально), но выбор кристаллов больше, а цена меньше (если нет необходимости юзать специфические фишки MSP430). ==>>>4.1. AVR - гениальный кристалл! Я давно это чувствовал, но чтобы так явно увидеть... ==>>>4.2. Старая добрая 51 архитектура в "турбированном варианте" очень даже "зажигает". Не ожидал. ==>>>5. Разрядность процессора - штука обманчивая! Не факт, что переход 8->16->32 автоматически приведет к увеличению производительности! ==>>>6. Если у Вас есть минута свободного времени, IMHO, ее стоит потратить на изучение архитектуры ARM7 (или более старших - если надо), чипов на ее основе (Philips LPC2xxx, Atmel SAM64, ST и многие, многие другие), средств разработки и отладки. Ибо: ---> ARM есть универсальная архитектура, а все остальные - нишевые, предназначенные для решения определенных задач (цена, простота, специфическая периферия и т.д.) ---> в ARM все очень сильно зависит от умения пользоваться средствами разработки (для других архитектур это тоже верно, но сами средства для ARM сложнее, зато и возможности у них гораздо больше) ---> вопрос цены кристалла с каждым годом будет менее острым (уже сейчас простые ARM с флешаком на борту берутся за 5$ не напрягаясь). П.6 очень сильно относится и ко мне! Нам поможет: http://www.hitex.co.uk/arm/lpc2000book/index.html хорошая книжка http://www.olimex.com/dev/pdf/ARM%20Cross%...h%20Eclipse.pdf >>>!!!<<< Супер подробный манунал по установке и использованию среды http://www.eclipse.org. Полностью описан процесс создания на компуке рабочей среды для ARM на основе GNU тулзов. Стиль местами "для даунов", но описано очень много тонких моментов, которые сложны при первоначальном освоени. Хоть и 10М, но выкачать стоит (IMHO). Если кто после прочтения оного не сможет "поморгать светиком" - это уже клиника. http://www.compuphase.com/dhrystone.htm The Dhrystone benchmark, the LPC2106 and GNU GCC http://www.dwelch.com/gba/dhry.htm циферок много, но я ничего не понял. PS. Кто хочет получить полную версию .xls файла таблиц - пишите на мыло [email protected]. В поле subj указать MCU_BENCH. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 11 июля, 2005 Опубликовано 11 июля, 2005 · Жалоба Процессор ATMega323 ATMega323 MSP430F449 PIC18F452 LPC2106 AM186ED Rabbit 2000 C8051F120 C8051F120 Тактовая, МГЦ 7.9 7.9 7.995392 20 59 33.3 22.1 99 99 16bit multiplication, мкс 60.8 71.4 72.4 ~193~ !8.2! 30.2 80 24 +13.68+ 32bit multiplication, мкс 191 180 182 ~344~ !8.76! 143.6 286 +55.6+ [post=39270]<{POST_SNAPBACK}>[/post] Тесты оставляют ощущение, что цифры взяты с потолка. Во всяком случае, для LPC2106 приведен пример умножения 32 битного умножения за 8.76 мкс, при тактовой 59 МГц (станная какая-то тактовая, прям скажем). Это при том, что у него аппаратная команда умножения. Это при том, что у меня на LPC при 60 МГц тактовой считается 16-таповый FIR на Си ~ за 2 мкс, а это 16 умножений с накоплением, не считая операций взятия 16 полуслов данных из циркулярного буфера в ОЗУ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Evgeny_CD 0 11 июля, 2005 Опубликовано 11 июля, 2005 · Жалоба Тесты оставляют ощущение, что цифры взяты с потолка. Во всяком случае, для LPC2106 приведен пример умножения 32 битного умножения за 8.76 мкс, при тактовой 59 МГц (станная какая-то тактовая, прям скажем). Это при том, что у него аппаратная команда умножения. Это при том, что у меня на LPC при 60 МГц тактовой считается 16-таповый FIR на Си ~ за 2 мкс, а это 16 умножений с накоплением, не считая операций взятия 16 полуслов данных из циркулярного буфера в ОЗУ. <{POST_SNAPBACK}> Смотрите описания тестов. Там все операции посторяются 20 раз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acex2 0 11 июля, 2005 Опубликовано 11 июля, 2005 · Жалоба Мои выводы (IMHO 10 раз!!!)<<< Очередная погоня за МИПСами? А кто будет оценивать функциональность периферии, разнообразие и качество средств разработки и сторонних библиотек/RTOS, потребляемую мощность в разных режимах, доступные корпуса, качество поддержки, цену, leadtime и сотню других параметров? Тесты оставляют ощущение, что цифры взяты с потолка. Во всяком случае, для LPC2106 приведен пример умножения 32 битного умножения за 8.76 мкс, при тактовой 59 МГц (станная какая-то тактовая, прям скажем). Частота вполне нормальная с учетом PLL. Наверняка тесты проводились на плате LPC-H2106 от Olimex. Там за счет PLL внешний 14.7456 Mhz * 4x как раз и дает практически 59 Мгц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Evgeny_CD 0 11 июля, 2005 Опубликовано 11 июля, 2005 · Жалоба Очередная погоня за МИПСами? А кто будет оценивать функциональность периферии, разнообразие и качество средств разработки и сторонних библиотек/RTOS, потребляемую мощность в разных режимах, доступные корпуса, качество поддержки, цену, leadtime и сотню других параметров?Согласен, тем более непонятно, почему новые проекты делают на очень старых архитектурах. Ну какая особая периферия может быть в AM186ED, и ОСей для тех же ARMов хватает. Про мощность потребления я вообще помолчу. Занятно, что 8 битный AVR на тактовой 8 часто идет в ровень с 16 битным AM186ED на тактовой 33. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Samrat 0 11 июля, 2005 Опубликовано 11 июля, 2005 · Жалоба Человек правильно сказал всё это - членомеры более того не совсем объективные, подобный членомер живёт на сахаре-ру тоже каждый своё любимое или нелюбимое померил как умел и выдал какую-то цифирь. А к жизни это имеет очень отдалённое отношение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 17 12 июля, 2005 Опубликовано 12 июля, 2005 · Жалоба Согласен, тем более непонятно, почему новые проекты делают на очень старых архитектурах. Ну какая особая периферия может быть в AM186ED, и ОСей для тех же ARMов хватает. Про мощность потребления я вообще помолчу. Занятно, что 8 битный AVR на тактовой 8 часто идет в ровень с 16 битным AM186ED на тактовой 33. И АВР отстой, и АРМ тоже. :cranky: Стековые процы рулят: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 12 июля, 2005 Опубликовано 12 июля, 2005 · Жалоба <{POST_SNAPBACK}> Смотрите описания тестов. Там все операции посторяются 20 раз.<{POST_SNAPBACK}> и для 20 раз все равно не клеится, у меня 16 MAC-ов делается за 2 мкс, правда несколько оптимизировано. Могли бы и код Сишный привести, а так очередное размахивание руками в воздухе, имхо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Evgeny_CD 0 12 июля, 2005 Опубликовано 12 июля, 2005 · Жалоба И АВР отстой, и АРМ тоже. Круто! Tensillica в моем понимании была одна из самых продвинутых архитектур, а тут такое... :a14: Живьем бы все это пощумать (без заказа кристалов на UMC ), а то на картинке все гладко. Смушает отсутствие кеша. Я не знаком со стековыми процессорами, и не очень понимаю как они без него burst эффективности SDRAM достигают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bmf 0 12 июля, 2005 Опубликовано 12 июля, 2005 · Жалоба И АВР отстой, и АРМ тоже. Стековые процы рулят: Некорректно, здесь вроде говорили в терминах производительности живых чипов, а не по теоритечески занимаемой кристаллом данной архитектуры площади. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 17 12 июля, 2005 Опубликовано 12 июля, 2005 · Жалоба Я не знаком со стековыми процессорами, и не очень понимаю как они без него burst эффективности SDRAM достигают. Дык, смотря о какой эффективности речь. Стековые процы эффективно используют кремень, выжимая максимум с единицы площади. В том числе и плотность кода у них максимальная, в силу использования 0-адресных команд. Что же касается абсолютной производительности, то тут бабушка надвое сказала. Отдельно взятый стековый проц довольно слабосилен. Зато в кластерах возьмет свое, в т.ч. в кластерах на кристалле. По моему, наблюдающийся застой в "мегагерцовой" производительности позволяет довольно уверенно прогнозировать, что будет дальше. И еще суперкомпьтеры показывают пример: мастодонты-одиночки вымерли. :) И еще момент. Сначала Жаба, теперь .NET - новый софт идеально ложится именно на стековые процы. Выкинем RISC на свалку истории! :maniac: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Evgeny_CD 0 12 июля, 2005 Опубликовано 12 июля, 2005 · Жалоба И еще суперкомпьтеры показывают пример: мастодонты-одиночки вымерли. Не все можно распараллелить (эффективно)! Выкинем RISC на свалку истории! для начала хорошо бы начать с х86 :smile3009: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 9 сентября, 2005 Опубликовано 9 сентября, 2005 · Жалоба Я не знаком со стековыми процессорами, и не очень понимаю как они без него burst эффективности SDRAM достигают. Дык, смотря о какой эффективности речь. Стековые процы эффективно используют кремень, выжимая максимум с единицы площади. В том числе и плотность кода у них максимальная, в силу использования 0-адресных команд. Что же касается абсолютной производительности, то тут бабушка надвое сказала. Отдельно взятый стековый проц довольно слабосилен. Зато в кластерах возьмет свое, в т.ч. в кластерах на кристалле. По моему, наблюдающийся застой в "мегагерцовой" производительности позволяет довольно уверенно прогнозировать, что будет дальше. И еще суперкомпьтеры показывают пример: мастодонты-одиночки вымерли. :) И еще момент. Сначала Жаба, теперь .NET - новый софт идеально ложится именно на стековые процы. Выкинем RISC на свалку истории! :maniac: <{POST_SNAPBACK}> Хочу добавить к этому -> у меня на iosifk.narod.ru есть статья по стековым процессорам. Посмотрите 4-х стековый проц. его разработчик писал, что это будет быстрее Sharc'а. Правда sharc'и продаются ведрами как семечки, а эти еще нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться