【问题标题】:Is the "System RAM" displayed by /proc/iomem is like unallocated memory?/proc/iomem 显示的“系统 RAM”是否像未分配的内存?
【发布时间】:2013-01-31 18:36:46
【问题描述】:

我可以找出其他内存映射信息,例如设备总线特定的内存 我想知道 这里的系统 RAM 是什么意思..

0000000-0000ffff : reserved
00010000-0009c3ff : System RAM
0009c400-0009ffff : reserved
000a0000-000bffff : PCI Bus 0000:00
  000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000d0000-000d0fff : Adapter ROM
000d2000-000d3fff : reserved
000d4000-000d7fff : PCI Bus 0000:00
000d8000-000dbfff : PCI Bus 0000:00
000dc000-000dffff : PCI Bus 0000:00
000e0000-000fffff : reserved
  000f0000-000fffff : System ROM
00100000-bb27bfff : System RAM
  01000000-015b0afb : Kernel code
  015b0afc-01878c3f : Kernel data
  01939000-01a11fff : Kernel bss
bb27c000-bb281fff : reserved
bb282000-bb3e9fff : System RAM
bb3ea000-bb40efff : reserved
bb40f000-bb46efff : System RAM
bb46f000-bb46ffff : reserved
bb470000-bb4f0fff : ACPI Non-volatile Storage
bb4f1000-bb70efff : reserved
bb70f000-bb716fff : System RAM
bb717000-bb71efff : reserved
bb71f000-bb77dfff : System RAM
bb77e000-bb79efff : ACPI Non-volatile Storage
bb79f000-bb7e1fff : System RAM
bb7e2000-bb7fefff : ACPI Tables
bb7ff000-bb7fffff : System RAM
bb800000-bfffffff : reserved
c0000000-dfffffff : PCI Bus 0000:00
  c0000000-c04fffff : PCI Bus 0000:04
  c0500000-c06fffff : PCI Bus 0000:03
  c0700000-c08fffff : PCI Bus 0000:02
  c0900000-c0afffff : PCI Bus 0000:02
  c0b00000-c0b00fff : Intel Flush Page
  d0000000-dfffffff : 0000:00:02.0
e0000000-efffffff : PCI MMCONFIG 0000 [bus 00-ff]
  e0000000-efffffff : reserved
    e0000000-efffffff : pnp 00:09
f0000000-febfffff : PCI Bus 0000:00
  f0000000-f03fffff : 0000:00:02.0
  f0400000-f04fffff : PCI Bus 0000:03
    f0400000-f0403fff : 0000:03:00.0
  f0700000-f0703fff : 0000:00:1b.0
    f0700000-f0703fff : ICH HD audio
  f0704000-f0704fff : reserved
    f0704000-f0704fff : 0000:00:1f.6
      f0704000-f0704fff : ips thermal sensor
  f0705000-f07057ff : 0000:00:1f.2
    f0705000-f07057ff : ahci
  f0705800-f070580f : 0000:00:16.0
    f0705800-f070580f : mei
  f0706000-f07063ff : 0000:00:1a.0
    f0706000-f07063ff : ehci_hcd
  f0706400-f07067ff : 0000:00:1d.0
    f0706400-f07067ff : ehci_hcd
  f0706800-f07068ff : 0000:00:1f.3
  f0800000-f08fffff : PCI Bus 0000:04
    f0800000-f080ffff : 0000:04:00.0
      f0800000-f080ffff : r8169
    f0810000-f0810fff : 0000:04:00.0
      f0810000-f0810fff : r8169
    f0820000-f083ffff : 0000:04:00.0
  feaff000-feafffff : reserved
    feaff000-feafffff : pnp 00:09
fec00000-fec0ffff : reserved
  fec00000-fec003ff : IOAPIC 0
fed00000-fed003ff : HPET 0
  fed00000-fed003ff : reserved
fed10000-fed13fff : pnp 00:09
fed18000-fed18fff : pnp 00:09
fed19000-fed19fff : pnp 00:09
fed1c000-fed8ffff : reserved
  fed1c000-fed1ffff : pnp 00:09
  fed20000-fed3ffff : pnp 00:09
  fed40000-fed44fff : pnp 00:09
  fed45000-fed8ffff : pnp 00:09
fee00000-fee00fff : Local APIC
  fee00000-fee00fff : reserved
ff000000-ffffffff : reserved
  ff000000-ffffffff : pnp 00:09
100000000-17bffffff : System RAM
180000000-1bbffffff : System RAM

那是未分配的用户空间内存吗..?

请说清楚。

请不要将这篇文章与这里的文章混淆:

Is System RAM the only section where heap/stack resides?

【问题讨论】:

  • 我的问题是为什么有多个“系统内存”?
  • @satish:内存映射“不连续”。因此,您将拥有由未分配内存(即系统 RAM)交错的设备特定内存映射。

标签: linux linux-kernel linux-device-driver


【解决方案1】:
0000000-0000ffff : reserved      // Reserved = not used, not available for anything.
00010000-0009c3ff : System RAM   // Regular memory - can be used to store code or data/
0009c400-0009ffff : reserved    
000a0000-000bffff : PCI Bus 0000:00   // PCI device memory case
  000a0000-000bffff : Video RAM area   // (graphics/video memory in this)
000c0000-000c7fff : Video ROM          // VGA BIOS memory
000d0000-000d0fff : Adapter ROM        // General area for "boot ROM", e.g. Network boot
000d2000-000d3fff : reserved    
000d4000-000d7fff : PCI Bus 0000:00   // Some other PCI device
000d8000-000dbfff : PCI Bus 0000:00   // as above
000dc000-000dffff : PCI Bus 0000:00
000e0000-000fffff : reserved
  000f0000-000fffff : System ROM      // System BIOS
00100000-bb27bfff : System RAM        // Regular RAM
  01000000-015b0afb : Kernel code     // Kernel "code" uses this bit.
  015b0afc-01878c3f : Kernel data     // Kernel "data"
  01939000-01a11fff : Kernel bss      // Kernel "initialized to zero" data.
bb27c000-bb281fff : reserved    
bb282000-bb3e9fff : System RAM
bb3ea000-bb40efff : reserved    
bb40f000-bb46efff : System RAM  
bb46f000-bb46ffff : reserved
bb470000-bb4f0fff : ACPI Non-volatile Storage    // Advanced Control and Power Interface memory (doesn't got away when power is off!)
bb4f1000-bb70efff : reserved
bb70f000-bb716fff : System RAM
bb717000-bb71efff : reserved
bb71f000-bb77dfff : System RAM
bb77e000-bb79efff : ACPI Non-volatile Storage 
bb79f000-bb7e1fff : System RAM
bb7e2000-bb7fefff : ACPI Tables
bb7ff000-bb7fffff : System RAM
bb800000-bfffffff : reserved
c0000000-dfffffff : PCI Bus 0000:00
  c0000000-c04fffff : PCI Bus 0000:04     // PCI bus bridge device

【讨论】:

  • 彼得森:清楚..谢谢..!请你简单介绍一下。 bb470000-bb4f0fff : ACPI Non-volatile Storage // 高级控制和电源接口内存(断电时不会消失!)
  • 它通常被实现为 NVRam(串行 eeprom)——它是“非易失性的”,因此无需打开电源即可将内容存储在那里。老实说,我不知道它是如何/用于什么的。
  • Peterson : 好的,我想通了,也许 eeprom 映射到那里。当系统关闭时,它将该区域的内容存储到 eeprom
  • 串行 EEPROM 不太可能映射到线性内存地址空间。串行 EEPROM 通常使用 TWI 或 I2C 或 SPI 连接到系统,并且设备地址空间通常保留在串行接口的本地。 (虽然 Atmel 确实在 U-Boot 中对 DataFlash 进行了软件映射。)ACPI 非易失性存储更可能是电池供电的 SRAM 或并行闪存。
  • @sawdust,可能是电池供电的 SRAM,我怀疑是并行闪存
【解决方案2】:

iomem 是映射到物理内存和设备寄存器的地址。

引用系统 RAM 的地址称为物理地址(用于存储内核或用户空间代码和数据),引用设备映射的地址称为总线地址。

这在很大程度上取决于架构。

【讨论】:

  • 我无法理解你所说的。在这里,很少有区域被标记为“系统内存”我想知道这个系统内存是否意味着未分配的内存(用户空间)。
猜你喜欢
  • 1970-01-01
  • 2017-01-06
  • 2020-05-17
  • 2013-12-26
  • 2011-09-25
  • 2018-10-22
  • 2016-08-06
  • 1970-01-01
相关资源
最近更新 更多