x86 ISA 장치가 전체 32비트 주소 공간에서 DMA를 수행할 수 없는 이유는 무엇입니까?

x86 ISA 장치가 전체 32비트 주소 공간에서 DMA를 수행할 수 없는 이유는 무엇입니까?

x86 ISA 장치 에 따르면 ISA 장치 Robert LoveLinux Kernel Development물리적 메모리의 처음 16MB(범위 0MB-16MB)에만 액세스할 수 있기 때문에 전체 32비트 주소 공간에서 DMA를 수행할 수 없습니다. 왜 이런 일이 발생합니까?

답변1

16비트 ISA 버스주소 라인은 24개뿐이므로 최대 16MiB의 주소만 인코딩할 수 있습니다. 이는 8086 및 20개의 주소 라인과 함께 사용되는 8비트 확장 버스의 확장으로 설계된 80286 CPU와 일치합니다.

ISA 버스 자체는 24개의 주소 라인 이상으로 확장되지 않습니다. 이는 MCA, EISA, VESA 로컬 버스 및 PCI로 대체되었습니다.

관련 정보