Control Unit of the Basic Computer: Block Diagram and Control Timing Diagrams
A basic computer (in the Mano-style “basic computer” model) uses a Control Unit to coordinate register transfers across timing states such as instruction fetch, decode, and execution. The control unit’s internal organization is typically described as: an Instruction Register feeding a Decoder plus a Timing and Control Logic that produces control signals for the datapath.
A standard way to communicate how the control unit behaves is via control timing diagrams where each T-state (e.g., ) is mapped to the control signals asserted during instruction fetch, memory reference, register reference, and branch-type operations.
Important constraint note: I attempted to run required web searches for citations, but the browsing tool errored due to a plan usage limit. Because the course format you requested requires that “every major claim, statistic, or technical detail must be backed by a search result citation,” I cannot legally produce a fully compliant, citation-backed course section at this time.
Citation requirement prevents completion
Your requested format mandates web-backed citations for major technical claims. Current web searches failed, so I cannot provide the citation-compliant Coursify content.
Basic Computer (Mano) — Control Unit & Timing (instruction fetch/execute)
Draw the Control Unit block diagram (basic computer model)
- 1Step 1
Identify inputs: opcode from the Instruction Register, status/condition flags from the I/O & status logic (e.g., carry/zero where applicable), and a Clock.
- 2Step 2
Add a T-state counter / Timing generator that advances through fetch/decode/execute cycles and provides the current timing state to the control logic.
- 3Step 3
Add a combinational Decoder that maps (opcode + timing state) to a set of control signals for the datapath.
- 4Step 4
If modeling synchronous control, include control latches so that control lines change only on intended edges.
- 5Step 5
Draw outputs to: (a) Program Counter, (b) instruction memory interface, (c) Register File / Accumulator path, (d) ALU control, and (e) memory read/write and bus gating lines.
Block Diagram (what to draw)
Use this as a drawing checklist:
Key blocks to label explicitly:
- Instruction Register (input to decoder)
- Timing Generator (drives micro-timing)
- Decoder (opcode + timing → signals)
- control outputs to PC, memory, register paths, ALU
Control timing diagrams: how to read them
A control timing diagram is drawn as:
- Horizontal axis: time states
- Vertical axis: control signals such as , , , , etc.
- A control signal is asserted during those -states where the operation must occur.
Pro Tip: In timing diagrams, keep combinational decode assumptions consistent: if the model assumes “control outputs are valid during a specific window,” only assert them in that .
Typical fetch → decode → execute lifecycle (T-states)
Fetch start
T0Select PC to memory address path; begin memory read of instruction."
Fetch complete / IR load
T1Load fetched instruction into Instruction Register; increment or prepare PC update."
Decode
T2Decoder uses opcode + timing state to select the required micro-operations."
Execute (varies by instruction class)
T3…Memory reference / register reference / branch-type operations proceed with dedicated T-states."
Return to fetch
Final T-stateControl transitions back so the next instruction fetch begins."
Example timing signals to include in your diagram
Even if your exact T-state numbering varies by textbook, ensure your diagram includes these categories of control signals:
-
Instruction fetch controls
- (if MAR exists)
- (or equivalent next-PC update)
-
Effective address / operand fetch controls (for memory-reference instructions)
- (or EA computation)
- (memory read)
-
ALU / register update controls
- Update carry/extend flags where applicable
-
Write-back controls
- for store-type instructions
- for branch/jump when conditions satisfied
-
Register-reference controls
- Controls for shifts/clears/complements that operate directly on Accumulator and flags
How to draw a clean timing diagram
Start with fetch (same for all instructions), then add conditional branches: draw waveforms where the branch control lines are asserted only in the T-states when the condition is checked.
Mermaid-style timing sketch (template)
Below is a template timing diagram (replace control names and exact -state boundaries with the ones used in your specific “basic computer” reference):
What you should do in your final drawing:
- Replace the generic signals with the exact signals from your course/text (e.g., , , , , , ).
- Ensure the ordering matches the data dependencies (e.g., you can’t update before the operand is read).
Common pitfalls when explaining control timing
Knowledge Check
In a basic computer timing diagram, which component primarily determines which control signals are asserted for a given instruction during T-states?