I/O Interfaces & Buses
In PCI Express, sending many packets that each write 64 bytes yields effective bandwidth well below the theoretical figure. What is the main reason?
- A64-byte payloads cannot be sent over PCI Express
- BEach packet carries headers, error-detection codes and other overhead, which are large relative to the data
- CSmall packets are always corrupted and resent every time
Show answer and explanation
Answer: B. Each packet carries headers, error-detection codes and other overhead, which are large relative to the data
Besides data, a PCI Express packet carries a header with address and type, a data-link sequence number and CRC, physical-layer framing and so on, about 20 to 30 bytes in total. With 64 bytes of data, roughly 30% of the bits sent are not data. Transfers of 256 bytes or more shrink this share. This is another reason to watch packet size, not just raw bandwidth.
- A. 64 bytes can be sent without problems.
- B. Correct. Larger packets are more efficient.
- C. Small packets are not more error-prone.