600 likes | 614 Views
Computer Design Basics. Chapter 4. ~ Outline ~ Datapath Arithmetic Logic Unit (ALU) The Shifter Datapath Representation The Control Word. Datapath. Datapath. Computer Specification Instruction Set Architecture (ISA)
E N D
Computer Design Basics Chapter 4 ~ Outline ~ Datapath Arithmetic Logic Unit (ALU) The Shifter Datapath Representation The Control Word
Datapath • Computer Specification • Instruction Set Architecture (ISA) • The specification of a computer's appearance to a programmer at its lowest level. • It describe all the available instruction set in the computer, where it is kept (address) and how to use it (read). • Computer Architecture • A high-level description of the hardware implementing the computer derived from the ISA • Consists of: A Datapath and A Control
Datapath • The architecture usually includes additional specifications such as speed, cost, and reliability. • Simple computer architecture comprise of: • Datapath for performing operations • Control unitfor controlling datapath operations • A datapath is specified by: • A set of registers • The micro-operations performed on the data stored in the registers • A control interface
Datapath and Control • Control Unit - Determines the enabling and sequencing of the operations • Datapath - performs data transfer and processing operations The control unit receives: – External control inputs – Status signals The control unit sends: – Control signals – Control outputs
A General Purpose Processor CPU Control Word
A General Purpose Processor • Computer Datapath • Implements register transfer micro-operations and serves as a framework for the design of detailed processing logic. • Control Word • Provides a tie between the datapath and the control unit.
Datapath Guiding principles for basic datapaths (Typical): • The set of registers: • Collection of individual registers • A set of registers with common access resources called a register file • A combination (individual & set of reg.) of the above • Micro-operation implementation: • One or more shared resources for implementing micro-operations • Buses - shared transfer paths • Arithmetic-Logic Unit (ALU) - shared resource for implementing arithmetic and logic micro-operations • Shifter - shared resource for implementing shift micro-operations
Datapath • The combination of: A set of registers with a shared ALU, and interconnecting paths.
Block Diagram of a Generic Datapath • Four parallel-load registers • • Two mux-based register selectors • • Register destination decoder • • Mux B for external constant input • • Buses A and B with external address and data outputs • • ALU and Shifter with Mux F for output select (Function Unit) • • Mux D for external data input • • Logic for generating status bits V, C, N, Z
Block Diagram of a Generic Datapath Example: R1 R2 + R3 Note: G Select must refer to Function Table of Arithmetic Circuit (refer next 3 slides)
Arithmetic Logic Unit (ALU) • ALU Comprise of: • An arithmetic circuit (add, subtract) • A logic circuit (bitwise operation) • A selector to pick between the two circuits 1 2 3
Arithmetic Logic Unit (ALU) • ALU Comprise of: • An arithmetic circuit • An n-bit parallel adder • A block of input logic with 2 selectors S1 and S0 1 * Mode Select (S2) distinguishes between arithmetic and logic operations which actually construct item G Select (4-bits) 3
ALU • Is a combinational circuit that performs a set of basic micro-operations on: • Arithmetic • Logic • Has a number of selection lines used to determine the operations to be performed e.g. • n selection lines can specify up to 2n types of operations.
An n-bit ALU • n data inputs of A are combined with n data inputs of B, to generate the result of an operation at the G outputs. • S2=0 Arithmetic operations (8). Which one – is specified by S1, So and Cin. • S2=1 Logic operations (4). Which one – is specified by So and Cin.
Question • What are the 8 arithmetic operations? • What are the 4 logic operations?
How to design the ALU? • Design the arithmetic section • Design the logic section • Combine both sections
To be designed… One Stage of ALU S2 = 0 for Arithmetic S2 = 1 for Logic
Arithmetic Circuit Design 1 Given …
Arithmetic Circuit Design 1 Analyze the Circuit: Use Note : X = A G = A + Y + Cin For S1 and S0 = 00, then G = A + 0 + 0 G = A E.g. We can verify for n = 4 bit: A = 1010 B = 0101
Y = BS0 + BS1 Building the B input Logic • Obtain the K-Map • Get the Boolean Expression Input = S1, S0 and B Output = Y
Y Building the B input Logic Y = BS0 + BS1 Example of a 4-bit Arithmetic Circuit Any other alternative?
Use Multiplexer 0 B B 1
Building the Logic Circuit 2 • The Logic Circuit performs bitwise operation • Commonly : AND, OR, XOR and NOT Note: if 4 bit is wanted, then we have to arrange it in array One Stage of Logic Circuit
Building the Selector for choosing Arithmetic or Logic Unit 3 S2 = 0 for Arithmetic S2 = 1 for Logic One Stage of ALU Refer also Fig. 10.2
Exercise 1. Design a 4-bit logic unit of an ALU to do:
Exercise 2. Draw the complete diagram of the ALU, which consists of: • The Arithmetic Circuit • The Logic Circuit • The Selector circuit For: • A bit-slice (one stage) circuit • A 2-bits circuit • A 4-bits circuit
Find the G select for given RTL: Exercise R1 R2 + R3 Therefore; S2 = 0 for Arithmetic operation S1 = 0 S0 = 1 Cin = 0 LSB G Select (4-bits) 0010 0010 Answer : MSB
The Shifter • The Shifter Shifts the value on Bus B, placing the result on an input of MUX F • The Shifter can: • Shift Right • Shift Left • It is obvious that the shifter would be a bidirectional shift register with parallel load. • Alternatively, a combinational logic shifter can be constructed using multiplexers.
Barrel Shifter • Barrel in BM = ? • “Tong Deram” • Is a combinational circuit. • Can shift data more than 1-bit position in a single clock cycle? • Number of bit positions to be shifted or rotated is specified by the “select” inputs. • Shift here is Rotate Left. • Data is shifted left with the MSB rotated back as LSB.
Barrel Shifter • The data can be shifted or rotated more than one bit position in a single clock cycle • By using MUX. • 2n input requires 2n MUX.
4 Bit Basic Shifter • Serial Inputs: • IR : right shift • IL : left shift
4-Bit Barrel Shifter • A rotate is a shift in which the bits shifted out are inserted into the positions vacated • The circuit rotates its contents left from 0 to 3 positions depending on Selector S. Note that a left rotation by three (3) positions is the same as a right rotation by one position in this 4 bit barrel shifter
Exercise Find the output Y for each of the following bit patterns applied to S1, S0, D3, D2, D1 and D0: • 000101 • 101010 • 010011
Datapath Representation Regs, mux, dec., enable hw Register File One hierarchy level Up ALU, shifter, mux F, zero detect Function Unit
n D data Write m D address m 2 n x Register file m m A address B address A data B data Constant in n n n 1 0 MB select MUX B n Bus A Address out Bus B n Data out A B 4 FS V Function C unit N Z F n n Data in 0 1 MD select MUX D Datapath Representation (cont.) • In the register file: • Multiplexer select inputs become A address and B address • Decoder input becomes D address • Multiplexer outputs become A data and B data • Input data to the registers becomes D data • Load enable becomes write • The register file now appears like a memory based on clocked flip-flops (the clock is not shown) • The function unit labeling is quite straightforward except for FS
Definition of Function Unit Select (FS) Codes • Notice that the G, H and MF Select are combined as FS. • Boolean Equations: • MF = F3.F2 • Gi = Fi • Hi = Fi
Control Word • The datapath has many control inputs. • The signals driving these inputs can be defined and organized into a control word. • To execute a micro-instruction, we apply control word values for a clock cycle. • For most micro-operations, the positive edge of the clock cycle is needed to perform the register load. • The control word represents the control inputs to the datapath. • Its determines the micro-operation to be executed for each clock pulse.
A Datapath with Control variables MUX B Selects between constant values on Constant in and register values on B data. • Register File • 8 registers, R0 to R7. • Outputs to Function Unit via Bus A and Bus B. MUX D Selects the function unit output or the data on Data in as input for the register file. • 16 control inputs (represented by control word).
The Control Word Fields Control Word Fields (7): • DA : D Address • AA : A Address • BA : B Address • MB : Mux B • FS : Function Select • MD : Mux D • RW : Register Write Total : 16-bits (3-bits) (3-bits) (3-bits) (4-bits) (1-bit) Register Fields
n D data Write m D address m 2 n x Register file m m A address B address A data B data Constant in n n n 1 0 MB select MUX B n Bus A Address out Bus B n Data out A B 4 FS V Function C unit N Z F n n Data in 0 1 MD select MUX D
R1 R2 + R3 + 1 How RTL is coded as a Control Word • R2: source register for A input of ALU • R3: source register for B input of ALU • Function Unit operation: F= A+B+1 • R1: Destination register for results DA AA BA MB FS MD RW R1 R2 R3 Register F= A+B+1 Function Write 001 010 011 0 0101 0 1
R4 sl R6 How RTL is coded as a Control Word • Shifter : to shift left • Contents of R6, shifted to the left, is transferred to R4 • Shifter is driven by B bus • Source register: specified in BA field. DA AA BA MB FS MD RW R4 - R6 Register F= sl B Function Write 100 XXX 110 0 1110 0 1