它由 HCLK 驱动(不是为系统定时器计时的 SYSCLK,它不必等于 HCLK)。HCLK 的源由程序员设置。
如果我们的 CPI 为 1(当然是理想值),那是否意味着我们将每秒执行 800 万条指令或每秒 7200 万条指令?
你可以看到每条指令需要多少个周期:http : //infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0439b/CHDDIGAC.html
实际速度取决于许多因素,但主要取决于您的代码和数据所在的位置以及高级 uC 功能。
如果您从内部 TCM SRAM 执行代码并将数据放置在 SRAM 中(或者甚至在 TCI 和 TCD SRAM 中的某些 uC 上更好),您可以存档理论执行效率,因为这些存储器以核心时钟频率工作,没有等待状态或总线等待状态。理想情况下,如果 uC 具有 TC 内存并且使用单独的总线获取指令和数据。
如果您的代码驻留在闪存中 - 此内存可能会引入一些等待状态。STM uC(ART 加速器)以较大的块读取闪存并获取前面的指令。它允许这些 uC 几乎以最大速度运行。问题是分支指令需要刷新流水线并再次提取指令。