Jump to content

    

NXP выложил инфу на 1 ГГц Cortex-M7 + M4

22 минуты назад, dimka76 сказал:

А толку работать по SPI ?

Если скорость по SPI существенно ниже быстродействия ядра.

Если следовать Вашей логике, то какой толк работать из FLASH (в тех МК где она есть встроенная)? Ведь "её скорость существенно ниже быстродействия ядра".

Но почему-то все работают....

Цитата

С точки зрения производительности как раз выгоднее держать всю программу в ОЗУ. Благо его предостаточно.

Посмотрите на блок-схему этого МК. Увидите там кеши.

Всё определяется прикладной задачей: что-то можно скопировать в ОЗУ (отдельные участки), что-то - выполнять напрямую из SPIFI. Эти подходы можно смешивать в одной программе. Точно так же как и с внутренним флешем.

Share this post


Link to post
Share on other sites
10 часов назад, jcxz сказал:

Он позволяет выполнять код напрямую из памяти, подключенной по SPI...

Видел небольшой ролик на тему SPIFI у NXP.

Внешняя флешка это, конечно, здорово. Только, как я понимаю, теперь девайсы, выполняющие код непосредственно из такой флешки, стало еще проще скопипастить.

Share this post


Link to post
Share on other sites
23 минуты назад, Arlleex сказал:

Внешняя флешка это, конечно, здорово. Только, как я понимаю, теперь девайсы, выполняющие код непосредственно из такой флешки, стало еще проще скопипастить.

Почему? Мануал не смотрел, но думаю там есть возможность шифрования и расшифровки "на лету" подгружаемых данных. По ключу хранимому в МК.

Share this post


Link to post
Share on other sites
20 часов назад, Arlleex сказал:

Внешняя флешка это, конечно, здорово. Только, как я понимаю, теперь девайсы, выполняющие код непосредственно из такой флешки, стало еще проще скопипастить.

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

В 04.10.2019 в 14:24, jcxz сказал:

Если следовать Вашей логике, то какой толк работать из FLASH (в тех МК где она есть встроенная)? Ведь "её скорость существенно ниже быстродействия ядра".

Не совсем корректное утверждение, ибо для встроенного флеша есть довольно "жирный" ускоритель, в котором есть собственное кэширование и очень широкая параллельная шина...

Edited by mantech

Share this post


Link to post
Share on other sites
4 часа назад, mantech сказал:

Не совсем корректное утверждение, ибо для встроенного флеша есть довольно "жирный" ускоритель, в котором есть собственное кэширование и очень широкая параллельная шина...

Вы посмотрите на размер кеша в МК из шапки темы. И подумайте какова будет вероятность кеш-промаха. Так что - пускай даже SPIFI будет несколько медленнее чем внутренняя флешь, но влияние этого на общую производительность будет незначительно.

Я думаю - в NXP не дураки сидят, раз сделали такую архитектуру. Наверняка они просчитали + и - внутреннего флешь по сравнению с flash-less-чипом, в котором освободившуюся площадь кристалла можно использовать для большего объёма ОЗУ. Это дополнительное ОЗУ даст значительный выигрыш в скорости, по сравнению со случаем если бы вместо него сделали бы flash.

 

PS: Как пишут в мануале - в этом МК уже octal-SPI, а если он ещё будет поддерживать и DDR-режим чтения, то по скорости он будет уже мало уступать встроенным флешам. А может и вообще не будет уступать. Хотя там нет слова "SPIFI", но не думаю, что в чипе не будет его возможностей.

Share this post


Link to post
Share on other sites

Тут вопрос может быть ещё и в том, доступен ли embedded flash на том процессе, на котором выпущен этот микроконтроллер, и если доступен, то насколько заоблачна его цена.

Share this post


Link to post
Share on other sites

Корпус BGA?  - Всё портит!

 

НО:

 

Arm Cortex-M7 @ 1 GHz + Arm Cortex-M4 @ 400 MHz  - Cortex-M да ещё и на 1 ГГц ???  Что у них с открытостью документации? Шина на внешнюю память выведена? Что с кешированием памяти? MMU есть? Что с Эрратой?  А то помнится в самых первых LPCxxxx внешняя память из-за эрраты только на данные работала без исполнения кода.

 

Что с документацией и СДК ? - открыты или нет.

 

С графической подсистемой как -открыта или зажата под NDA ?

 

QSPI - Это синхронная 4 битная шина как понимаю, наверно будут тормоза даже с кешированием если код оттуда исполнять.

 

Нужна нормальная Фон-Неймановская машина полностью открытая и документированная!

 

Что им мешало запихать 64 МБ DDR прямо в чип или приварить его вторым кристаллом???  Лучше бы вместо второго хилого ядра M4 память DDR добавили как в v3s

 

P.S. скорее всего чип попадёт под ограничения из-за наличия Security-блоков, в Россию обычным гражданам не пустят!

 

P.P.S.  Документации не нашёл на их сайте.   То что лежит под названием "IMXRTPORTFS.pdf" - это не документация, а скорее бравада о том какие они (NXP) - молодцы!  Где доки с описанием периферии - регистры, разбитовка, конвеер ?   Аппноты,   СДК на C99 ?

Edited by __inline__

Share this post


Link to post
Share on other sites
4 часа назад, __inline__ сказал:

P.P.S.  Документации не нашёл на их сайте.   То что лежит под названием "IMXRTPORTFS.pdf" - это не документация, а скорее бравада о том какие они (NXP) - молодцы!  Где доки с описанием периферии - регистры, разбитовка, конвеер ?   Аппноты,   СДК на C99 ?

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

4 часа назад, __inline__ сказал:

Что им мешало запихать 64 МБ DDR прямо в чип или приварить его вторым кристаллом???  Лучше бы вместо второго хилого ядра M4 память DDR добавили как в v3s

С графической подсистемой как -открыта или зажата под NDA

Судя по всего 2 МБ встроенной памяти и старой СДРАМ, чип ориентирован на поделки с экранчиками со спичечный коробок, так что на что-то по-серьезнее особо не рассчитывайте. Ну и при работе с такими экранчиками, видеоускорители больно-то и не нужны и так все "летает"... 

ЗЫ. Судя по описанию, там "ускоритель" - это pixelpipeline - что-то вроде ДМА2Д.

4 часа назад, __inline__ сказал:

QSPI - Это синхронная 4 битная шина как понимаю, наверно будут тормоза даже с кешированием если код оттуда исполнять.

Как и в любом закэшированном девайсе - тормоза при первоначальной загрузке, а циклический код далее кэшируется.

11 часов назад, falling_stone сказал:

Тут вопрос может быть ещё и в том, доступен ли embedded flash на том процессе, на котором выпущен этот микроконтроллер

Да скорее всего доступен и не заоблачный. Лицензии, конторы, подобные NXP, сами разрабатывают и продают, поэтому они у них есть, просто тренд такой - внешние флеши, считается, что в конечном виде так дешевле. В принципе наверно правильно, ИМХО, лучше встраивать ОЗУ, с которым куча гемора при разводке, чем флешка с 6ю линиями, жаль, что тут большое ОЗУ не встроено.

Edited by mantech

Share this post


Link to post
Share on other sites
4 часа назад, __inline__ сказал:

QSPI - Это синхронная 4 битная шина как понимаю, наверно будут тормоза даже с кешированием если код оттуда исполнять.

Вы бы хоть почитали выложенный pdf. Там сказано про "octal-SPI". Может даже с DDR (надеюсь). По скорости выполнения - будет примерно то же, что и из внутреннего флеша. См. выше мои посты.

А значит - если в LPC43xx с его SCLK <=102 МГц максимальная скорость чтения flash была около 50 МБ/с, то здесь стоит ждать кратного роста.

 

Цитата

То что лежит под названием "IMXRTPORTFS.pdf" - это не документация, а скорее бравада о том какие они (NXP) - молодцы!  Где доки с описанием периферии - регистры, разбитовка, конвеер ?   Аппноты,   СДК на C99 ?

Это же пререлиз. Всё будет, но позже. Чип ещё допиливается, думаю.

Share this post


Link to post
Share on other sites
57 минут назад, jcxz сказал:

LPC43xx с его SCLK <=102 МГц максимальная скорость чтения flash была около 50 МБ/с,

Это теоретическая скорость линейного чтения, без передачи информации адреса и т.п. что в программе бывает не так уж часто. Это примерно, как с СД картами, по теории должно быть 12Мбайт в сек, при клоке 25 МГц, по факту 4-5 Мбайт...

Share this post


Link to post
Share on other sites
4 часа назад, mantech сказал:

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

Почему "не так уж часто"? Наоборот - как раз произвольные выборки по случайным адресам - это бывает редко (если разговор про исполнение кода).

Вы думаете у вас линейно-исполняемый код случайным образом по памяти разбросан? :wink:  Как раз нет - код и константы (для этого кода) обычно находятся рядом. И кеш-контроллер наверняка читает не побайтно из такой памяти, а целыми строками кеша. И в случае линейного выполнения кода (или близкого к нему, с короткими ветвлениями) адрес и код команды можно не передавать.

Сравнение SPI-flash с SD-картами - совершенно некорректно. Так как с SPI-flash можно легко приостановить тактирование SCLK в любой момент. Например если текущая строка кеша заполнена и следующая предсказанная строка - тоже заполнена, CPU крутится в цикле не выходя за их границы - останавливаем SCLK (не снимая CS). Как только CPU выйдет из цикла и начнёт выполнять код из крайней строки кеша, контроллер SPIFI может уже начать читать следующую, просто возобновив SCLK. Ему не нужно ждать готовности перед каждым сектором как в случае с SD-картой. Интерфейс SPI-flash гораздо менее латентный чем SD. Почитайте доки на них, посмотрите диаграммы.

 

Но даже если происходит чтение с произвольного адреса, не смежного с предыдущим, то затраты тоже будут не такие уж большие. Если предположить, что строка кеша будет длиной скажем 16 байт, то это потребует 12+32 клока на чтение всего блока (чип S25FL512S, команда "QUAD I/O READ", без учёта активации/деактивации CS). Т.е. - накладные расходы на старт чтения с произвольного адреса всего 12/32*100 = ~38%, а не как не 200% как вы пишете.

Share this post


Link to post
Share on other sites
17 часов назад, falling_stone сказал:

Тут вопрос может быть ещё и в том, доступен ли embedded flash на том процессе, на котором выпущен этот микроконтроллер, и если доступен, то насколько заоблачна его цена.

Решение flash-less - совершенно правильное. Например у меня за последние >10лет практики не было ни одного проекта без внешней flash. Так что - даже дополнительного чипа в устройстве не нужно - храним программу вместе с данными в одном чипе. И не имеем (почти) ограничений на её размер.

Встроенная флешь - это для медленных дешёвых МК.

Share this post


Link to post
Share on other sites

С недоверием отношусь к сомнительным инноваторствам в области урезания разрядности шины для памяти, в которой лежит исполняемый код.

 

Оно будет и впрямь быстрее работать, чем 16 битная SDRAM на 152 МГц при CL=3 ?   С включенным кешированием, разумеется.

 

Если меделенее, тогда фтопку.... При таком раскладе, можно вообще докатиться что код будет исполняться по USB или витой паре :)

 

Чтобы увеличить пропускную способность памяти - увеличивают разрядность шины данных.  А эти наоборот её урезают...

Edited by __inline__

Share this post


Link to post
Share on other sites
25 минут назад, __inline__ сказал:

Оно будет и впрямь быстрее работать, чем 16 битная SDRAM на 152 МГц при CL=3 ? 

Тут очень сильно еще зависит от реализации самого контроллера памяти, плюс с какой длиной burst-пакетов он может работать и т.д. В конечном итоге лучше все-таки работать с встроенной памятью на кристалле 2МБайта - это очень много для программы, а мало для видео...

1 час назад, jcxz сказал:

Как раз нет - код и константы (для этого кода) обычно находятся рядом

Есть еще память данных, которая в совсем другой области находится...

1 час назад, jcxz сказал:

Встроенная флешь - это для медленных дешёвых МК.

Мне б пригодилась встроенная флешь - очень хорошо для кастомных загрузчиков.

1 час назад, jcxz сказал:

храним программу вместе с данными в одном чипе. И не имеем (почти) ограничений на её размер.

ИМХО - плохое решение, ибо при любой нештатке(ошибки, питание и пр...) можно затереть программный код и аля - да здравствует "кирпичик"... Да и перезаписи у этих флешек ограничены...

Вот по мне, дак имеем мелкй встроенный флеш(64-128Кбайт), пишем туда загрузчик, а прогу куда захочется (SPI-флеш, SD карта и пр...) и получаем хорошую надежность и удобство работы.

Edited by mantech

Share this post


Link to post
Share on other sites

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

Edited by __inline__

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now