I/O Interfaces & Buses

Which statement is correct about DMA using a ring of descriptors in memory, as widely used by network cards and NVMe SSDs?

  1. AThe CPU transfers data by writing it byte by byte into device registers
  2. BThe CPU only writes addresses and lengths into descriptors and notifies the device, which reads them and carries out the transfers itself
  3. CDescriptors exist only inside the device and are invisible to the CPU
Show answer and explanation

Answer: B. The CPU only writes addresses and lengths into descriptors and notifies the device, which reads them and carries out the transfers itself

A descriptor ring is a table in main memory, used in a circular way, where each entry says which address to transfer and how many bytes. The CPU fills free descriptors and tells the device once, through a register, how far it has written. The device reads the descriptors by DMA, transfers the data and marks finished descriptors as complete. CPU and device can advance many transfers without waiting for each other.

  • A. That is programmed I/O without DMA.
  • B. Correct. Many transfers can be handed to the device at once.
  • C. Descriptors live in main memory, read and written by both CPU and device.
Practice this topic Back to topic

More I/O Interfaces & Buses questions

  1. Which statement is correct about PCI Express link power saving (the L0s and L1 states of ASPM)?
  2. Why have high-speed connections between chips and boards moved from parallel transmission over many wires to serial transmission over a few fast wires?
  3. What is the role of a SerDes (serializer/deserializer) in high-speed serial links?
  4. Why do high-speed serial links use differential signaling, sending opposite signals on two wires?
  5. What is the role of the clock and data recovery (CDR) circuit in a high-speed serial receiver?