This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F5255:从闪存读取一条指令所需的 CPU 周期数是多少?

Guru**** 2387060 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/603859/msp430f5255-what-is-the-number-of-cpu-cycles-required-to-read-one-instruction-from-flash

器件型号:MSP430F5255

你好。

我有疑问。

从闪存读取一条指令所需的 CPU 周期数是多少?

您能告诉我此回答中描述的文档或 URL 吗?

我在数据表和用户指南中找不到任何相关信息。

此致、

UchIDA-k

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、UchIDA-k、

    这取决于 C 代码如何转换为汇编语言、但我估计需要1-3个时钟周期、具体取决于您的指针是否已加载到工作寄存器中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Jace H:

    感谢你的答复。

    什么是"工作寄存器"?
    MSP430是否具有可缩短读取指令时间的指令高速缓存?
    您能否告诉我从闪存读取一条指令的时间未固定的原因?(1-3个周期)

    此致、

    UchIDA-k
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    UchIDA-k、

    工作寄存器是 CPU 内的 R1-15。 与内存映射中的每隔一个点一样、闪存的实际读取只有一个周期。 实际上、这需要更多的时间、具体取决于您在代码中的位置、您必须将正确的地址加载到寄存器中才能从某个位置读取。
    例如、MOV A、B 指令、获取 A 中的内容并将其移动到 B。通常、B 是一个工作寄存器、例如 R15、该寄存器稍后将移动到其他位置。 可以是工作寄存器或固定值。 因此、可能需要一条或两条额外的指令来将所需的地址移动到中、例如为 Move 指令提供的 R14。 它取决于汇编的编译方式。 因此、MOV R14、R15是假设将正确的地址加载到 R14和 R15中的指令。

    TL;DR:从技术上讲、只有一个指令周期。 实际上、还可能有一些取决于汇编器/编译器如何执行它以及代码中的位置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Jace H:

    感谢你的答复。
    我理解得非常好。

    UchIDA-k