Перейти к содержанию
    

LPC122x это Cortex-M0 или M0+?

Энергопотребление это характеристика софтом не прощупываемая. Зависит и от техпроцесса. А на уровне софта эти ядра отличаются точно.

 

Сравнил в реале LPC1227 rev A и LPC812.

1. У LPC812 переходы на такт короче (2 вместо 3). И нет зависимости STR/STM от нечётного адреса инструкции в RAM, равно как и у LPC1227.

2. У LPC812 есть однотактовая GPIO. LPC1227 падает в исключение при чтении этой области.

3. У LPC812 есть VTOR и отличаются CPUID.

 

Самое серьёзное отличие - первое. Последнее - самое косвенное по отношению к ядру.

 

При наличии в проекте асм-кода, формирующего строгие тайминги, было бы очень кстати иметь асм-функцию сверяющую суммарную растактовку последовательности каких-то инструкций. Чтобы девайс в принципе не мог выдать тайминги вне разрешённого диапазона. Например, на неподходящем камне/ревизии.

Изменено пользователем GetSmart

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не знаю как там у CM0+, а у STM32L4xx в "Shutdown mode" потребление всего 30 нА.

У MSP430 порядка 100 нА (правда с "RAM Retention").

То, что есть у MSP430 и чего нет у массы всяких декларируемых как супер-пупер-пико-нано потребляющих ядер, это ориентированой на микропотребление пеерферии способной работатать и автомномно, напимер по DMA. MSP очень сбалансированный контроллер ИЗНАЧАЛЬНО.

Ну и дальше процедура просыпания у многих "рекордсменов" зачастую очень громоздка по времени и соответственно по энергии :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Факта экономии энергии за счет полуторократного повышения производительности при той-же тактовой это не изменит.

В каких последовательностях инструкций это проявляется? Когда вся прога из переходов (B | Bxx) и когда они вперемешку с вводом/выводом в GPIO ? Какая-то среднестатистическая программа без учёта ногодрыга хоть на 5% будет быстрее? Без сна конечно же.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В каких последовательностях инструкций это проявляется?

Как минимум в тех, которые используются в тесте. Тест попугаев при всей его попугаистости, писался не с бодуна и на основе опыта предшественника Dhrystone. Исходники теста доступны для изучения http://www.eembc.org/coremark/download.php . Можете лично откомпилировать и сравнить.

Если у Вас вырожденные случаи типа 99% ногодрыжества, то это не проблемы теста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если у Вас вырожденные случаи типа 99% ногодрыжества, то это не проблемы теста.

Наоборот. При 99-процентном ногодрыжестве вопросов не возникает. У M0 большинство инструкций 1-тактовые и ускорить без суперскалярности их невозможно. STR/LDR & STM/LDM на M0+ грубо такой же длительностью как в M0, если только не пишут в fastest GPIO (регион 0xa000xxxx). То есть общая растактовка в применении к 90% существующего кода - ТАКАЯ ЖЕ как и у M0. Откуда 50% и где факт?

 

Или неописанная особенность M0 STR/STM на нечётных по маске 0x02 адресах RAM тоже "прогибает" (участвует в учёте) относительное ускорение M0+ ? Среднестатистически таких инструкций много в среднестатистическом коде. Но 99% кода обычно исполняется из флэш.

 

Факта экономии энергии за счет полуторократного повышения производительности при той-же тактовой это не изменит.

Этот факт убежал вперёд паровоза. Сперва надо доказать факт "полуторократного повышения производительности". И обозначить прицеп оговорок.

Изменено пользователем GetSmart

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

О чем Вы "спорите" мне неведомо. Я только указал на то, что здесь http://electronix.ru/forum/index.php?showt...t&p=1377925 Вы ляпнули ерунду.

Я считаю, что ляпнули именно вы. По-вашему, увеличение производительности равно уменьшению потребления? Именно такую галиматью вы отстаиваете. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я считаю, что ляпнули именно вы. По-вашему, увеличение производительности равно уменьшению потребления? Именно такую галиматью вы отстаиваете. :biggrin:

То что я написал совершенно не трудно прочитать в прямом изложении а не пытаться извращать написанное в меру своего, скажем так, непонимания.

Этот факт убежал вперёд паровоза. Сперва надо доказать факт "полуторократного повышения производительности". И обозначить прицеп оговорок.

С этим Вам жаловаться во всемирную лигу сексупльных реформ на компанию ARM, которая официально выдала эти цифры по результатам совершенно конкретных ПРИЗНАННЫХ (не Вами, конечно :) ) и ОТКРЫТЫХ для изучения тестов производительности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

zltigo, специально для вас с сайта ARM.

Performance Efficiency

 

CM0 2.33 CoreMarks/MHz

CM0+ 2.46 CoreMarks/MHz

 

По-вашему, это в 1,5 раза? Посчитаю для вас: 1,056...

Найдете сами на сайте.

Так что ваше "прямое изложение" тоже слегка хромает.

 

Двухтактовый конвейер означает, что больше операций будет сделано за такт. Следовательно, нельзя будет поднять тактовую частоту до уровня трехтактового конвейера. То есть, он хорош для низкопроизводительных устройств. Между прочим, у CM7 конвейер 6-тактовый.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

CM0 2.33 CoreMarks/MHz

CM0+ 2.46 CoreMarks/MHz

 

По-вашему, это в 1,5 раза?

Найдете сами на сайте.

В данных NXP для 0 было 1.51. Ссылку давал.

Так что ваше "прямое изложение" тоже слегка хромает.

Не несите пургу. Речь я вел о качественных показателях которые приводят к снижению энергопотребления. Вот то, что Вас побудило к тому, что Вы назвали "спором":

Это на самом деле одно и то же sm.gif - при большей производительности можно снизить тактовую или больше спать.

...

повышение производительности НЕ за счет повышения тактовой поводит и к экономмии энергии

Где Вам привидились хоть какие-то цифры?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не несите пургу. Речь я вел о качественных показателях которые приводят к снижению энергопотребления.

Вы вели? Оставлю без комментариев.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В NXP чистокровным (и одноядерным) кортексам-M0 была присуща особенность - наличие только одного UART-а. У LPC81x их 3. А в LPC11U6x их 4. Других одноядерных M0+ от NXP пока не знаю.

 

LPC122x имеет два UART-а. + Загадочную строчку о CoreMark. + Отличающуюся от всех официальных ядер растактовку.

 

Всё-таки интересен вопрос, никто не встречал в описаниях от ARM или где-то в исходниках что-то похожее на код платформы x86, определяющий тип/возможности процессора, на котором код исполняется?

Изменено пользователем GetSmart

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё-таки интересен вопрос, никто не встречал в описаниях от ARM или где-то в исходниках что-то похожее на код платформы x86, определяющий тип/возможности процессора, на котором код исполняется?

В M0 есть Usage-fault? Не работал с ними. Если есть - делаете обработчик этого исключения и пробуете выполнять команды поддерживаемые во всё более и более старших ядрах,

пока не поймаете соответствующее исключение. Так сможете сориентироваться где вы находитесь внутри линейки Cortex-M.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В M0 есть Usage-fault? Не работал с ними. Если есть - делаете обработчик этого исключения и пробуете выполнять команды поддерживаемые во всё более и более старших ядрах,

пока не поймаете соответствующее исключение. Так сможете сориентироваться где вы находитесь внутри линейки Cortex-M.

ARM сообщает, что набор команд у CM0 и CM0+ одинаковый.

Неужели производитель микроконтроллера не выдает информацию, на каком ядре тот сделан?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неужели производитель микроконтроллера не выдает информацию, на каком ядре тот сделан?

я бы сказал, что это смена поколений на форуме... нет, это сейчас тренд такой - даже опытные товарищи не хотят ничего читать. можно использовать старую фразу, которую применяют к видеопродукции сериального типа: скатился в ...ое ...но. :)

 

LPC122x это Cortex-M0 или M0+?

А ещё любят потрындеть, что трындят другие, потому сразу укажу, что говорит нам производитель сиих МК:

LPC122x - M0

LPC43xx - M4F + M0

LPC11U6/LPC11E6 - M0+, остальные - M0.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...