Шаманъ 1 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба Приветствую всех! А есть ли какой-нить инструмент, или хотя бы таблица по теме? Понимаю, что там конвейер со всеми делами, но как-то же нужно в этом всем ориентироваться? Например у DSP56300 можно скормить ассемблеру опцию и он в листинге дает кол-во циклов отдельной колонкой (учитывая конвееризацию и показывая возникающие простои конвейера). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 28 апреля, 2017 Опубликовано 28 апреля, 2017 (изменено) · Жалоба В TechRefMan-е на M7 раздела "Instruction Timing" нет, но есть в DDI0337E (для М3) и фраза "Table 18-1 shows the Thumb-2 subset supported in the ARMv7-M architecture." обнадёживает. В общем, гл. 18. Изменено 28 апреля, 2017 пользователем Obam Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=SSN= 0 28 апреля, 2017 Опубликовано 28 апреля, 2017 (изменено) · Жалоба А есть ли какой-нить инструмент, или хотя бы таблица по теме? Понимаю, что там конвейер со всеми делами, но как-то же нужно в этом всем ориентироваться? Wiki: Key features of the Cortex-M7 core are: ARMv7E-M architecture. 6-stage pipeline with branch speculation. Instruction sets: Thumb-1 (entire). Thumb-2 (entire). 32-bit hardware integer multiply with 32-bit or 64-bit result, signed or unsigned, add or subtract after the multiply. 32-bit hardware integer divide (2-12 cycles). Saturation arithmetic support. DSP extension: Single cycle 16/32-bit MAC, single cycle dual 16-bit MAC, 8/16-bit SIMD arithmetic. 1 to 240 interrupts, plus NMI. 12 cycle interrupt latency. Integrated sleep modes. Изменено 28 апреля, 2017 пользователем =SSN= Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Шаманъ 1 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба но есть в DDI0337E (для М3) и фраза "Table 18-1 shows the Thumb-2 subset supported in the ARMv7-M architecture Так для М4 на сайте АРМ были тоже, но М7 по идее несколько иной "зверь". Wiki: Это очень уж лаконично :) Похоже придется смотреть через DWT на реальном процессоре, неудобно однако... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба Похоже придется смотреть через DWT на реальном процессоре, неудобно однако... ...если этот DWT в реальном процессоре есть :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба Так для М4 на сайте АРМ были тоже, но М7 по идее несколько иной "зверь". В TRM на M4 тоже нет таймингов Ну сами уж "supported in the ARMv7-M architecture" подчеркните (: DDI0403E.b применИм к M7? Всё… Не знаю, пользуетесь ли IAR-ом, там есть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба Ну сами уж "supported in the ARMv7-M architecture" подчеркните (: DDI0403E.b применИм к M7? Всё… И что? Открываем ARM Cortex-M4 Technical Reference Manual, читаем "The DWT, if present, contains counters for:". May be present, or may be don't. Применимо к M7? Всё.... :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Шаманъ 1 28 апреля, 2017 Опубликовано 28 апреля, 2017 (изменено) · Жалоба ...если этот DWT в реальном процессоре есть :rolleyes: В том, который могу попытать есть :) В TRM на M4 тоже нет таймингов Я ж писал, что не в TRM, а не сайте АРМ - вот http://infocenter.arm.com/help/index.jsp?t...b/CHDIJAFG.html :) Ну сами уж "supported in the ARMv7-M architecture" подчеркните (: DDI0403E.b применИм к M7? Всё… Как по мне, то эта фраза не гарантирует, что тайминги одинаковые. Да и не понятно какие инструкции в М7 могут быть выполнены параллельно. Не знаю, пользуетесь ли IAR-ом, там есть Не, у меня все инструменты бесплатные :) - MS VS Code + GCC + GDB + OpenOCD, но доступ к DWT получить не должно быть проблемой. Изменено 28 апреля, 2017 пользователем Шаманъ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 28 апреля, 2017 Опубликовано 28 апреля, 2017 (изменено) · Жалоба Я ж писал, что не в TRM, а не сайте АРМ - вот http://infocenter.arm.com/help/index.jsp?t...b/CHDIJAFG.html :) Поправка: действительно, в DDI0439B есть только про LDR\STR и "This section describes how best to pair instructions to achieve more reductions in timing." (: Эт раз. Два: в DDI0337E (для M3) глава про тайминги есть, а в DDI0337H уже такой подробной нет, аналогично DDI0439B (п.3.3 Instruction set summary) Процы сложнее - дока кУцее и кУцее… Как по мне, то эта фраза не гарантирует, что тайминги одинаковые. Да и не понятно какие инструкции в М7 могут быть выполнены параллельно. Ну те что "Parallel arithmetic" Не, у меня все инструменты бесплатные :) Я тоже не внук рокфеллера… PS: заинтересовали. Качнул DDI0489D M7 TRM r1p1 - гениальный документ! Вот ВЕСЬ раздел 2.3 Instruction set summary The processor implements the ARMv7-M instruction set and features provided by the ARMv7E-M architecture profile. For more information about the ARMv7-M instructions, see the ARM®v7-M Architecture Reference Manual. ФСЁ! Так что, фраза гарантирует (; Изменено 28 апреля, 2017 пользователем Obam Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба Похоже придется смотреть через DWT на реальном процессоре, неудобно однако... Разрешите поинтересоваться, зачем? Я ещё могу понять, когда измеряется время выполнения участка кода, если уж очень сильно куда-то спешим и не успеваем. Но отдельные инструкции, Холмс? :laughing: Как по мне, то эта фраза не гарантирует, что тайминги одинаковые. Да и не понятно какие инструкции в М7 могут быть выполнены параллельно. Точно помню, что есть отличия между M3 и M4. Но там мелочь какая-то была, грубо говоря, 99% одинаково. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Шаманъ 1 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба Разрешите поинтересоваться, зачем? Я ещё могу понять, когда измеряется время выполнения участка кода, если уж очень сильно куда-то спешим и не успеваем. Но отдельные инструкции, Холмс? :laughing: Вы не поняли. Если бы у меня такой инструмент, как в ассемблере DSP56300, то я бы позанимался оптимизацией просто используя его (там и отдельные инструкции и общее кол-во тактов видно). Была бы бумажка-табличка, то для начала заглянул бы в нее, а так остается DWT, но естественно не для отдельных инструкций - конечная цель оптимизация нескольких критических кусков выполняющих DSP обработку. Сваял тестовый проект, через DWT все отлично видится в gdb. Вопрос наверное можно закрыть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
romas2010 1 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба По хорошему надо бы ввести в архитектуру банки регистров, как в MIPS...тогда бы переключение контекста в многозадачности свелось бы к простому переключению нужного банка...все остальное-игрулечки-бирюлечки Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба По хорошему надо бы ввести в архитектуру банки регистров, как в MIPS...тогда бы переключение контекста в многозадачности свелось бы к простому переключению нужного банка Банки регистров есть в классических ARM, например ARM7, ARM9. Только это никак не помогает переключению задач, а наоборот - переключение гораздо сложнее. Или Вы хотите количество банков по количеству задач? :beer: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Шаманъ 1 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба Народ, а есть ли какие-нить вменяемые benchmarks по части DSP фильтров/функций для Cortex-M7 на которые стоит ориентироваться? А то что-то везде одна реклама, как все хорошо, а хотелось бы конкретики типа столько-то тактов на 1tap FIR фильтра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба В том, который могу попытать есть :) Везёт Вам. У меня вот CM4, а в нём нету даже bitband :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться