二者的区别就是指令空间(text)和数据空间(data)是否是一体的。冯·诺依曼架构数据空间和指令空间不分开,哈佛架构数据空间和指令空间是分开的。

后来又提出了改进版的哈佛架构,它不再使用两条完全独立的 text 和 data 总线来访问各自的存储器,而是用两条公用总线:地址总线(声明要访问的地址)和数据总线(传输地址对应的数据)来访问两个存储器。

总的来说,冯·诺依曼架构更加简单,这种简单体现在需要更少的片上资源,而且逻辑上更加简洁(存储器和地址空间都是同质的)。但是效率相比哈佛架构就会降低。

目前的通用处理器其实是二者的混合体,他们外部总线上看是诺依曼结构的(只有一个内存空间),但是由于内部 cache 的存在(在 l1 cache 有 icache 和 dcahe 的区别),因此实际上内部来看已经类似改进型哈佛结构的了。