DMA
Overview
DMA对应的地址空间是DRAM,而不是MMIO。
现代 DMA 和 64 位地址:现代系统中,许多设备和 DMA 控制器可以支持 64 位地址,这意味着它们能够访问整个物理内存空间,而不再受限于 16MB 的限制。在这种情况下,BIOS 只需要确保为需要的设备分配内存,而不必局限于低地址空间。
BIOS 如何预留 DMA 空间?
内存区域保留:BIOS 会通过 ACPI 或传统的内存映射方式,向操作系统报告哪些内存区域已经被保留给设备使用。这些区域包括 DMA 缓冲区、内存映射 I/O 区域等。操作系统在接管内存管理时,会避免使用这些区域,以防止冲突。
ACPI 表(特别是 DMAR 表):在现代系统中,BIOS 会通过 ACPI 表(特别是 DMA Remapping 表,即 DMAR 表)向操作系统提供有关 DMA 和 IOMMU 的配置信息。这帮助操作系统了解 DMA 设备的内存需求,并为其分配合适的内存区域。
EBDA(Extended BIOS Data Area):在传统的 x86 系统中,BIOS 也可能使用扩展 BIOS 数据区域(EBDA)来预留低地址空间,用于 DMA 或其他设备的内存需求。
标签:DMA,操作系统,BIOS,地址,区域,内存 From: https://www.cnblogs.com/nipper/p/18405096