阅读关于冯诺依曼架构的维基百科文章,它说如下
该术语的含义已经演变为存储程序计算机,其中指令获取和数据操作不能同时发生,因为它们共享公共总线。这被称为冯诺依曼瓶颈,通常会限制系统的性能。
这里它说冯诺依曼架构术语已经开始指代指令获取和数据操作不能同时发生的想法,因为它们需要相同的总线。
我的问题是,现代计算机系统仍然如此吗?我们是否仍然只有一条总线来获取指令并进行数据操作(猜测主要是数据读/写)?
阅读关于冯诺依曼架构的维基百科文章,它说如下
该术语的含义已经演变为存储程序计算机,其中指令获取和数据操作不能同时发生,因为它们共享公共总线。这被称为冯诺依曼瓶颈,通常会限制系统的性能。
这里它说冯诺依曼架构术语已经开始指代指令获取和数据操作不能同时发生的想法,因为它们需要相同的总线。
我的问题是,现代计算机系统仍然如此吗?我们是否仍然只有一条总线来获取指令并进行数据操作(猜测主要是数据读/写)?
几乎所有现代机器都可以同时获取指令和数据。它们通常具有单独的指令和数据缓存。
但是,它们几乎总是在某个时候将指令和数据都放在缓存之外的同一个外部存储器中。通常是 DRAM。
有人可能会说,现代机器具有哈佛(指令和数据分离,是冯诺依曼的强大竞争对手)缓存架构,但具有冯诺依曼(指令和数据在同一内存中)的内存架构。
我认为维基百科文章中提到的共享巴士是假的。在计算机体系结构/处理器设计界,冯诺依曼现在倾向于参考程序计数器(PC)的概念,或者用英特尔的话来说,指令指针(IP),即通过程序的定序器,概念上几个处理器中的每一个都是一次执行一条指令。与诸如数据流机器之类的东西相反,其中没有程序计数器的真正概念。顺便说一句,现代无序微处理器(例如我研究过的那些)在内部是微数据流机器,但在程序员看来,它是具有单个程序计数器的冯诺依曼机器。