Linux-Kernel
為什麼 x86 ISA 設備無法對完整的 32 位地址空間執行 DMA?
根據
Robert Love
’sLinux Kernel Development
,x86 ISA 設備無法對完整的 32 位地址空間執行 DMA,因為 ISA 設備只能訪問前 16MB 的物理記憶體(範圍 0MB-16 MB)。為什麼呢?
16 位 ISA 匯流排只有 24 條地址線,因此它只能編碼高達 16MiB 的地址。這與為其設計的 80286 CPU 相匹配(作為 8086 及其 20 條地址線使用的 8 位擴展匯流排的擴展)。
ISA 匯流排本身從未超過 24 條地址線。它被 MCA、EISA、VESA 本地匯流排和 PCI 取代。