我读了很多关于不同来源的CISC和RISC架构之间的区别。似乎已经商定的一件事是,CISC总是与Von Neumann一起使用,而RISC则与哈佛架构一起使用。但我无法理解这种分类背后的原因。
答案 0 :(得分:5)
指令集(RISC和CISC)与处理器架构(Harvard Architecture和Von Neumann Architecture)之间没有关系。两个指令集都可以与任何架构一起使用。
较早的ARM架构使用带有RISC的Von Neumann架构,后来用ARM9将它们转移到使用RISC的哈佛架构。最新的ARM处理器使用更先进的混合架构。
答案 1 :(得分:0)
如果您使用这样的芯片并添加良好的缓存,然后切换回一条内存总线,其中一个额外的引脚指示内存提取是用于指令还是用于数据,那么您仍然在谈论哈佛体系结构-从编程的角度来看,您无法确定发生了这种变化。
我认为最大的不同可能是在真正的冯·诺依曼CPU上,您可以写入指令存储器,然后立即执行您编写的指令。例如,在8086上,您可以在写入指令之后立即写入指令!而在哈佛CPU上,即使是具有统一内存总线的CPU,您也必须在写入之后加上一条指令来强制将其写出到实际存储器中,可能是一条防止乱序执行的指令,然后是一条指令。在该位置刷新指令缓存。该过程可能需要数百个周期-这是必要的,因为芯片的体系结构假定指令和数据存储器不相互作用。
此更改甚至可以在同一CPU系列中进行。最初的无高速缓存68000当然是CISC CPU,但是如果您写入指令流,则必须提防指令预取,并有可能在写入内存后添加NOP。但是,后来680x0系列的变体变得越来越像哈佛。外部存储器总线可能保持统一,但是例如指令和数据缓存是分开的。