CPU Slowdown Due to DMA Cycle Stealing (16-bit Transfers)

CPU Slowdown Due to DMA Cycle Stealing (16-bit Transfers)

Verified Sources
Nov 3, 2026

We analyze a DMA subsystem using cycle stealing: while the DMA transfers data, it temporarily takes memory/bus access cycles away from the CPU, which reduces the CPU’s instruction throughput. To quantify the slowdown, we (1) convert the device’s character rate into the resulting DMA word rate, (2) determine how often the CPU loses cycles per DMA word (cycle stealing model), then (3) translate the lost cycles into an instruction-rate slowdown relative to the baseline CPU rate.

Key quantities in this problem:

  • cycle stealing (assume 1 stolen CPU/bus cycle per transferred word for this standard word-at-a-time model)
  • DMA transfer word rate (computed from character rate)
  • instruction throughput (given as 10610^6 instr/s)
  • slowdown factor

DMA basics and cycle stealing (educational)

Step 1: Convert character transmission rate to DMA word transmission rate

The device transmits at 2400 characters per second. Each DMA transfer is a 16-bit word, and characters are typically 8-bit (1 byte) characters in such textbook DMA problems. Thus:

  • 1 character = 8 bits = 1 byte
  • 16-bit DMA word = 2 bytes = 2 characters

Therefore, the DMA word rate is:

fword=2400 characters/s2 characters/word=1200 words/sf_{\text{word}}=\frac{2400\ \text{characters/s}}{2\ \text{characters/word}}=1200\ \text{words/s}

So the DMA initiates 1200 word transfers per second.

If your course assumes a different character width (e.g., 16-bit characters), the conversion would change accordingly. Here, the “16-bit words assembled from characters” wording strongly implies 2 characters per word.

Step 2: Relate cycle stealing to CPU slowdown

With cycle stealing, the DMA steals CPU/bus cycles during each transfer. In the common simple performance model used in coursework:

  • each transferred word costs the CPU 1 bus/memory cycle
  • CPU instruction rate is reduced in proportion to the fraction of cycles stolen

If the CPU baseline completes instructions at 10610^6 instructions/s, then each missing CPU cycle reduces instruction completion proportionally. Under the standard assumption “1 stolen CPU cycle = 1 instruction time quantum” (i.e., instruction throughput scales linearly with available cycles), the slowdown fraction equals:

stolen fraction per second=NstolenNavailable\text{stolen fraction per second}=\frac{N_{\text{stolen}}}{N_{\text{available}}}

Here:

  • Nstolen=1200N_{\text{stolen}} = 1200 stolen cycles/s (1 per word)
  • Navailable=106N_{\text{available}} = 10^6 instruction cycles/s baseline (instruction throughput rate proxy)

So:

fraction slowed=1200106=1.2×10−3=0.0012\text{fraction slowed}=\frac{1200}{10^6}=1.2\times 10^{-3}=0.0012

Step 3: Compute how much the CPU will be slowed down

If the CPU is slowed by a fraction 0.00120.0012, then the new effective CPU instruction rate is:

fCPU,new=(1−0.0012)×106=998,800 instructions/sf_{\text{CPU,new}}=(1-0.0012)\times 10^6 =998{,}800\ \text{instructions/s}

So the CPU slowdown is:

  • Absolute drop:
106−998,800=1,200 instructions/s10^6 - 998{,}800 = 1{,}200\ \text{instructions/s}
  • Relative slowdown:
0.0012=0.12%0.0012 = 0.12\%

Answer: The CPU will be slowed down by approximately 0.12%0.12\%, dropping from 1.0×1061.0\times 10^6 to about 9.988×1059.988\times 10^5 instructions per second.

Compute CPU slowdown from DMA cycle stealing

  1. 1
    Step 1

    Assume 8-bit characters; a 16-bit word needs 2 characters, so fword=2400/2=1200f_{word}=2400/2=1200 words/s.

  2. 2
    Step 2

    Cycle stealing costs 1 CPU/bus cycle per DMA word in the standard model, so Nstolen=1200N_{stolen}=1200 cycles/s.

  3. 3
    Step 3

    Baseline CPU throughput is 10610^6 instr/s, so fraction lost is 1200/106=0.00121200/10^6=0.0012.

  4. 4
    Step 4

    New rate: (1−0.0012)⋅106=998,800(1-0.0012)\cdot 10^6=998{,}800 instr/s; percent slowdown =0.12%=0.12\%.

CPU instruction throughput impact from DMA cycle stealing

Baseline vs after DMA steals 1 cycle per DMA word (1200 words/s).

Common assumption in cycle-stealing problems

Many textbook problems use a simplified model: “1 stolen bus/memory cycle per DMA word.” If your course uses a different bus-cycle mapping, recompute NstolenN_{stolen} accordingly.

Character size matters

This solution assumes each character is 8 bits (1 byte). If the device transmits 16-bit characters instead, then characters-to-words becomes 1:1 and the slowdown doubles.

Quick checks & variations

Knowledge Check

Question 1 of 4
Q1Single choice

Given 2400 characters/s and 16-bit DMA words assembled from 8-bit characters, what is the DMA word rate?