打印系统内存结构

打印系统内存结构

我的系统配备 8 GB RAM 和 2 GB VRAM。它运行带有内核的 Ubuntu 18.04 4.15.0-74-generic x86_64

IIUC,这两类内存,除了BIOS只读内存之外,都映射到虚拟和物理地址空间。

是否有工具可以显示此映射是如何执行的?特别是,哪些范围的物理/虚拟地址位于系统 RAM 中,哪些范围位于 VRAM 中,哪些范围位于 BIOS 中。

我不知道是否lsmem是正确的工具,因为它似乎不区分内存的类型。


编辑

关于lspci

$ lspci -v -s 01:00.0
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1) (prog-if 00 [VGA controller])
    Subsystem: ASUSTeK Computer Inc. GK107 [GeForce GTX 650]
    Flags: bus master, fast devsel, latency 0, IRQ 29
    Memory at ee000000 (32-bit, non-prefetchable) [size=16M]
    Memory at d0000000 (64-bit, prefetchable) [size=256M]
    Memory at e0000000 (64-bit, prefetchable) [size=32M]
    I/O ports at e000 [size=128]
    [virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: nvidia
    Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia

内存总量似乎为16+256+32 = 304MB,而这张卡应该有1024MB。

答案1

您已经发现lsmem

$ lsmem

然后,lspci将给出有关显卡内存和映射的信息。首先列出PCI总线:

$ lscpi

识别您的卡(左侧的数字)。假设它被列为 00:02.0。

$ lspci -v -s 00:02.0

对于完整的视频内存,不必映射,您可以执行以下操作:

$ glxinfo | egrep -i 'device|memory'

相关内容