Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • Reading Paths
  • Concept Map
  • How to Read the Diagrams
  • Part 0: What Is a Protocol?10
  • Part 1: Timing and Clocking11
  • Part 2: Encoding and Framing12
  • Part 3: Handshakes13
  • Part 4: Flow Control17
  • Part 5: Transactions19
  • Part 6: Concurrency and Performance17
  • Part 7: Ordering13
  • Part 8: Sharing and Arbitration12
  • Part 9: Deadlock and Liveness13
  • Part 10: Reliability and Recovery20
    • Error Models
    • Parity
    • Hamming Distance
    • CRC
    • ECC and SECDED
    • Forward Error Correction
    • Error Responses
    • Poison and Containment
    • ACK and NAK
    • Sequence Numbers
    • Replay Buffers
    • Go-Back-N or Selective Repeat
    • Idempotency and Safe Replay
    • Link-Level or End-to-End Protection
    • Error Classes and Reporting
    • Recovery and Degradation
    • Interface Protection and Safety
    • The Reliability Budget
    • Protocols Compared: Reliability and Recovery
    • Drills: Reliability and Recovery
  • Part 11: Bring-Up and Link Management10
  • Part 12: Power8
  • Part 13: Shared State and Coherence9
  • Part 14: Security and Isolation7
  • Part 15: Specifying and Verifying11
  • Part 16: Protocols Dissected17
  • Part 17: Capstones5
  • Part 18: Interview Preparation6
Loading lesson

‹First Principles of Hardware Protocols
  1. Topics
  2. First Principles of Hardware Protocols
  3. Part 10: Reliability and Recovery

Part 10 · Reliability and Recovery · All levels

Part 10: Reliability and Recovery

What if bits go wrong? Choose between parity, CRC, ECC and FEC for a given channel.

  • 20topics
  • 20lessons
On this page

    Part 10 answers: What if bits go wrong?

    Where Part 10 sits among the fifteen questions of the course.

    Every real channel flips bits now and then. A protocol has to decide how to notice (parity, CRC, ECC), what to do about it (correct, ask again, poison, report), and at which layer, without breaking ordering or hiding a failing link.

    This part covers error models, parity, Hamming distance, CRC, ECC, forward error correction, error responses, poison, ACK/NAK, sequence numbers, replay buffers, go-back-N and selective repeat, idempotency, link-level versus end-to-end protection, error reporting, recovery, interface protection and reliability budgets.

    After this part you can

    • Choose between parity, CRC, ECC and FEC for a given channel.

    • Size a replay buffer and a sequence-number field.

    • Turn a bit error rate into a replay rate and an undetected-error rate.

    Warm-up: three questions from Part 9

    Answer each in your head before opening it. If two or more feel shaky, revisit Part 9: Deadlock and Liveness first.

    Check yourself Name the four conditions for deadlock.

    Mutual exclusion, hold and wait, no preemption, and circular wait. Break any one and deadlock cannot happen.

    Check yourself Why must a requester always be able to accept responses?

    If responses could be refused, a response stuck behind a full requester can block the resources other requests need to complete: a message-dependent deadlock.

    Check yourself What separates livelock from deadlock?

    In deadlock nothing moves. In livelock things keep moving (retries, handshakes) but no useful work completes.

    Lessons

    #

    Lesson

    Level

    Status

    10.1

    Error Models

    F · Foundation

    Ready

    10.2

    Parity

    F · Foundation

    Ready

    10.3

    Hamming Distance

    W · Working

    Ready

    10.4

    CRC

    W · Working

    Ready

    10.5

    ECC and SECDED

    W · Working

    Ready

    10.6

    Forward Error Correction

    S · Senior

    Ready

    10.7

    Error Responses

    W · Working

    Ready

    10.8

    Poison and Containment

    S · Senior

    Ready

    10.9

    ACK and NAK

    W · Working

    Ready

    10.10

    Sequence Numbers

    W · Working

    Ready

    10.11

    Replay Buffers

    S · Senior

    Ready

    10.12

    Go-Back-N or Selective Repeat

    S · Senior

    Ready

    10.13

    Idempotency and Safe Replay

    P · Principal

    Ready

    10.14

    Link-Level or End-to-End Protection

    S · Senior

    Ready

    10.15

    Error Classes and Reporting

    S · Senior

    Ready

    10.16

    Recovery and Degradation

    S · Senior

    Ready

    10.17

    Interface Protection and Safety

    P · Principal

    Ready

    10.18

    The Reliability Budget

    P · Principal

    Ready

    —

    Protocols compared

    all levels

    Ready

    —

    Drills and checkpoint

    all levels

    Ready

    Every lesson in this part is ready. Work through them in order: each one sets up the problem the next one solves.

    Tip

    DCLink in this part. Step 9: CRC, sequence numbers and a replay buffer. DCLink is the small protocol you build across the course; see How to use this course.

    Where other courses go deeper

    This course teaches why protocols are designed the way they are. These lessons show how to build or sign off the same ideas, so this part links to them instead of repeating them.

    • RTL: Parity Datapath

    Related topics

    • Course hub

    • Previous: Part 9 · Deadlock and Liveness

    • Next: Part 11 · Bring-Up and Link Management

    PreviousNext: Error Models

    Up next

    Up nextError Models

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • How to Use This Course
    • Reading Paths
    • Concept Map