11

为什么在设计个人计算机时,基于冯诺依曼架构的计算机架构优于哈佛架构;而哈佛架构用于设计基于微机的计算机系统和基于DSP的计算机系统?

4

2 回答 2

13

目前用于 PC 的 CPU 设计同时具有哈佛和冯诺依曼元素(尽管更多的是冯诺依曼)。

如果您查看 L1 缓存,您会发现在 AMD、ARM 和 Intel 系统中,您有指令 L1 缓存和数据 L1 缓存,它们可以独立和并行访问。那是哈佛的部分。但是,在 L2、L3 或 DRAM 中,数据和代码是混合的。那是冯诺依曼的部分

那么,为什么 PC 不采用纯哈佛架构呢?我的观点是,这没有意义。如果您分析主要的大多数应用程序,您会发现L1 指令缓存未命中率非常小。这意味着通常代码大小不是问题。所以为代码设计一个完全独立的路径是没有意义的。数据可以变得非常大,但代码却不能。

在 DSP 中,使用单独的代码和数据路径是有意义的。这是因为 DSP 的工作主要是在“流数据”上,这意味着对缓存的需求相当小。DSP代码也可以包含增加代码大小的预先计算的系数。因此,数据大小和代码大小之间存在平衡,这意味着使用哈佛架构是有意义的。

于 2014-11-09T08:49:48.377 回答
7

冯诺依曼架构与哈佛架构的根本区别在于,虽然在哈佛架构中,指令存储器与数据存储器不同,但在冯诺依曼架构中它们是相同的。这反映了个人电脑(程序与数据从同一介质存储和读取,通常是磁盘和 RAM)和微控制器(程序存储在非易失性存储器中,数据存储在易失性存储器中)的实际情况)。

于 2014-11-09T08:11:58.997 回答