GetSmart 0 3 ноября, 2015 Опубликовано 3 ноября, 2015 (изменено) · Жалоба Энергопотребление это характеристика софтом не прощупываемая. Зависит и от техпроцесса. А на уровне софта эти ядра отличаются точно. Сравнил в реале LPC1227 rev A и LPC812. 1. У LPC812 переходы на такт короче (2 вместо 3). И нет зависимости STR/STM от нечётного адреса инструкции в RAM, равно как и у LPC1227. 2. У LPC812 есть однотактовая GPIO. LPC1227 падает в исключение при чтении этой области. 3. У LPC812 есть VTOR и отличаются CPUID. Самое серьёзное отличие - первое. Последнее - самое косвенное по отношению к ядру. При наличии в проекте асм-кода, формирующего строгие тайминги, было бы очень кстати иметь асм-функцию сверяющую суммарную растактовку последовательности каких-то инструкций. Чтобы девайс в принципе не мог выдать тайминги вне разрешённого диапазона. Например, на неподходящем камне/ревизии. Изменено 4 ноября, 2015 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 3 ноября, 2015 Опубликовано 3 ноября, 2015 · Жалоба Не знаю как там у CM0+, а у STM32L4xx в "Shutdown mode" потребление всего 30 нА. У MSP430 порядка 100 нА (правда с "RAM Retention"). То, что есть у MSP430 и чего нет у массы всяких декларируемых как супер-пупер-пико-нано потребляющих ядер, это ориентированой на микропотребление пеерферии способной работатать и автомномно, напимер по DMA. MSP очень сбалансированный контроллер ИЗНАЧАЛЬНО. Ну и дальше процедура просыпания у многих "рекордсменов" зачастую очень громоздка по времени и соответственно по энергии :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 3 ноября, 2015 Опубликовано 3 ноября, 2015 · Жалоба Факта экономии энергии за счет полуторократного повышения производительности при той-же тактовой это не изменит. В каких последовательностях инструкций это проявляется? Когда вся прога из переходов (B | Bxx) и когда они вперемешку с вводом/выводом в GPIO ? Какая-то среднестатистическая программа без учёта ногодрыга хоть на 5% будет быстрее? Без сна конечно же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 3 ноября, 2015 Опубликовано 3 ноября, 2015 · Жалоба В каких последовательностях инструкций это проявляется? Как минимум в тех, которые используются в тесте. Тест попугаев при всей его попугаистости, писался не с бодуна и на основе опыта предшественника Dhrystone. Исходники теста доступны для изучения http://www.eembc.org/coremark/download.php . Можете лично откомпилировать и сравнить. Если у Вас вырожденные случаи типа 99% ногодрыжества, то это не проблемы теста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 3 ноября, 2015 Опубликовано 3 ноября, 2015 (изменено) · Жалоба Если у Вас вырожденные случаи типа 99% ногодрыжества, то это не проблемы теста. Наоборот. При 99-процентном ногодрыжестве вопросов не возникает. У M0 большинство инструкций 1-тактовые и ускорить без суперскалярности их невозможно. STR/LDR & STM/LDM на M0+ грубо такой же длительностью как в M0, если только не пишут в fastest GPIO (регион 0xa000xxxx). То есть общая растактовка в применении к 90% существующего кода - ТАКАЯ ЖЕ как и у M0. Откуда 50% и где факт? Или неописанная особенность M0 STR/STM на нечётных по маске 0x02 адресах RAM тоже "прогибает" (участвует в учёте) относительное ускорение M0+ ? Среднестатистически таких инструкций много в среднестатистическом коде. Но 99% кода обычно исполняется из флэш. Факта экономии энергии за счет полуторократного повышения производительности при той-же тактовой это не изменит. Этот факт убежал вперёд паровоза. Сперва надо доказать факт "полуторократного повышения производительности". И обозначить прицеп оговорок. Изменено 4 ноября, 2015 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 3 ноября, 2015 Опубликовано 3 ноября, 2015 · Жалоба О чем Вы "спорите" мне неведомо. Я только указал на то, что здесь http://electronix.ru/forum/index.php?showt...t&p=1377925 Вы ляпнули ерунду. Я считаю, что ляпнули именно вы. По-вашему, увеличение производительности равно уменьшению потребления? Именно такую галиматью вы отстаиваете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 3 ноября, 2015 Опубликовано 3 ноября, 2015 · Жалоба Я считаю, что ляпнули именно вы. По-вашему, увеличение производительности равно уменьшению потребления? Именно такую галиматью вы отстаиваете. То что я написал совершенно не трудно прочитать в прямом изложении а не пытаться извращать написанное в меру своего, скажем так, непонимания. Этот факт убежал вперёд паровоза. Сперва надо доказать факт "полуторократного повышения производительности". И обозначить прицеп оговорок. С этим Вам жаловаться во всемирную лигу сексупльных реформ на компанию ARM, которая официально выдала эти цифры по результатам совершенно конкретных ПРИЗНАННЫХ (не Вами, конечно :) ) и ОТКРЫТЫХ для изучения тестов производительности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 3 ноября, 2015 Опубликовано 3 ноября, 2015 · Жалоба zltigo, специально для вас с сайта ARM. Performance Efficiency CM0 2.33 CoreMarks/MHz CM0+ 2.46 CoreMarks/MHz По-вашему, это в 1,5 раза? Посчитаю для вас: 1,056... Найдете сами на сайте. Так что ваше "прямое изложение" тоже слегка хромает. Двухтактовый конвейер означает, что больше операций будет сделано за такт. Следовательно, нельзя будет поднять тактовую частоту до уровня трехтактового конвейера. То есть, он хорош для низкопроизводительных устройств. Между прочим, у CM7 конвейер 6-тактовый. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 3 ноября, 2015 Опубликовано 3 ноября, 2015 · Жалоба CM0 2.33 CoreMarks/MHz CM0+ 2.46 CoreMarks/MHz По-вашему, это в 1,5 раза? Найдете сами на сайте. В данных NXP для 0 было 1.51. Ссылку давал. Так что ваше "прямое изложение" тоже слегка хромает. Не несите пургу. Речь я вел о качественных показателях которые приводят к снижению энергопотребления. Вот то, что Вас побудило к тому, что Вы назвали "спором": Это на самом деле одно и то же sm.gif - при большей производительности можно снизить тактовую или больше спать. ... повышение производительности НЕ за счет повышения тактовой поводит и к экономмии энергии Где Вам привидились хоть какие-то цифры? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 3 ноября, 2015 Опубликовано 3 ноября, 2015 · Жалоба Не несите пургу. Речь я вел о качественных показателях которые приводят к снижению энергопотребления. Вы вели? Оставлю без комментариев. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 3 ноября, 2015 Опубликовано 3 ноября, 2015 · Жалоба Вы вели? Да. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 4 ноября, 2015 Опубликовано 4 ноября, 2015 (изменено) · Жалоба В NXP чистокровным (и одноядерным) кортексам-M0 была присуща особенность - наличие только одного UART-а. У LPC81x их 3. А в LPC11U6x их 4. Других одноядерных M0+ от NXP пока не знаю. LPC122x имеет два UART-а. + Загадочную строчку о CoreMark. + Отличающуюся от всех официальных ядер растактовку. Всё-таки интересен вопрос, никто не встречал в описаниях от ARM или где-то в исходниках что-то похожее на код платформы x86, определяющий тип/возможности процессора, на котором код исполняется? Изменено 4 ноября, 2015 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 4 ноября, 2015 Опубликовано 4 ноября, 2015 · Жалоба Всё-таки интересен вопрос, никто не встречал в описаниях от ARM или где-то в исходниках что-то похожее на код платформы x86, определяющий тип/возможности процессора, на котором код исполняется? В M0 есть Usage-fault? Не работал с ними. Если есть - делаете обработчик этого исключения и пробуете выполнять команды поддерживаемые во всё более и более старших ядрах, пока не поймаете соответствующее исключение. Так сможете сориентироваться где вы находитесь внутри линейки Cortex-M. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 4 ноября, 2015 Опубликовано 4 ноября, 2015 · Жалоба В M0 есть Usage-fault? Не работал с ними. Если есть - делаете обработчик этого исключения и пробуете выполнять команды поддерживаемые во всё более и более старших ядрах, пока не поймаете соответствующее исключение. Так сможете сориентироваться где вы находитесь внутри линейки Cortex-M. ARM сообщает, что набор команд у CM0 и CM0+ одинаковый. Неужели производитель микроконтроллера не выдает информацию, на каком ядре тот сделан? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smalcom 0 4 ноября, 2015 Опубликовано 4 ноября, 2015 · Жалоба Неужели производитель микроконтроллера не выдает информацию, на каком ядре тот сделан? я бы сказал, что это смена поколений на форуме... нет, это сейчас тренд такой - даже опытные товарищи не хотят ничего читать. можно использовать старую фразу, которую применяют к видеопродукции сериального типа: скатился в ...ое ...но. :) LPC122x это Cortex-M0 или M0+? А ещё любят потрындеть, что трындят другие, потому сразу укажу, что говорит нам производитель сиих МК: LPC122x - M0 LPC43xx - M4F + M0 LPC11U6/LPC11E6 - M0+, остальные - M0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться