PCI 장치에는 두 개의 메모리 주소가 있습니까?

PCI 장치에는 두 개의 메모리 주소가 있습니까?

내가 할 때

lspci -v

가능한 오디오 장치 메모리를 찾으려면

00:1f.3 멀티미디어 오디오 컨트롤러: Intel Corporation 장치 ds35 하위 시스템: Intel Corporation 장치 754 플래그: 버스 마스터, Fast Devsel, 대기 시간 64, IRQ 126
메모리 at d1114000(64비트, 프리페치 불가능) [크기=16K ]
메모리 at d1000000 (64비트, 프리패치 불가) [size=1M] 기능: 커널...

보시다시피 "memory is located"가 두번이나 나오죠?

  1. 왜 그런 겁니까?

  2. 이 두 주소의 차이점은 무엇입니까?

  3. 왜 이 특정 오디오 장치에서만 이런 일이 발생합니까?

도와 주셔서 감사합니다.

답변1

1.) 칩셋은 오디오 컨트롤러의 메모리 매핑된 I/O 할당을 여러 블록으로 분할하도록 설계되었으며 각 블록의 기본 주소는 독립적으로 할당될 수 있습니다. 이를 통해 칩셋 설계가 더욱 유연해지고 다양한 하드웨어 구성을 수용하도록 구성할 수 있습니다.

2.) 두 블록은 서로의 복사본이 아니지만 다른 용도로 사용됩니다. 자세한 내용을 알아보려면 Intel에서 칩셋의 데이터시트 PDF(아마도 HD 오디오 표준에 대한 일부 문서)를 다운로드한 다음 매우 견고한 기술 문서를 읽어야 합니다.

3.) 오디오 컨트롤러가 MMIO 기능을 위해 총 1040K의 주소 공간을 필요로 하고 이를 크기가 모두 2의 거듭제곱인 두 개의 개별 블록에 할당하는 경우 펌웨어는 모든 MMIO를 각 하드웨어 구성 요소의 영역은 불편한 메모리 "구멍"이나 사용할 수 없는 주소 공간을 너무 많이 남기지 않고 하나 또는 여러 개의 연속 주소 블록으로 나뉩니다. 이를 통해 MTRR(Memory Type Range Register)이 MMIO 및 기존 메모리 블록에 최적의 액세스 정책을 할당할 수 있으므로 프로세서의 하드웨어 메모리 관리 장치가 보다 효율적으로 작동할 수 있습니다. 사용 가능한 MTRR의 수가 제한되어 있으므로 MMIO 블록의 긴밀한 패키징을 구현하는 데 도움이 됩니다.

관련 정보