реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Cortex-M7 кол-во циклов на инструкцию
Шаманъ
сообщение Apr 28 2017, 08:04
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 655
Регистрация: 27-08-08
Пользователь №: 39 839



Приветствую всех!

А есть ли какой-нить инструмент, или хотя бы таблица по теме? Понимаю, что там конвейер со всеми делами, но как-то же нужно в этом всем ориентироваться?

Например у DSP56300 можно скормить ассемблеру опцию и он в листинге дает кол-во циклов отдельной колонкой (учитывая конвееризацию и показывая возникающие простои конвейера).
Go to the top of the page
 
+Quote Post
Obam
сообщение Apr 28 2017, 08:45
Сообщение #2


Знающий
****

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



В TechRefMan-е на M7 раздела "Instruction Timing" нет, но есть в DDI0337E (для М3) и фраза "Table 18-1 shows the Thumb-2 subset supported in the ARMv7-M architecture." обнадёживает. В общем, гл. 18.

Сообщение отредактировал Obam - Apr 28 2017, 08:45


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
=SSN=
сообщение Apr 28 2017, 08:59
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 157
Регистрация: 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
Go to the top of the page
 
+Quote Post
Шаманъ
сообщение Apr 28 2017, 10:36
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 655
Регистрация: 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) *

Это очень уж лаконично sm.gif

Похоже придется смотреть через DWT на реальном процессоре, неудобно однако...
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 28 2017, 10:41
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 282
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Шаманъ @ Apr 28 2017, 12:36) *
Похоже придется смотреть через DWT на реальном процессоре, неудобно однако...

...если этот DWT в реальном процессоре есть rolleyes.gif
Go to the top of the page
 
+Quote Post
Obam
сообщение Apr 28 2017, 11:00
Сообщение #6


Знающий
****

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



Цитата(Шаманъ @ Apr 28 2017, 14:36) *
Так для М4 на сайте АРМ были тоже, но М7 по идее несколько иной "зверь".

В TRM на M4 тоже нет таймингов
Ну сами уж "supported in the ARMv7-M architecture" подчеркните (:
DDI0403E.b применИм к M7? Всё…

Не знаю, пользуетесь ли IAR-ом, там есть
Прикрепленное изображение


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 28 2017, 11:46
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 282
Регистрация: 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?
Всё.... laughing.gif
Go to the top of the page
 
+Quote Post
Шаманъ
сообщение Apr 28 2017, 11:47
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 655
Регистрация: 27-08-08
Пользователь №: 39 839



Цитата(jcxz @ Apr 28 2017, 13:41) *
...если этот DWT в реальном процессоре есть rolleyes.gif

В том, который могу попытать есть sm.gif

Цитата(Obam @ Apr 28 2017, 14:00) *
В TRM на M4 тоже нет таймингов

Я ж писал, что не в TRM, а не сайте АРМ - вот http://infocenter.arm.com/help/index.jsp?t...b/CHDIJAFG.html sm.gif

Цитата
Ну сами уж "supported in the ARMv7-M architecture" подчеркните (:
DDI0403E.b применИм к M7? Всё…

Как по мне, то эта фраза не гарантирует, что тайминги одинаковые. Да и не понятно какие инструкции в М7 могут быть выполнены параллельно.

Цитата
Не знаю, пользуетесь ли IAR-ом, там есть

Не, у меня все инструменты бесплатные sm.gif - MS VS Code + GCC + GDB + OpenOCD, но доступ к DWT получить не должно быть проблемой.

Сообщение отредактировал Шаманъ - Apr 28 2017, 11:48
Go to the top of the page
 
+Quote Post
Obam
сообщение Apr 28 2017, 12:13
Сообщение #9


Знающий
****

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



Цитата(Шаманъ @ Apr 28 2017, 15:47) *
Я ж писал, что не в TRM, а не сайте АРМ - вот http://infocenter.arm.com/help/index.jsp?t...b/CHDIJAFG.html sm.gif

Поправка: действительно, в 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"

Цитата
Не, у меня все инструменты бесплатные sm.gif

Я тоже не внук рокфеллера…

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


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
scifi
сообщение Apr 28 2017, 13:14
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 645
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Шаманъ @ Apr 28 2017, 13:36) *
Похоже придется смотреть через DWT на реальном процессоре, неудобно однако...

Разрешите поинтересоваться, зачем? Я ещё могу понять, когда измеряется время выполнения участка кода, если уж очень сильно куда-то спешим и не успеваем. Но отдельные инструкции, Холмс? laughing.gif

Цитата(Шаманъ @ Apr 28 2017, 14:47) *
Как по мне, то эта фраза не гарантирует, что тайминги одинаковые. Да и не понятно какие инструкции в М7 могут быть выполнены параллельно.

Точно помню, что есть отличия между M3 и M4. Но там мелочь какая-то была, грубо говоря, 99% одинаково.
Go to the top of the page
 
+Quote Post
Шаманъ
сообщение Apr 28 2017, 13:41
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 655
Регистрация: 27-08-08
Пользователь №: 39 839



Цитата(scifi @ Apr 28 2017, 16:14) *
Разрешите поинтересоваться, зачем? Я ещё могу понять, когда измеряется время выполнения участка кода, если уж очень сильно куда-то спешим и не успеваем. Но отдельные инструкции, Холмс? laughing.gif

Вы не поняли. Если бы у меня такой инструмент, как в ассемблере DSP56300, то я бы позанимался оптимизацией просто используя его (там и отдельные инструкции и общее кол-во тактов видно). Была бы бумажка-табличка, то для начала заглянул бы в нее, а так остается DWT, но естественно не для отдельных инструкций - конечная цель оптимизация нескольких критических кусков выполняющих DSP обработку.

Сваял тестовый проект, через DWT все отлично видится в gdb. Вопрос наверное можно закрыть.
Go to the top of the page
 
+Quote Post
romas2010
сообщение Apr 28 2017, 14:51
Сообщение #12


Участник
*

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



По хорошему надо бы ввести в архитектуру банки регистров, как в MIPS...тогда бы переключение контекста в многозадачности свелось бы к простому переключению нужного банка...все остальное-игрулечки-бирюлечки
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 28 2017, 15:51
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 3 282
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(romas2010 @ Apr 28 2017, 16:51) *
По хорошему надо бы ввести в архитектуру банки регистров, как в MIPS...тогда бы переключение контекста в многозадачности свелось бы к простому переключению нужного банка

Банки регистров есть в классических ARM, например ARM7, ARM9.
Только это никак не помогает переключению задач, а наоборот - переключение гораздо сложнее.
Или Вы хотите количество банков по количеству задач? beer.gif
Go to the top of the page
 
+Quote Post
Шаманъ
сообщение Apr 28 2017, 17:06
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 655
Регистрация: 27-08-08
Пользователь №: 39 839



Народ, а есть ли какие-нить вменяемые benchmarks по части DSP фильтров/функций для Cortex-M7 на которые стоит ориентироваться? А то что-то везде одна реклама, как все хорошо, а хотелось бы конкретики типа столько-то тактов на 1tap FIR фильтра.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 28 2017, 20:03
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 282
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Шаманъ @ Apr 28 2017, 13:47) *
В том, который могу попытать есть sm.gif

Везёт Вам. У меня вот CM4, а в нём нету даже bitband crying.gif
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd May 2017 - 22:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01483 секунд с 7
ELECTRONIX ©2004-2016