|
|
  |
Cortex-M7 кол-во циклов на инструкцию |
|
|
|
Apr 28 2017, 08:59
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 9-09-08
Из: РФ
Пользователь №: 40 076

|
Цитата(Шаманъ @ Apr 28 2017, 11:04)  А есть ли какой-нить инструмент, или хотя бы таблица по теме? Понимаю, что там конвейер со всеми делами, но как-то же нужно в этом всем ориентироваться? 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.
Сообщение отредактировал =SSN= - Apr 28 2017, 09:00
|
|
|
|
|
Apr 28 2017, 10:36
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Obam @ Apr 28 2017, 11:45)  но есть в DDI0337E (для М3) и фраза "Table 18-1 shows the Thumb-2 subset supported in the ARMv7-M architecture Так для М4 на сайте АРМ были тоже, но М7 по идее несколько иной "зверь". Цитата(=SSN= @ Apr 28 2017, 11:59)  Это очень уж лаконично  Похоже придется смотреть через DWT на реальном процессоре, неудобно однако...
|
|
|
|
|
Apr 28 2017, 11:00
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Цитата(Шаманъ @ Apr 28 2017, 14:36)  Так для М4 на сайте АРМ были тоже, но М7 по идее несколько иной "зверь". В TRM на M4 тоже нет таймингов Ну сами уж "supported in the ARMv7-M architecture" подчеркните (: DDI0403E.b применИм к M7? Всё… Не знаю, пользуетесь ли IAR-ом, там есть
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Apr 28 2017, 11:46
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Obam @ Apr 28 2017, 13:00)  Ну сами уж "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? Всё....
|
|
|
|
|
Apr 28 2017, 11:47
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(jcxz @ Apr 28 2017, 13:41)  ...если этот DWT в реальном процессоре есть  В том, который могу попытать есть  Цитата(Obam @ Apr 28 2017, 14:00)  В 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 получить не должно быть проблемой.
Сообщение отредактировал Шаманъ - Apr 28 2017, 11:48
|
|
|
|
|
Apr 28 2017, 12:13
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Цитата(Шаманъ @ Apr 28 2017, 15:47)  Поправка: действительно, в 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. ФСЁ! Так что, фраза гарантирует (;
Сообщение отредактировал Obam - Apr 28 2017, 12:28
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Apr 28 2017, 13:14
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(Шаманъ @ Apr 28 2017, 13:36)  Похоже придется смотреть через DWT на реальном процессоре, неудобно однако... Разрешите поинтересоваться, зачем? Я ещё могу понять, когда измеряется время выполнения участка кода, если уж очень сильно куда-то спешим и не успеваем. Но отдельные инструкции, Холмс? Цитата(Шаманъ @ Apr 28 2017, 14:47)  Как по мне, то эта фраза не гарантирует, что тайминги одинаковые. Да и не понятно какие инструкции в М7 могут быть выполнены параллельно. Точно помню, что есть отличия между M3 и M4. Но там мелочь какая-то была, грубо говоря, 99% одинаково.
|
|
|
|
|
Apr 28 2017, 13:41
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(scifi @ Apr 28 2017, 16:14)  Разрешите поинтересоваться, зачем? Я ещё могу понять, когда измеряется время выполнения участка кода, если уж очень сильно куда-то спешим и не успеваем. Но отдельные инструкции, Холмс?  Вы не поняли. Если бы у меня такой инструмент, как в ассемблере DSP56300, то я бы позанимался оптимизацией просто используя его (там и отдельные инструкции и общее кол-во тактов видно). Была бы бумажка-табличка, то для начала заглянул бы в нее, а так остается DWT, но естественно не для отдельных инструкций - конечная цель оптимизация нескольких критических кусков выполняющих DSP обработку. Сваял тестовый проект, через DWT все отлично видится в gdb. Вопрос наверное можно закрыть.
|
|
|
|
|
Apr 28 2017, 14:51
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 25-11-11
Пользователь №: 68 515

|
По хорошему надо бы ввести в архитектуру банки регистров, как в MIPS...тогда бы переключение контекста в многозадачности свелось бы к простому переключению нужного банка...все остальное-игрулечки-бирюлечки
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|