Bit-Slice Design: Controllers and ALUs

by Donnamaie E. White

Copyright © 1996, 2001, 2002 Donnamaie E. White



Table of Contents

1. Introduction

2. Simple Controllers

3. Adding Programming Support to the Controller

4. Refining the CCU

5. Evolution of the ALU

6. The ALU and Basic Arithmetic

7. Tying the System Together





Last Edit Ocober 10, 1996; July 9, 2001

Controller Design

A computer control unit (CCU) will be used for illustration throughout the text; the design approach, however is applicable to any controller.

A Simple Computer

The simplex computer of Figure 1-1 is further reduced as shown in Figure 1-6, which shows the

  1. CCU,
  2. ALU and scratchpad registers
  3. PC (program counter)
  4. MAR (memory address register).

Figure 1-6 CPU and control block diagram

The MAR is the output to the address bus for peripheral and memory addressing. The CCU controls all devices shown and outputs to external devices via the control bus. The ALU receives and outputs data via the data bus. Addresses may be loaded into the PC via the data bus. This is a very elementary system.

This system is further reduced in Figure 1-7, where the CCU is shown to control the ALU and the ACC (accumulator, a register) with its other control functions ignored for now. Here the data may be input only via port A of the ALU; port B is loaded via the ACC register; the data is output only from the ACC. The CCU receives an instruction in the form of an op code somehow - ignore how at the moment. Given the op code as input, the CCU must proceed to generate

  1. the appropriate function control signals (three to six bits would be typical)
  2. the ACC load-enable controls (two bits) , and
  3. the carry-in (Cin) bit value.
For this elementary unit, the microword format might appear as shown in Figure 1-8.

Figure 1-7 Simple computer system (simple computer, SIMCOM)

Figure 1-8 Control required from the CCU

A simple ALU could have three control lines and perform addition, subtraction and the logical OR, AND, EXOR, etc. Functions. The carry-in bit allows the three arithmetic functions A + B, A - B, and B - A to be varied to A + B + 1, A - B - 1 and B - A - 1. This simple ALU would support the machine level and assembly instructions: ADD, SUB, OR, AND and EXOR, as shown in Figure 1-9.

Figure 1-9 ALU Functions

S2 S1 S0 CIN = 0 CIN = 1
0 0 0 A + B A + B + 1
0 0 1 B - A B - A - 1
0 1 0 A - B A - B - 1
0 1 1 A OR B
1 0 0 A AND B
1 0 1 NOT A AND B
1 1 0 A EXOR B
1 1 1 NOT(A EXOR B)


For information about this file or to report problems in its use email

Copyright © September 1996, 1999, 2001, 2002 Donnamaie E. White White Enterprises