ZHCU875Z August 2001 – October 2023 SM320F28335-EP
提供 FPU/VCU 支持的 C28x 具有受保护和不受保护的流水线指令。这需要在编译器和汇编器中进行一些检查,没有此类支持的 C28x 不需要这些检查。
根据设计,(非 FPU)C28x 指令会在所有之前的指令写入操作数全部完成后,再读取/写入该操作数。硬件会停止运行,直到此条件为真。由于采用停止硬件的方式来保留操作数的完整性,编译器和汇编器不需要通过流水线中的指令跟踪寄存器的读取和写入。因此,C28x 指令是受到流水线保护的,这意味着一条指令在写入寄存器时,另一条指令不会尝试读取/写入该寄存器。
启用 FPU 支持后情况就不同了。虽然非 FPU 指令可得到流水线保护,但 FPU 指令却得不到保护。这意味着 FPU 指令可能尝试读取/写入寄存器,而同时仍被前一条指令写入。这会导致未定义的行为,编译器和汇编器需要针对此类有冲突的寄存器访问提供保护。对于 VCU 指令也是如此。