在哈佛建筑中,有两个MAR和MBR/MDR吗?

In the Harvard Architecture, are there two MAR's and MBR/MDR's?

这可能是超级基础的,但我没有找到任何关于它的信息;如果在哈佛体系结构中需要同时访问数据和指令,这是否需要 CPU 有两个不同的 MAR 指向它们各自的地址,两个不同的 MAR 指向它们各自的数据?还是处理方式不同?

是的,如果哈佛 CPU 有一个简单的非流水线总线接口,实际上有一个物理 MAR 和 MDR(非玩具主流 CPUs ,但是简单的微控制器可能至少有等效的东西)。

一般来说,是的,如果它是真正的哈佛,则有两个独立的总线接口。不仅仅是在统一的外部缓存 + 内存之前拆分缓存,也就是 Modified Harvard.

这是 Harvard 的部分要点,允许代码获取和数据之间的并行性 load/store,避免 von Neumann 瓶颈。以及有一个单独的地址-space。 (但当然,即使是哈佛机器也必须获取数据 to/from 内存来为 ALU 提供有用的工作。)