I/O 인터페이스와 버스

네트워크 카드나 NVMe SSD 등에서 널리 사용되는, 메모리 상의 기술자(디스크립터) 링을 사용한 DMA 구조에 대해 올바른 것은 무엇입니까?

  1. ACPU가 데이터를 1바이트씩 기기의 레지스터에 써서 전송한다
  2. BCPU는 전송의 주소와 길이를 기술자에 써서 기기에 알리기만 하고, 기기가 기술자를 읽어 스스로 전송을 진행한다
  3. C기술자는 기기 안에만 있고 CPU에서는 보이지 않는다
정답과 해설 보기

정답: B. CPU는 전송의 주소와 길이를 기술자에 써서 기기에 알리기만 하고, 기기가 기술자를 읽어 스스로 전송을 진행한다

기술자 링은 메인 메모리 상에 나열한 「어느 주소부터 몇 바이트를 보낼지」를 적은 표를 고리처럼 사용하는 구조입니다. CPU는 비어 있는 기술자에 전송 내용을 쓰고, 기기 레지스터에 「여기까지 썼다」고 한 번 알립니다. 기기는 DMA로 기술자를 읽고 데이터를 전송하며, 끝난 기술자에 완료 표시를 붙입니다. CPU와 기기가 서로를 기다리지 않고 많은 전송을 진행할 수 있습니다.

  • A. 그것은 DMA를 사용하지 않는 프로그램에 의한 입출력입니다.
  • B. 올바릅니다. 많은 전송을 한꺼번에 기기에 맡길 수 있습니다.
  • C. 기술자는 메인 메모리에 놓이며 CPU와 기기 모두 읽고 씁니다.
이 분야 연습하기 분야로 돌아가기

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

  1. PCI Express 링크의 절전 기능(ASPM에 의한 L0s나 L1 상태)에 대해 올바른 것은 무엇입니까?
  2. 칩이나 보드 사이의 고속 연결이 많은 선을 나란히 두는 병렬 전송에서, 적은 선에 빠른 신호를 흘리는 직렬 전송으로 옮겨 온 주된 이유는 무엇입니까?
  3. 고속 직렬 전송에서 사용되는 SerDes(시리얼라이저/디시리얼라이저)의 역할로 올바른 것은 무엇입니까?
  4. 고속 직렬 전송에서 2개의 선에 반대 방향의 신호를 흘리는 차동 신호가 사용되는 주된 이유는 무엇입니까?
  5. 고속 직렬 전송의 수신 측에 있는 클록 데이터 리커버리(CDR) 회로의 역할로 올바른 것은 무엇입니까?

이 분야의 비교