冯诺依曼和哈佛架构有何异同

关注+星标公众,不错过精彩内容

5baf0af5f9448ce01ea41857e149ab96.gif

来源 | 网络

架构是一个计算机硬件的基本模型,它决定了计算机系统的运行方式。计算机架构的三个要素是:中央处理器、记忆单元(存储器)和输入输出接口。

冯诺依曼架构和哈佛架构是计算机体系结构中的两种重要架构,它们在存储器组织方式和数据处理上存在显著的差异。

4a2b8f97b4238650065629fbfd5f3a27.png

冯诺依曼架构

冯诺依曼架构是最常见的计算机体系结构之一,最早由冯·诺依曼于1945年提出,又称普林斯顿结构。这种架构中,指令和数据存储在同一个存储器中,使用同一条地址总线和数据总线来传输数据和指令。

它的主要特点如下:

  • 指令和数据共享同一个存储器。

  • 一个CPU核心同时只能执行一条指令。

789a74fd87ad3b1e3e7e20615ec38b29.png

我们的电脑所使用的Intel X86 CPU,就是冯诺依曼架构的。其指令与数据共用内存总线,地址空间在一起。

指令和数据共享同一个存储器,CPU只能执行一条指令,因为它需要等待指令和数据都被读取到CPU中。

我们可以将冯诺依曼架构理解为是单车道。作为单车道,它的缺点是明显的。

同时传输数据和指令,导致存储器和处理器之间的效率低下。存储器中的指令和数据被混合存储,指令可以被当作数据进行处理,因此程序可以动态地修改自身代码,容易受到病毒、恶意程序等攻击。指令和数据必须具有相同的位宽。

不过,冯诺依曼架构也有好处,就是简单、易于实现和设计。

总体来说,冯诺依曼架构适用于大多数通用计算机,它能够灵活地处理各种不同的计算任务,同时还可以使用缓存等技术来优化性能。

哈佛架构

哈佛架构是一种分离式存储器体系结构,它将指令和数据存储在不同的内存中。CPU 通过不同的总线从指令内存和数据内存中读取指令和数据。这意味着 CPU 可以同时访问指令和数据内存,因此可以同时执行多条指令。

它的主要特点如下:

  • 指令和数据存储在不同的内存中。

  • 一个CPU核心可以同时执行多条指令。

2406a5cb448ad16db0581592256180c3.png

哈佛架构多用于一些嵌入式系统或数字信号处理器等领域。

在哈佛架构中,指令和数据存储在不同的内存中,CPU可以同时访问指令和数据内存,因此可以同时执行多条指令。

我们可以将哈佛架构理解为是多车道。它有两个独立的存储器,就像多车道那样,它的优点也很明显。

指令与数据传输同时运行,运行效率高。存储器中的指令和数据分开存储,因此程序无法直接修改自身代码,这样会更加安全可靠、固若金汤。指令和数据的位宽可以不同。

但是哈佛架构也有其缺点,就是实现和设计相对复杂的多。

总体来说,哈佛架构适用于一些特定的应用领域,例如需要高效地处理大量数据的嵌入式系统,或数字信号处理器等领域。

fa6a292238963252f9998a3718501d60.png

声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

------------ END ------------

bd0be5ef59b5cc57ea87c112b1bc1ad9.gif

●专栏《嵌入式工具

●专栏《嵌入式开发》

●专栏《Keil教程》

●嵌入式专栏精选教程

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

2a5dc82d4f16c8612703f0bcc3be962f.jpeg

691d24ce29b554d2e30b9741cba684e6.png

点击“阅读原文”查看更多分享。

猜你喜欢

转载自blog.csdn.net/ybhuangfugui/article/details/134984873