树莓派是否基于哈佛架构?

3
我原本认为树莓派的ARM处理器虽然具有armhf微架构,但仍遵循冯·诺依曼体系结构(主要是共享指令和数据的主存储器)。然而,在一本计算机科学教材(A Level Computer Science for AQA Unit 2,Kevin R Bond 2016,pg265)中,我发现了这样一句话:
“树莓派计算机基于哈佛体系结构。”
在网上搜索后,我找不到任何实质性的来源证明或否定这个说法。这是错误的吗?我希望能在回答中得到一个来源。

1
我认为这个问题不适合在Stack Overflow上讨论,因为它与编程问题无关。 - Takarii
1
@Takarii,你会建议哪个Stack Exchange呢?cpu-architecture有很多追随者,而Raspberry Pi SE没有包含_Harvard_或_Von Neumann_的问题。 - Luke Moll
1
@Takarii 我会澄清措辞,但你能找到这些陈述中的任何一个来源吗?因为通常情况下,Linux计算机运行哈佛结构是很罕见的,这通常是Arduino和协处理器的领域。 - Luke Moll
请注意,尽管许多树莓派发行版基于Linux,但并非所有都是。最终它们基于RISC微指令集。例如,Windows 10 IoT和RISC OS Pi并不是Linux发行版,但在树莓派上运行得非常好。 - Takarii
Debian与其他典型的操作系统一样,基于CISC微指令集。而Rasbian则使用RISC。至于它如何完成您的要求,我不太确定,但我最好的猜测是CISC与RISC在处理事物时方式不同。 - Takarii
显示剩余2条评论
2个回答

2
“它使用的架构不是专门为树莓派设计的,而是处理器所采用的架构。”
“最初的树莓派使用的是ARM11芯片(后来的版本迁移到了CORTEX-A芯片),而ARM从ARM9芯片开始从冯·诺依曼架构转向哈佛架构。”

https://en.wikipedia.org/wiki/ARM9

此外,这是来自ARM产品页面的信息。

https://www.arm.com/products/processors/classic/arm9/index.php

请注意,由于没有提到架构发生任何变化,因此可以假设CORTEX-A内核也保持不变。

2
尽管CPU的内部架构可能类似于哈佛架构,具有独立的指令和数据高速缓存以及总线,但SoC的其余部分仍然只有一个主内存,并且指令和数据总线连接到同一内存。来自https://en.wikipedia.org/wiki/ARM9
“随着这一设计的推出,ARM从冯·诺依曼体系结构(普林斯顿体系结构)转向了哈佛体系结构,采用了单独的指令和数据总线(以及高速缓存),显著提高了其潜在速度。大多数集成这些核心的硅芯片将它们封装为修改过的哈佛体系结构芯片,将两个地址总线组合在紧密耦合的CPU缓存和内存的另一侧。”
来自修改后的哈佛架构链接页面的内容:
“大多数现代计算机都是使用修改过的哈佛架构实现的。
最常见的修改通过使用CPU缓存分离指令和数据来构建内存层次结构。这统一了除数据和指令地址空间的小部分之外的所有内容,提供了冯·诺依曼模型。大多数程序员不需要意识到处理器核心实现了(修改后的)哈佛体系结构,尽管他们受益于其速度优势。只有编写将指令写入数据内存的程序员需要注意缓存一致性等问题。”
对于任何现代x86芯片也是如此。
这对Raspbian并没有任何问题,它只是Debian为树莓派特别重新编译的版本; Raspbian主要区别在于它具有与其他现有ARM Debian发行版不同的ARM目标(armv6 + vfp hardfloat),后者的目标是armv4t或armv7 + vfp hardfloat。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接