【发布时间】:2021-01-13 13:02:37
【问题描述】:
这可能是超级基本的,但我没有找到任何关于此的信息;如果在哈佛架构中需要同时访问数据和指令,这是否需要 CPU 有两个不同的 MAR 指向它们各自的地址和两个指向它们各自的数据?还是处理方式不同?
【问题讨论】:
标签: cpu cpu-architecture cpu-registers harvard-architecture
这可能是超级基本的,但我没有找到任何关于此的信息;如果在哈佛架构中需要同时访问数据和指令,这是否需要 CPU 有两个不同的 MAR 指向它们各自的地址和两个指向它们各自的数据?还是处理方式不同?
【问题讨论】:
标签: cpu cpu-architecture cpu-registers harvard-architecture
是的,如果哈佛 CPU 有一个简单的非流水线总线接口,实际上有一个物理 MAR 和 MDR(非玩具主流 CPU don't,但一个简单的微控制器可能至少有同等的东西)。
如果是真正的哈佛的话,一般来说是有两个独立的总线接口。不仅仅是在统一的外部缓存 + 内存之前拆分缓存,也就是 Modified Harvard。
这是Harvard 的部分要点,允许代码获取和数据加载/存储之间的并行性,避免冯诺依曼瓶颈。以及具有单独的地址空间。 (当然,即使是哈佛机器也必须从内存中获取数据,以便为 ALU 提供有用的工作。)
【讨论】: