为什么在设计个人计算机时,基于冯诺依曼架构的计算机架构优于哈佛架构;而哈佛架构用于设计基于微机的计算机系统和基于 DSP 的计算机系统?
最佳答案
目前用于 PC 的 CPU 设计具有哈佛和冯诺依曼元素(尽管更多是冯诺依曼元素)。
如果您查看 L1 缓存,您会发现在 AMD、ARM 和 Intel 系统中,您有指令 L1 缓存和数据 L1 缓存,它们可以独立和并行访问。那是 哈佛部分 .但是,在 L2、L3 或 DRAM 中,数据和代码是混合的。那是 冯诺依曼零件 .
那么为什么 PC 没有采用纯哈佛架构呢?我的观点是这没有意义。如果您分析主要的大多数应用程序,您会看到 L1 指令缓存未命中率非常小 .这意味着通常代码大小不是问题。所以为代码设计一个完全独立的路径是没有意义的。数据可以增长得非常大,但代码却不能。
在 DSP 中,使用单独的代码和数据路径是有意义的。那是因为 DSP 的工作主要是“流数据”,这意味着对缓存的需求相当小。此外,DSP 代码可以包含增加代码大小的预计算系数。所以在数据大小和代码大小之间有一个平衡,这意味着使用哈佛架构是有意义的。
关于hardware - 冯诺依曼与哈佛建筑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26826248/