Many early computers and most 8 bit microprocessors
use an accumulator architecture,
where the central accumulator register is used both as the target
and as one source operand for arithmetic and logic instructions,
while the other source operarand (if any) is provided by the
main memory.
From the point of hardware designs,
this architecture has two advantages.
First, only one register is required, and it can be located
right near to the ALU which keeps wire-lengths short and guarantees
high clock-rates (for the ALU/accumulator block).
Second, no additional adress bits are required in the instruction words,
which is especially helpful on short (16 bit lor lower) instructions.
The obvious disadvantage is that typical 2-address or 3-address
operations like C = A + B
have to be split into
multiple individual operations
(accu = A
, accu = accu + B
, C = accu
).
The applet uses on user-configurable ALU, one standard D-type register for the accumulators, and a standard RAM for the main memory. All control inputs are driven by input switches (Ipin and IpinVector); these would be driven by other functional units and the control-unit in a real microprocessor system.
Try to execute a few arithmetical and logical operations on this datapath!
Run the applet | Run the editor (via Webstart)