如何确定我的计算机是哈佛还是冯·诺依曼体系结构?


12

我了解两种架构之间的区别是哈佛架构中指令与数据的分离。但是我怎么知道我正在使用哪种类型的系统?是否可以编写程序确定该系统是冯·诺依曼还是哈佛?可能会存在另一种架构,或者仅是已知的这些架构?


3
哈佛建筑的现代运用。冯·诺伊曼(Von Neumann)是典型使用中的所有其他东西。
罗伯特·哈维

1
虽然现代系统也不严格是冯·诺依曼。考虑GPU和所有其他事情:)
johannes 2012年

1
还有其他架构类型。数据流体系结构是我的最爱。但是您不太可能在野外看到它。
马丁·约克

1
除非您所做的事情确实非常低级,否则我不确定您为什么需要知道它们的区别(您正在编写自修改代码吗?)。即使大多数现代机器都是von-Neumann,操作系统也通常将代码页标记为与数据页不同,以防止意外(恶意)修改代码。
马丁·约克

Answers:


13

您的计算机是冯·诺依曼机器。 所有通用计算机都是。唯一的例外是专用协处理器,例如GPU。这并不是说您不能拥有哈佛机器(或任何其他体系结构)。只是没有人制造它们,尤其是不出售(当然是模块化协处理器)。


3
这当然取决于定义。如果用三分法代替过时的二分法,则当前大多数通用计算机都是Modified Harvard Architecture。
maaartinus 2012年

3
许多嵌入式微控制器使用哈佛架构。它们通常从某种类型的ROM或闪存中运行代码,而使用公共总线存储代码和数据几乎无济于事。
supercat

6

当前大多数通用CPU使用改良的哈佛架构。CPU内核可以在各自的L1缓存中独立访问程序和数据。在外部,没有单独的程序和数据存储器(其他缓存级别也没有分开)。

可能会存在另一种架构,或者仅是已知的这些架构?

所有其他架构的使用都受到限制。由于与处理器开发相关的极端复杂性和成本,我认为没有人会再尝试一次。

但是,尽管现代CPU基本上是冯·诺依曼(von Neumann),但它们在内部合并了许多思想,例如数据流体系结构


4

冯·诺依曼架构和哈佛架构都属于“控制流”范例。

还有另一个范式,即数据流

电子表格(从Visicalc和Multiplan到Excel)虽然是在控制流计算机上实现的,但数据流计算的一个常见示例是。

神经网络也属于这一类。

FPGA是数据流架构的另一个示例。它们使用硬件描述语言(例如VHDL)进行编程。


3

哈佛架构通常仅用于嵌入式微处理器,其中程序存储在板载eeprom存储器中。您可能会看到的唯一一个是Arduino中使用的Atmel AVR


1

对其进行编程时:修改一个存储区,然后跳到那里并执行它。

如果是哈佛,那你做不到。


或者它可能是带有W ^ X内存管理器的冯·诺依曼机器。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.