2

我从不同的来源阅读了很多关于 CISC 和 RISC 架构之间的区别。似乎达成一致的一件事是 CISC 始终与冯诺依曼一起使用,而 RISC 与哈佛架构一起使用。但我不能完全理解这种分类背后的原因。

4

2 回答 2

9

指令集( RISCCISC)与处理器架构(哈佛架构冯诺依曼架构)之间没有关系。两种指令集都可以与任何架构一起使用。

较早的ARM架构使用带有 RISC 的冯诺依曼架构,后来在ARM9中,他们转向带有 RISC 的哈佛架构。最新的 ARM 处理器使用更先进的混合架构。

于 2016-02-13T13:31:45.790 回答
0

冯诺依曼与哈佛的区别并不明显。显然,具有用于指令和数据的单独内存总线的芯片是哈佛架构。但是当添加好的缓存时,单独总线的性能优势会大大降低。

如果您采用这样的芯片并添加良好的缓存,然后切换回单个内存总线,其中一个额外的引脚指示内存获取是用于指令还是用于数据,您仍然在谈论哈佛架构 - 而且从从编程的角度来看,您无法判断已经发生了这样的变化。

我认为最大的不同可能是在真正的冯诺依曼 CPU 上,您可以写入指令存储器,然后立即执行您编写的指令。例如,在 8086 上,您可以在写入指令之后立即写入指令!而在哈佛 CPU 上,即使是具有统一内存总线的 CPU,您也必须在写入之后使用一条指令强制将其写入实际内存,可能是一条防止乱序执行的指令,然后是一条指令刷新该位置的指令缓存。这个过程可能需要几百个周期——这是必要的,因为芯片的架构假设指令和数据存储器不交互。

这种变化甚至可以发生在同一个 CPU 系列中。最初的无缓存 68000 肯定是 CISC CPU,但是如果您写入指令流,则必须提防指令预取,并可能在写入内存后添加 NOP。然而,680x0 系列的后来变体变得越来越像哈佛。例如,外部存储器总线可能保持统一,但指令和数据缓存是分开的。

于 2020-06-26T07:13:06.137 回答