【问题标题】:Are memory mapped I/O address and RAM address related?内存映射的 I/O 地址和 RAM 地址是否相关?
【发布时间】:2019-02-19 01:55:59
【问题描述】:

我在How ram addresses are differentiated from memory map address 阅读了类似问题的答案,但我仍然感到困惑。

假设系统连接了 4GB RAM 并连接了一些内存映射外围设备,那么我可以使用的唯一 RAM 空间是 4GB 减去内存映射空间量?

例如,GPIO 映射到地址 0x500 那么就没有办法使用 RAM 地址 0x500?如果 MMU 存在并启用,我相信这是可能的(希望如此?),否则我不知道。

【问题讨论】:

  • 你是对的。对于带有 MMU 的 32 位系统来说,这甚至是一个问题,因为地址空间是 32 位的,因此一次只能寻址 4GB 的内存。
  • MMU 通常可以address larger physical amounts 使用 LPAE,因此您只能为单个进程映射 4GB,但为整个系统映射更大的数量。此外,引用的 Q/A 是以 x86 为中心的答案。
  • 您当然可以寻址比要映射的地址位更多的空间,这很常见。但它是整个系统设计的一部分,您需要指定芯片、板和根据需要的版本才能真正回答这个问题。
  • 任何可用的设计,您将在一个地址拥有一件物品,是的,这是真的。在公共汽车和其他地方,您可以提出请求并且第一个回答的人获胜,但这是该设计的一部分。当您谈论地址解码器时,它们是分层的,负责该地址的最近层将拥有该事务,它不会将事务传递给下一层。

标签: memory-management arm memory-mapping


【解决方案1】:

你标记的 arm 和其他处理器不一定不同。

通常会为内存映射 I/O、gpio、uart、nvic 等分配一定百分比的地址空间。使用 arm,您将拥有一些无法进入 axi/amba 总线的内部地址空间对于芯片供应商。

因此,如果您想使用具有 32 位地址总线的手臂,那么连接 4GB 平板是浪费时间。你当然可以连接更多(我有一个 24GB 的 arm11))但它不是线性的,你必须有一个像 PCIe hsa 这样的地址方案,在其中你指向一个地址空间的窗口,你可以进入一个地址空间之外的地址空间(再想想 PCIe,但现实不是他们试图在 x86 中呈现的幻觉)。

但是你把这件事复杂化了。特别是对于所有记录在案的 ARM。你有一个核心 你是一个芯片供应商 你买这个核心 它有一个地址总线(参见 amba/axi 文档) 如果它是一个 cortex-m 你连接到那个地址总线 他们有一些关于在哪里放置 ram 的指南和 rom 并远离这里。对于全尺寸的武器来说,它最公平的游戏,你提供基地址给映射某些外围设备的核心(想想 nvic、定时器等。而不是像 cortex-m 那样在设计中硬编码 systick 定时器基地址,您将地址空间中的基地址提供给内核,其中内部项目存在 PERIPHBASE 或某些此类信号/总线名称)。除此之外,如何划分地址空间是芯片供应商的心血来潮,arm 通常可以在两个地址之一启动,但当然您可以拥有任意数量的地址层,并且每个层都有一个转换/翻译到该地址空间。这包括外围设备、内存(ram/rom/flash)usb、pcie 等地址空间等。

所以它可能就像一台电脑,其中 pcie 窗口在同一空间带走了一两个 gig 的内存,而您只是失去了该内存,但在这种情况下,您认为它有点错误,因为它们是不同的地址空间/层。一些 pc 曾经 64 位超过 32 位,即使 32 位并没有完全死掉,但我们现在可以拥有默认为 64 位的 bioses,并允许 pcie 窗口位于内存上方,而不是在内存上开一个洞。

购买诸如 arm 或 mips 之类的内核的好处是,如果您不完全按照自己喜欢的方式设计地址空间,您可以在某种程度上,不必遵守任何东西等。

您的问题没有一个答案,您需要指定特定的芯片和电路板(以及该系统的版本)才能进行此对话,如果它是一个真实的可用产品,除非有窗口地址方案。人们喜欢认为段偏移的事情很糟糕,但它仍然存在于大多数可用的系统中,我们不能再使用这些术语,而且我们并不总是有段寄存器,但我们仍然有地址空间被分割和窗口化。 MMU 使地址空间的分段变得更加容易,但使它们看起来是线性的。

【讨论】:

    猜你喜欢
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2012-03-02
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多