Unformatted text preview: e principal ALU inputs are the A and B operands, all the functions may be produced by augmenting a conventional binary adder: A + B is the normal adder output (assuming that the carry-in is zero). A -- B may be implemented as A + B + 1, requiring the B inputs to be inverted and the carry-in to be forced to a one. B is implemented by forcing the A inputs and the carry-in to zero. B + 1 is implemented by forcing A to zero and the carry-in to one.
Table 1.2 MU0 control logic. MU0 - a simple processor 13 The gate-level logic for the ALU is shown in Figure 1.7. Aen enables the A operand or forces it to zero; Binv controls whether or not the B operand is inverted. The carry-out (Cout) from one bit is connected to the carry-in (Cin) of the next; the carry-in to the first bit is controlled by the ALU function selects (as are Aen and Binv), and the carry-out from the last bit is unused Together with the multiplexers, registers, control logic and a bus buffer (which is used to put the accumulator value onto the data bus), the processor is complete. Add a standard memory and you have a workable computer. MU0 extensions Although MU0 is a very simple processor and would not make a good target for a high-level language compiler, it serves to illustrate the basic principles of processor design. The design process used to develop the first ARM processors differed mainly in complexity and not in principle. MU0 designs based on microcoded control logic have also been developed, as have extensions to incorporate indexed addressing. Like any good processor, MU0 has spaces left in the instruction space which allow future expansion of the instruction set. To turn MU0 into a useful processor takes quite a lot of work. The following extensions seem most important: Extending the address space. Adding more addressing modes. Allowing the PC to be saved in order to support a subroutine mechanism. Adding more registers, supporting interrupts, and so on... Overall, this doesn't seem to be the place to start...
View Full Document
This document was uploaded on 10/30/2011 for the course CSE 378 380 at SUNY Buffalo.
- Spring '09