I/O 인터페이스와 버스

PCI Express 기기의 레지스터나 메모리를 CPU에서 읽고 쓸 수 있게 하는 구조로 올바른 것은 무엇입니까?

  1. A부팅 시 OS 등이 기기가 요구하는 크기를 조사하고, BAR(베이스 어드레스 레지스터)에 주소를 할당하여 메모리 주소로 보이게 한다
  2. B기기마다 제조 시에 고정된 주소가 정해져 있다
  3. CCPU는 기기의 레지스터를 읽을 수 없고 모든 것을 DMA로 주고받는다
정답과 해설 보기

정답: A. 부팅 시 OS 등이 기기가 요구하는 크기를 조사하고, BAR(베이스 어드레스 레지스터)에 주소를 할당하여 메모리 주소로 보이게 한다

PCI Express 기기는 자신의 레지스터와 메모리 크기를 BAR로 알립니다. 부팅 시 펌웨어와 OS가 연결된 모든 기기를 조사하고(열거), 주소가 겹치지 않도록 할당합니다. 이후 CPU는 할당된 주소를 일반 메모리처럼 읽고 써서 기기를 조작합니다. 기기를 나중에 꽂았을 때도 같은 방식으로 주소가 할당됩니다.

  • A. 올바릅니다. 메모리 맵 I/O로 사용합니다.
  • B. 고정되어 있으면 기기끼리 주소가 겹치게 됩니다.
  • C. CPU는 레지스터를 직접 읽고 쓸 수 있습니다.
이 분야 연습하기 분야로 돌아가기

I/O 인터페이스와 버스의 다른 문제

  1. PCI Express에서 사용되는 MSI(메시지 시그널 인터럽트)의 특징으로 올바른 것은 무엇입니까?
  2. 인터페이스의 성능을 나타내는 「대역」과 「지연(레이턴시)」의 차이로 올바른 것은 무엇입니까?
  3. 대역 10 GB/s, 지연 1 µs인 연결에서 64바이트 데이터를 1회 보내는 데 걸리는 시간에 가장 가까운 것은 무엇입니까(시간=지연+데이터량÷대역으로 합니다)?
  4. 기기와 작은 데이터를 하나씩 수천 번 주고받는 프로그램을 빠르게 하는 방법으로 가장 효과적인 것은 무엇입니까?
  5. USB의 통신 방식에 대해 올바른 것은 무엇입니까(USB4를 제외한 기존 USB에 대해)?

이 분야의 비교