Он управляется из HCLK (не SYSCLK, который синхронизирует системный таймер, и он не должен быть равен HCLK). Источник HCLK может быть установлен программистом.
, если наш ИПЦ равен 1 (конечно, идеальное значение), означает ли это, что мы будем выполнять 8 миллионов инструкций в секунду или 72 миллиона инструкций в секунду? ?
Вы можете увидеть, сколько циклов занимает каждая инструкция: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0439b/CHDDIGAC.html
Реальная скорость зависит от многих факторов, но в основном зависит от места, где находятся ваш код и данные, а также отрасширенные функции UC.
Если вы выполняете свой код для внутренней SRAM TCM и помещаете данные в SRAM (или, что еще лучше, в некоторые UC в TCI и TCD SRAM), вы можете архивировать теоретическую эффективность выполнения, когда эти воспоминания работаютна тактовой частоте ядра без состояний ожидания или состояний ожидания шины. В идеале, если в uC имеется память TC, а инструкции и данные выбираются с использованием отдельных шин.
Если ваш код находится во флэш-памяти - эта память может вводить некоторые состояния ожидания. STM UC (ускоритель ART) считывает флэш-память большими блоками и получает инструкции впереди. Это позволяет этим ОК работать почти на максимальной скорости. Проблема заключается в инструкциях ветвления, которые требуют сброса конвейера и повторной выборки инструкций.