本手册为UM0492,提供STM32F103XX微控制器驱动永磁同步电机(PMSM)的FOC算法库使用指南,包含指令优化技巧,专为中国工程师设计的中文版本。
4.10 指令获取
在MIPS®架构程序员卷IA:介绍MIPS32®架构修订版6.01的50表中,详细描述了投机取指令的过程,并指出使用高速缓存访问时可能产生的副作用。
对于未缓存指令的访问,传输长度只能是一个指令字。EJTAG调试内存空间(DMSEG)被定义为具有存储器访问副作用的空间,请参阅MIPS® EJTAG规范文档MD00047获取更多信息。系统编程人员或设计者应意识到,在非高速缓冲区中执行代码时可能遇到的任何有副作用的存储器位置,包括IO设备等。
在Release 5版本中,CP0 MAAR 和 MAARI 允许软件指定哪些地址区域是可投机访问,并结合该访问的CCA(缓存性和一致性属性)进行配置。对于高速缓冲存取来说,最小传输大小为一个超高速缓存行,且可以扩展至多个整个高速缓存行。
表4.2 列出了几种类型的指令获取过程中的投机性行为。
在Release 5版本中,CP0 MAAR 和 MAARI 允许软件指定哪些地址区域是可投机访问,并结合该访问的CCA(缓存性和一致性属性)进行配置。对于高速缓冲存取来说,最小传输大小为一个超高速缓存行,且可以扩展至多个整个高速缓存行。
4.10.6 取指令和异常
MIPS架构采用读取指令精确异常模型。这意味着在遇到导致异常的指令时,报告的原因是该特定尝试执行并引发错误的指令,并非后续顺序执行的其他指令或未执行的分支/跳转目标地址。此外,在转移、跳跃决定之前获取的目标地址已经被确定或计算过;预测分支/跳跃的目标寄存器值已被读取;以及在返回操作中,预测到的返回地址也被预先读取。
任何其他的预取行为则不会提前触发异常处理机制。