我试图理解 DSP 架构和指令执行中的这个基本概念:
“基于哈佛架构,CPU 可以同时获取数据和指令字......- 指令获取可以在前一条指令执行期间进行,无需等待指令执行完成或在下一条指令时必须停止处理器的操作正在被取走。”
然而,由于我对计算机体系结构的了解有限,我想到了这个问题:“如果要操作的数据(操作数)是由指令字决定的,这怎么可能!?想象一下从第一个周期开始迭代,指令。是从程序内存中加载的,那么这两个操作数应该在下一个周期中加载,这里有歧义:现在是执行时间/周期轮次,所以如果在加载数据时,下一个指令同时加载,前一个加载的指令丢失了,因此执行时会发生什么!?或者我错了,通过将数据从内存加载到数据寄存器来立即执行!?
** 代码示例:MPYF3 *(AR0)++, *(AR1)++, R0
*附录:我认为,由于没有寄存器文件,所以没有将任何数据加载到任何寄存器中 - 直接通过内存完成!所以在我看来,在第一次指导之后。已获取,在下一个周期中,由 prev 指定的所需数据(操作数)。指令 由功能单元通过内存操作(instr. exec.),同时下一个 instr. 取出字,并更新操作数的地址(作为执行的结果,通过地址寄存器 ALU);这一切都是因为这些操作(数据访问、算术运算、地址更新、指令获取)中的每一个都是通过独特的物理架构处理的。
有没有人可以向我保证我的解释!?非常感谢对利用 DSP 哈佛架构中的并发数据和指令访问的周期迭代的典型指令的解释。
提前致谢