PorychikKize 4 7 октября, 2014 Опубликовано 7 октября, 2014 · Жалоба Пока только у М4 стала равна стм, с А5 пока все так же уныло... И все же очень интересно, как с производительностью A5? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 7 октября, 2014 Опубликовано 7 октября, 2014 · Жалоба И все же очень интересно, как с производительностью A5? Она меньше М4. Запускал линукс, пишет 256bogomips, сколько это в реальных мипсах - х.з, но явно больше, чем в моей проге. С чем это связано - незнаю, единственное, есть подозрение, что как-то неправильно подключаю кеш, т.к. при его подключении рост составляет 10%, а в случае М4 - увеличение в 4 раза! Второе - проц упорно не хочет работать на 168МГц, М4 в смысле, т.е прога пишет, что частота именно такая и есть, но работает как на 132. Линукс, кстати тоже только на 400\132 работает, может брачный камень у меня попался... Или мешает то, что прогу гружу через JTAG, т.к. видимо здесь нет никого, кто бы поделился, каким образом ее в нанд-флеш загрузить, или нехотят рассказывать. Через "задний проход"(убут, фтп-сетка и т.п.) я не пробовал, т.к. в убутах и его командах не особо разбираюсь... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZwergNase 0 7 октября, 2014 Опубликовано 7 октября, 2014 · Жалоба Линукс, кстати тоже только на 400\132 работает, может брачный камень у меня попался... Если у Вас на проце написано 0N02G, 1N02G или 2N02G, то у такого проца есть проблемы с генерацией 500 МГц в PLL. См. errata e6235 в атаче и здесь http://cache.freescale.com/files/32bit/doc...mp;fileExt=.pdf. VYBRID_0N02G_Errata.pdf VYBRID_1N02G.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 7 октября, 2014 Опубликовано 7 октября, 2014 · Жалоба Если у Вас на проце написано 2N02G, "Повезло", именно такой проц. Попробую задать, что там написали. Спасибо за информацию! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 8 октября, 2014 Опубликовано 8 октября, 2014 · Жалоба Вообщем решил я сегодня еще раз проверить, достал меня этот хренов камешек, если честно, но думаю, загружу-ка я свою прогу не в "особо быструю" статическую память, а в ДДР... По логике вещей, быстродействие в ДДР должно упасть в полтора-2 раза по сравнению свнутренней статикой, запускаю тест, в котором после 100 000 000 итераций производится вывод в уарт. Запускаю в статике, результат 1 сообщение за 11 секунд. Быстродействие на уровне СТМ32Ф4 на частоте 70 мегагерц!!! Причем частота А5 - 400 мегагерц - жуткий тормоз!! Ту же самую прогу гружу в ДДР, запускаю...... и чуть не падаю со стула!!! она БЫСТРЕЕ в 11 РАЗ!!! Вопрос - что за хренотень с этим камнем??? Такое впечатление, что весь он сплошная еррата... У кого есть какие мысли по этому поводу?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 9 9 октября, 2014 Опубликовано 9 октября, 2014 · Жалоба Ту же самую прогу гружу в ДДР, запускаю...... и чуть не падаю со стула!!! она БЫСТРЕЕ в 11 РАЗ!!! Вопрос - что за хренотень с этим камнем??? Такое впечатление, что весь он сплошная еррата... У кого есть какие мысли по этому поводу?? Мысль что у вас область SRAM объявлена некэшируемой. Так часто делают потому что в SRAM кладут критические данные которым кэширование мешает. Перетряхните настройки кэширования. в u-boot какие результаты ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 9 октября, 2014 Опубликовано 9 октября, 2014 (изменено) · Жалоба Мысль что у вас область SRAM объявлена некэшируемой. Так часто делают потому что в SRAM кладут критические данные которым кэширование мешает. Перетряхните настройки кэширования. в u-boot какие результаты ? Тогда стесняюсь спросить, а какая частота внутренней памяти?? Ну хорошо, пусть она некэшируемая, хотя настройки mmu в mqx говорят об обратном, неужели ее частота меньше частоты флеша в стм407?? И второе, что меня убивает, как такая медленная память может быть кэшем 2го уровня?? Мысли есть? По поводу убутов и прочего гнушного софта уже где-то писал - нет никакого желания и времени разгребать по 500 файлов, ставить виртуалки с линуксом и изучать все это чудо-юдо. Поэтому не зннаю как и что в нем проверять... Изменено 9 октября, 2014 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 9 9 октября, 2014 Опубликовано 9 октября, 2014 · Жалоба Тогда стесняюсь спросить, а какая частота внутренней памяти?? Ну хорошо, пусть она некэшируемая, хотя настройки mmu в mqx говорят об обратном, неужели ее частота меньше частоты флеша в стм407?? И второе, что меня убивает, как такая медленная память может быть кэшем 2го уровня?? Мысли есть? Документы изучать надо! DDI0246F_l2c310_r3p2_trm.pdf Table 1-1 Typical memory sizes and access times Processor registers 128B 1 cycle On-chip L1 cache 32KB 1-2 cycles On-chip L2 cache 256KB 8 cycles Main memory, L3, dynamic RAM ... 30-100 cycles 500MHz A5 / 8 = 62.5M обращения в L2 Далее VYBRIDRM.pdf OCRAM сидит на интерфейсе AXI, смотрим Table 62-1. OCRAM = platform bus. В описании тактирования смотрим что platform bus clock = cortex m4 clock. По поводу убутов и прочего гнушного софта уже где-то писал - нет никакого желания и времени разгребать по 500 файлов, ставить виртуалки с линуксом и изучать все это чудо-юдо. Поэтому не зннаю как и что в нем проверять... Чипы такого уровня сложности как уже писали "поле усеянное граблями, и грабли до горизонта". Производитель пишет bsp глядя совсем не в мануал где половины информации нет и порядка 30% переврано а в Verilog код чипа или имея доступ к работающей модели в симуляторе где можно посмотреть внутренние сигналы в чипе. Мы этого лишены, поэтому ничего не остается как курить сорцы bsp от производителя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 9 октября, 2014 Опубликовано 9 октября, 2014 · Жалоба Документы изучать надо! OCRAM сидит на интерфейсе AXI, смотрим Table 62-1. OCRAM = platform bus. В описании тактирования смотрим что platform bus clock = cortex m4 clock. Дак в том и дело, что читал! Только это не объсняет того, почему 32х разрядная статика, которая работает на 166 мегагерцах на порядок медленнее ДДР 400, которая 16 бит! Вот в чем вопрос... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psL 0 9 октября, 2014 Опубликовано 9 октября, 2014 · Жалоба u-boot это же bare-metal код, кто мешает посмотреть настройки в регистрах и забить их в любимый иар? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 9 октября, 2014 Опубликовано 9 октября, 2014 · Жалоба u-boot это же bare-metal код, кто мешает посмотреть настройки в регистрах и забить их в любимый иар? убут работает в статике?? ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psL 0 9 октября, 2014 Опубликовано 9 октября, 2014 · Жалоба убут работает в статике?? ;) где работает uboot без разницы, если "статика" в системе используется, она c большой степенью вероятности будет настраиваться в uboot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 9 10 октября, 2014 Опубликовано 10 октября, 2014 · Жалоба Дак в том и дело, что читал! Только это не объсняет того, почему 32х разрядная статика, которая работает на 166 мегагерцах на порядок медленнее ДДР 400, которая 16 бит! Вот в чем вопрос... Чтобы не гадать смотрите таблицу MMU, возможно стоит вывести дамп во время работы. Почти наверняка как: Медленная ддр с помощью кэша L1 превращается в реактивную и процессор работает со своей полной скоростью. 166 мегагерцовая OCRAM не кэшируется и тормозит быстрый процессор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 11 октября, 2014 Опубликовано 11 октября, 2014 · Жалоба Чтобы не гадать смотрите таблицу MMU Вы были правы, статика была некэшируемым регионом, поправил - стало работать быстрее, хотя все равно медленнее ДДР. Еще вопрос, для работы мму требуется таблица в памяти 4кб, где ее лучше размещать, чтоб работало быстрее, если вообще разница, где она находится, в статике или в ДДР? Сейчас я ее разместил в статике по адресу 0x3f00:0000, программа выполняется в ддр с базового адреса 0x8000:0000. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 9 12 октября, 2014 Опубликовано 12 октября, 2014 · Жалоба Вы были правы, статика была некэшируемым регионом, поправил - стало работать быстрее, хотя все равно медленнее ДДР. Кэш L2 включен ? Есть предположение что возможен конфликт между OCRAM и L2. Кэш контроллер копирует OCRAM -> L2 и потом L2 -> L1 используя один и тот же порт шины AXI. В случае ddr возможно используются разные порты шинного коммутатора и по этой причине работает быстрее. Попробуйте отключить L2 оставив L1 включенным. Вообще OCRAM не просто так объявлена некэшируемой. Туда обычно кладут volatile переменные доступ к которым требуется с минимальной латентностью. Еще вопрос, для работы мму требуется таблица в памяти 4кб, где ее лучше размещать, чтоб работало быстрее, если вообще разница, где она находится, в статике или в ДДР? Сейчас я ее разместил в статике по адресу 0x3f00:0000, программа выполняется в ддр с базового адреса 0x8000:0000. Для начала разместите в статике а по уму надо смотреть исходники линукс - таблица MMU может разрастаться если диспетчер памяти будет выделять 4кб страницы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться