【发布时间】: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