Кстати вроде в каких-то китайских клонах STM32 флеха оформленная отдельным кристаллом быстрее работает. На уровне физики флеха - массив полевиков с изолированным затвором, где заряд "пойман", при чтении определяется открыт полевик из-за заряда пойманного в затворе или нет.
Это может иметь экономический эффект при очень большом флеше. Иначе на корпусировке проиграешь. Если есть флеш - пластины идут по другому тех процессу с дополнительным слоем. если флеша не присутвует - он не нужен. Наличие флеша - сразу плюс деньги на всю пластину. А больше всего по площади в современных MPU занимает кеш.
Поэтому много кеша и флеш одновременно на одном кристалле практически не увидишь. Если делаются какие то гибриды где и ядро с кешом, и флеш есть - всегда бутерброд чип над чипом.
Это может иметь экономический эффект при очень большом флеше. Иначе на корпусировке проиграешь.
Это китайский парадокс - продают multi-chip package клоны даже дешевле оригинала. Это они так F103 клонировали, кто-то вскрывал, оказался отдельный чип флеша. У китайцев судя по всему нет доступных техпроцессов позволяющих флеш с процом паковать в 1 кристалл. Вот они и склонировали как умели, с дискретной флехой в том же корпусе.
А что до кэша - обычно это SRAM, место на кристалле жрет. Зато ускоряет хорошо. Чем больше кэш тем больше кода в него уместится и тем чаще он будет срабатывать. Что может дать очень сильный эффект. Гонял как-то сжатие на скорость и сдуру распаковывал 1 блок 20 раз в одно назначение. Случился cache hit, я получил космические скорости. Ускорение относительно крейсерской скорости - раз в пять! В моем случае это обманка, но есть много случаев когда это хорошо работает. Что до флеша - флеш на сильно быстрые чипы не любят ставить может быть еще и потому что они довольно горячие. При нагреве флеш начинает утекать намного быстрее. Если флеш хорошенько прожарить - он вообще сотрется. Я пару раз случайно проверял, не понравилось :\.
А что до разрядности - упс, я тупанул и подумал что на порту будут все состояния меняться. А как бы не так, не будут.
Это китайский парадокс - продают multi-chip package клоны даже дешевле оригинала. Это они так F103 клонировали, кто-то вскрывал, оказался отдельный чип флеша. У китайцев судя по всему нет доступных техпроцессов позволяющих флеш с процом паковать в 1 кристалл. Вот они и склонировали как умели, с дискретной флехой в том же корпусе.
Не забывай, что у китайцев всякие ручные и нестандартные этапы в производстве стоят намного меньше, чем у именитых производителей. Там, где какому нибудь интелу всю систему менять, эти посадят пару сотен китайцев с микроскопами и приспособами -)) А конкретно с F103 - может у них просто есть поставщик готовых совершенно копеечных флешовых кристаллов.
Зато ускоряет хорошо. Чем больше кэш тем больше кода в него уместится и тем чаще он будет срабатывать.
SDRAM без кеша совсем бесполезен. Там в 10 раз падение скорости - не рекорд. Сдрам по сути пакетный и латентность дикая. Ессно без кеша MPU уж десяток-другой лет просто не найдешь.
Не забывай, что у китайцев всякие ручные и нестандартные этапы в производстве стоят намного меньше, чем у именитых производителей.
Представил себе картину - китайцы вручную multi-chip делают . На самом деле западные производители местами подзажрались и встряска им не повредит. Ti например вдарился в откровенный overengineering. Наворачивая какие-то нафигнужности которые систему и bring-up усложнают в разы а ценных качеств, например, проиводительности - не добавляют. В результате геморроя много, толку мало. Наверное так делать чипы все-же не надо и поделом что вынесло из кучи сегментов. Ну вот честно, какой-нибудь IOMMU в таком чипе лучше всего справляется с задачей вытрахивания мозга системщикам. А так по жизни он нафиг не нужен в подобных чипах. Ну то-есть при переклине на DRM конечно можно бояться что контент сопрут не только с экрана но и откуда там еще сдампят. Но столько траха ради столь незначительной цели - себя не очень оправдывает. Юзер за 2 минуты наставит фотоаппарат и положит на все эти IOMMU... свой объектив.
Цитата:
Там, где какому нибудь интелу всю систему менять, эти посадят пару сотен китайцев с микроскопами и приспособами -))
С другой стороны - работа для пары сотен китайцев. Дешевые чипы - для покупателей. Как по мне пусть хоть марсиане собирают, если это проблем не вызывает.
Цитата:
А конкретно с F103 - может у них просто есть поставщик готовых совершенно копеечных флешовых кристаллов.
Да вот черт их знает как они такую магию смогли. Но на месте западных производителей я бы понервничал, потому что быстрее и за меньгие деньги.
Цитата:
Ячейки те же самые. А всякая разводка, топология, обвызяки - выборка там площадь в разы от регулярного СРАМа раздвувают.
Ну да, поэтому влезает несколько мегов как максимум а кристалла расходуется огого.
Цитата:
SDRAM без кеша совсем бесполезен. Там в 10 раз падение скорости - не рекорд. Сдрам по сути пакетный и латентность дикая. Ессно без кеша MPU уж десяток-другой лет просто не найдешь.
Я выключал кэш на старых компьютерах. Так пентиум становился примерно 286. И программы от борланда переставали валиться с runtime error 200...
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Заголовок сообщения: Re: Объясните на предмет АЦП из портов
Добавлено: Ср фев 14, 2018 23:16:43
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
Многоуровневый кеш - это от безысходности, как компромисс. С SRAMом не сравниться. Могу показать интересную статистику. Алгоритм один и тот же (ГОСТ ессно -)) ), далее показатель в попугаях приведенных на Мгц
M7 кроме того что ядро офигенное (там и по ТТХ АРМовскому DMIPS/Mhz круче любый 32битных 'A'), код в флеше за нормальным L1 кешем, в качестве оперативки SRAM. Последние 2 с L1/L2 кешом и DDR2 на 1/2 и 1/3 частотах ядра соотв.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Многоуровневый кеш - это от безысходности, как компромисс. С SRAMом не сравниться.
Увы, прогресс в скорости работы процессоров обогнал прогресс в улучшении памяти. Это уже давно так и в ближайшем времени кажется так и останется. Поэтому извращаются с кэшами, программисты греют мозги неочевидными вещами, которые явно или не контролируются или если все же контролируются, оказывается что это большая дыра в безопасности.
Цитата:
Могу показать интересную статистику. Алгоритм один и тот же (ГОСТ ессно -)) ), далее показатель в попугаях приведенных на Мгц
И правда, интересная статистика. Жаль что по алгоритму который мне никогда не понадобится. Насколько эти соотношения зависят от конкретного алгоритма? А также компилера и оптимизаций. Ну и подборка ядер у вас специфичная все-таки.
Я поприкалывался с чем-то таким но только на M3, с кодом ReedSolomon (сперт с порта известной либы RS на DSPic), кодируя пакет (223,255) и посмотрел на дефолтном 8MHz везде 0WS, из флеша - Что будет с -O0, -O2, -O3 и -Os. На предмет размер кода vs скорость. - Все то же самое но набор команд m0 - Два варианта компилеров - arm-eabi-none и armhf (как ни странно он оказался ок для m3, хоть там и нет никакой плавучки, было интересно прокатит ли, прокатило). Конечно же оба gcc.
Потом я задолбался из-за комбинаторики. Если будет не лень - посмотрю RAM vs ROM vs wait states на предмет скоростей, потому что соотношения более-менее уловил . Запуск кода m0 на m3 не совсем репрезентативен, но настоящего m0 у меня под рукой не было, только m3 всех мастей и направлений.
Общие идеи - даже злой уровень O3 не так уж сильно раздувает код, зато работает на 30-40% быстрее чем size-optimized. Сборка без оптимизации не рулит. O2 хороший компромисс по скорости (почти как O3) при том что код распуает меньше.
По набору команд - код m0 получался чуть мельче при прочих равныз, но вот скорость его работы - это фэйл, проигрыш минимум на треть. За сам факт набора команд.
Цитата:
M7 кроме того что ядро офигенное (там и по ТТХ АРМовскому DMIPS/Mhz круче любый 32битных 'A'), код в флеше за нормальным L1 кешем, в качестве оперативки SRAM. Последние 2 с L1/L2 кешом и DDR2 на 1/2 и 1/3 частотах ядра соотв.
Говоря за себя - мне его такой просто некуда девать. От микроконтроллера мне столько не надо, а для линукса у меня и покруче штуки есть. Где вся система в сборе чего доброго стоит меньше чем один такой микроконтроль.
Заголовок сообщения: Re: Объясните на предмет АЦП из портов
Добавлено: Чт фев 15, 2018 16:03:43
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
у меня все одним компилятором с одинаковыми настройками. ну кроме A8 - там под линуксом, а не на голом железе. и компилер не IAR, а GNU На голом и IARе поди было бы повеселей чем A5 - 111 A8 - 116
GNU мутный. я даже забивал ему реальную длину строки кеша, там и такое есть. видимо для выравнивания данных. но лучший вариант достигался при вдвое меньшем значении, чем длина на самом деле. Так же как автовекторизация под NEON давала резкое торможение. Ну и еще ряд похожих фокусов -)
И правда, интересная статистика. Жаль что по алгоритму который мне никогда не понадобится. Насколько эти соотношения зависят от конкретного алгоритма?
Это уже было не шифрование, а ЭЦП. Считай целочисленная математика с длинными числами. Восновном умножения и сложения, средней интенсивности работа с таблицам
у меня все одним компилятором с одинаковыми настройками.
А набор команд при этом какой? Наилучший для конкретного процессора?
Цитата:
На голом и IARе поди было бы повеселей чем
Вилами по воде писано. Если gcc уделять столько же внимания сколько другим - в скоростной либе сжатия LZ4 gcc возьми и сделай вьюжлстудию, фаны которой годами рассказывали про оптимизации. Там автор играл честно и уперся выжать максимум из всех. В таких условиях gcc студию сделал и никто так и не придумал как студией его побить. Зато потом народ придумал как еще от 0 до 15% отыграть можно на вообще всем, автор и сделал. Коллективный разум штука крутая.
Цитата:
GNU мутный. я даже забивал ему реальную длину строки кеша, там и такое есть. видимо для выравнивания данных. но лучший вариант достигался при вдвое меньшем значении, чем длина на самом деле. Так же как автовекторизация под NEON давала резкое торможение. Ну и еще ряд похожих фокусов -)
Да обычный он. Насчет автовекторизации ничего не скажу, кому neon нужен обычно фигачат simd intrinsics в явном виде, выглядит более удачной идеей. Это не gcc-специфично даже, их понимают несколько компилеров (за IAR не скажу). Скорее процессоро-специфично: код соберется только если у target есть из чего изобразить запрошенные simd операции. Это весьма явное указание, компилер не может сильно дурить. Так сейчас наворачивают оптимизации в видеокодеках и прочем. Еще у GCC кроме safe оптимизациий есть unsafe. Они могут довольно весело все разогнать, если програмер готов к некоторым ограничениям и более параноидальной проверке работы кода. Это опасная бритва, можно порезаться. Но я себе несколько программ критичных к скорости так билдую. Да, приходится проверять. У культурных людей бывают тесты, с ними задача упрощается.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения