컴퓨터 구조 · 입출력과 버스 · 퀴즈
퀴즈: 입출력과 버스
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
초당 수십만 개의 패킷이 도착하는 네트워크 카드에서 인터럽트만 쓰면 어떤 문제가 생기는가?
- 패킷 순서가 뒤바뀌어 애플리케이션이 재정렬해야 한다
- DMA 가 비활성화되어 CPU 가 직접 데이터를 복사한다
- 인터럽트 처리 비용이 누적되어 시스템이 유용한 일을 못 하게 된다
- 체크섬 검증이 생략되어 손상된 패킷이 그대로 올라온다
DMA 를 사용하는 주된 이유는?
- 전송 오류를 자동으로 정정하려고
- 데이터 전송 중에도 CPU 가 다른 일을 할 수 있게 하려고
- 장치의 대역폭 자체를 늘리려고
- 인터럽트를 완전히 없애려고
드라이버 코드에서 장치 상태 레지스터를 while 루프 안에서 계속 읽고 있다. 성능 관점에서 가장 정확한 지적은?
- 메모리 접근이므로 캐시에 올라가 두 번째부터는 싸다
- 컴파일러가 루프를 자동으로 제거해 준다
- MMIO 읽기는 캐시되지 않고 매번 버스 왕복이 필요하므로 그 루프는 I/O 왕복의 반복이다
- 루프 횟수만큼 인터럽트가 발생한다
GPU 를 x16 대신 x4 슬롯에 장착했을 때 예상되는 증상은?
- GPU 의 연산 성능 자체가 4분의 1로 떨어진다
- GPU 메모리 용량이 줄어든다
- 호스트와 GPU 사이의 데이터 전송 대역폭이 줄어 전송이 병목이 된다
- 아무 차이가 없다
여러 GPU 를 묶어 학습할 때 NVLink 같은 전용 인터커넥트를 쓰는 이유는?
- PCIe 는 GPU 간 직접 통신을 아예 지원하지 않기 때문
- NVLink 가 GPU 메모리를 합쳐 하나로 만들어 주기 때문
- 카드 간 데이터 교환량이 커서 PCIe 대역폭이 병목이 되기 때문
- PCIe 는 전력 공급이 부족하기 때문
폴링 방식이 인터럽트보다 나은 상황으로 가장 적절한 것은?
- 장치가 아주 드물게, 예측할 수 없는 시점에 데이터를 보낼 때
- 지연에 극도로 민감하고 데이터가 거의 끊임없이 도착할 때
- CPU 코어가 하나뿐일 때
- 장치가 DMA 를 지원하지 않을 때