【问题标题】:Is the Raspberry Pi based on Harvard Architecture?树莓派是基于哈佛架构的吗?
【发布时间】:2017-06-12 22:39:27
【问题描述】:

我的印象是 Raspberry Pi 的 ARM 处理器虽然具有 armhf 微架构,但仍然遵循 冯诺依曼 架构(主要是共享指令和数据的主存储器)。

但是,我在计算机科学教科书中看到了这一行(AQA 第 2 单元的 A Level Computer Science,Kevin R Bond 2016,pg265)

树莓派计算机基于哈佛架构

在网上搜索后,我找不到任何可靠的来源可以证明或反驳这一说法。这是错误的吗?我会很感激答案中给出的来源。

我知道 Raspberry Pi SE 存在,但鉴于标签不存在,我认为将其发布在这里更合适

【问题讨论】:

  • 我将把这个话题称为堆栈溢出,因为它与编程问题无关。
  • @Takarii 你会建议哪个 Stack Exchange? cpu-architecture 拥有大量追随者,而 Raspberry Pi SE 包含 HarvardVon Neumann 的问题为零
  • @Takarii 我会澄清措辞,但你能找到这些陈述的来源吗?运行哈佛的 Linux 计算机似乎很少见,因为这通常是 Arduino 和协处理器的领域
  • 请记住,虽然很多 Pi 发行版都是基于 linux 的,但并非全部都是。最终,它们基于 RISC 微指令集。例如,Windows 10 IoT 和 RISC OS Pi 不是 linux 发行版,但可以在 pi 上完美运行
  • @Takarii 我不明白的是 Raspbian(我理解为)本质上是 Debian 重新编译器,如何在这样一个根本不同的系统上运行。在像桌面操作系统这样复杂的东西中,指令和数据之间的分离在哪里? Pi SoC 是否共享 RAM 但不共享总线?

标签: raspberry-pi arm cpu-architecture von-neumann harvard-architecture


【解决方案1】:

具体来说,使用该架构的不是 pi,而是它拥有的处理器。

最初的树莓派使用 ARM 11 芯片(后来的版本迁移到 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 从冯诺依曼架构(普林斯顿架构)转变为具有独立指令和数据总线(以及缓存)的哈佛架构,显着提高了其潜在速度。大多数集成这些内核的硅芯片会将它们封装为modified Harvard architecture 芯片,将两条地址总线组合在分离的 CPU 缓存和紧密耦合的内存的另一侧。

    来自有关修改后的哈佛架构的链接页面:

    大多数现代计算机改为实现修改哈佛架构。

    最常见的修改是构建一个内存层次结构,其中 CPU 缓存将指令和数据分开。这统一了除了数据和指令地址空间的一小部分之外的所有内容,提供了冯诺依曼模型。大多数程序员从不需要意识到处理器内核实现了(修改后的)哈佛架构这一事实,尽管他们受益于它的速度优势。只有将指令写入数据存储器的程序员才需要注意缓存一致性等问题。

    任何现代 x86 芯片也是如此。

    这对 Raspbian 没有任何问题,它只是对普通 Debian 为 Raspberry Pis 进行的特殊重新编译; raspbian 的主要区别在于它的 arm 目标(armv6+vfp hardfloat)与其他现有的 arm debian 发行版(针对 armv4t 或 armv7+vfp hardfloat)不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 2015-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多