Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Introduction Computer Specification –Instruction Set Architecture (ISA) - the specification.

Similar presentations


Presentation on theme: "1 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Introduction Computer Specification –Instruction Set Architecture (ISA) - the specification."— Presentation transcript:

1 1 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Introduction Computer Specification –Instruction Set Architecture (ISA) - the specification of a computer's appearance to a programmer at its lowest level –Computer Architecture - a high-level description of the hardware implementing the computer derived from the ISA –The architecture usually includes additional specifications such as speed, cost, and reliability.

2 2 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Introduction (continued) Simple computer architecture decomposed into: –Datapath for performing operations –Control unit for controlling datapath operations A datapath is specified by: –A set of registers –The microoperations performed on the data stored in the registers –A control interface

3 3 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Datapaths Guiding principles for basic datapaths: –The set of registers Collection of individual registers A set of registers with common access resources called a register file A combination of the above –Microoperation implementation One or more shared resources for implementing microoperations Buses - shared transfer paths Arithmetic-Logic Unit (ALU) - shared resource for implementing arithmetic and logic microoperations Shifter - shared resource for implementing shift microoperations

4 4 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 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 Mux D for external data input Logic for generating status bits V, C, N, Z MD select 01 MUX D V C N Z n n n n n n n n nn n 22 n n A dataB data Register file 10 MUX B Address Out Data Out Bus A Bus B n n Function unit AB n G select 4 Zero Detect MF select n n n F MUX F H select 2 n AB S 2:0 || C in Arithmetic/logic unit (ALU) G B S Shifter H MUX 0 1 2 3 0 1 2 3 0123 Decoder Load Load enable Write D data D address 2 Destination select Constant in MB select A select A address B select B address R3 R2 R1 R0 Bus D n Data In I L I R 00 01 Datapath Example

5 5 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Microoperation: R0 ← R1 + R2  Apply 01 to A select to place contents of R1 onto Bus A MD select 01 MUX D V C N Z n n n n n n n n nn n 22 n n A dataB data Register file 10 MUX B Address Out Data Out Bus A Bus B n n Function unit AB n G select 4 Zero Detect MF select n n n F MUX F H select 2 n AB S 2:0 || C in Arithmetic/logic unit (ALU) G B S Shifter H MUX 0 1 2 3 0 1 2 3 0123 Decoder Load Load enable Write D data D address 2 Destination select Constant in MB select A select A address B select B address R3 R2 R1 R0 Bus D n Data In I L I R 00 01 Datapath Example: Performing a Microoperation  Apply 10 to B select to place contents of R2 onto B data and apply 0 to MB select to place B data on Bus B  Apply 0010 to G select to perform addition G = Bus A + Bus B  Apply 0 to MF select and 0 to MD select to place the value of G onto BUS D  Apply 00 to Destination select to enable the Load input to R0  Apply 1 to Load Enable to force the Load input to R0 to 1 so that R0 is loaded on the clock pulse (not shown)  The overall microoperation requires 1 clock cycle

6 6 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Datapath Example: Key Control Actions for Microoperation Alternatives Perform a shift microoperation – apply 1 to MF select Use a constant in a micro- operation using Bus B – apply 1 to MB select Provide an address and data for a memory or output write microoperation – apply 0 to Load enable to prevent register loading Provide an address and obtain data for a memory or output read microoperation – apply 1 to MD select For some of the above, other control signals become don't cares MD select 01 MUX D V C N Z n n n n n n n n nn n 22 n n A dataB data Register file 10 MUX B Address Out Data Out Bus A Bus B n n Function unit AB n G select 4 Zero Detect MF select n n n F MUX F H select 2 n AB S 2:0 || C in Arithmetic/logic unit (ALU) G B S Shifter H MUX 0 1 2 3 0 1 2 3 0123 Decoder Load Load enable Write D data D address 2 Destination select Constant in MB select A select A address B select B address R3 R2 R1 R0 Bus D n Data In I L I R 00 01

7 7 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Arithmetic Logic Unit (ALU) In this and the next section, we deal with detailed design of typical ALUs and shifters Decompose the ALU into: –An arithmetic circuit –A logic circuit –A selector to pick between the two circuits Arithmetic circuit design –Decompose the arithmetic circuit into: An n-bit parallel adder A block of logic that selects four choices for the B input to the adder See next slide for diagram

8 8 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Arithmetic Circuit Design (continued) There are only four functions of B to select as Y in G = A + Y: –0 –B –1 What functions are implemented with carry-in to the adder = 0? =1? S 1 S 0 B n B input logic n A n X C in Y n G = X + Y + C C out n-bit parallel adder C in = 0C in = 1 G = A G = A + 1 G = A – 1 G = A + B G = A G = A + B G = A + B + 1

9 9 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Arithmetic Circuit Design (continued) Adding selection codes to the functions of B: The useful arithmetic functions are labeled in the table Note that all four functions of B produce at least one useful function + = =

10 10 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Logic Circuit The text gives a circuit implemented using a multiplexer plus gates implementing: AND, OR, XOR and NOT Here we custom design a circuit for bit G i by beginning with a truth table organized as a K-map and assigning (S1, S0) codes to AND, OR, etc. G i = S 0 A i B i + S 1 A i B i + S 0 A i B i + S 1 S 0 A i Gate input count for MUX solution > 29 Gate input count for above circuit < 20 Custom design better S1S0S1S0 ANDORXORNOT AiBiAiBi 0 0 11 1 0 0 0001 0 10111 1 1100 1 00110

11 11 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Arithmetic Logic Unit (ALU) The custom circuit has interchanged the (S 1,S 0 ) codes for XOR and NOT compared to the MUX circuit. To preserve compatibility with the text, we use the MUX solution. Next, use the arithmetic circuit, the logic circuit, and a 2-way multiplexer to form the ALU. See the next slide for the bit slice diagram. The input connections to the arithmetic circuit and logic circuit have been been assigned to prepare for seamless addition of the shifter, keeping the selection codes for the combined ALU and the shifter at 4 bits: –Carry-in C i and Carry-out C i+1 go between bits –A i and B i are connected to both units –A new signal S 2 performs the arithmetic/logic selection –The select signal entering the LSB of the arithmetic circuit, C in, is connected to the least significant selection input for the logic circuit, S 0.

12 12 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Arithmetic Logic Unit (ALU) (continued) The next most significant select signals, S0 for the arithmetic circuit and S1 for the logic circuit, are wired together, completing the two select signals for the logic circuit. The remaining S1 completes the three select signals for the arithmetic circuit. C i C i + 1 One stage of arithmetic circuit One stage of logic circuit 2-to-1 MUX 0 1 S A i B i S 0 S 1 S 2 C i G i A i B i S 0 S 1 A i B i S 0 S 1 C in

13 13 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Direction: Left, Right Number of positions with examples: –Single bit: 1 position 0 and 1 positions –Multiple bit: 1 to n – 1 positions 0 to n – 1 positions Filling of vacant positions –Many options depending on instruction set –Here, will provide input lines or zero fill Combinational Shifter Parameters

14 14 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 4-Bit Basic Left/Right Shifter Serial Inputs: –I R for right shift –I L for left shift Serial Outputs –R for right shift (Same as MSB input) –L for left shift (Same as LSB input)  Shift Functions: (S 1, S 0 ) = 00 Pass B unchanged 01 Right shift 10 Left shift 11 Unused B 3 I R I L S Serial output L Serial output R 2 B 2 B 1 B 0 H 0 H 1 H 2 H 3 S M U X 012 S M U X 012 S M U X 012 S M U X 012

15 15 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 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 S: S = 00 position unchanged S = 10 rotate left by 2 positions S = 01 rotate left by 1 positions S = 11 rotate left by 3 positions D 3 S 0 3S 1 S 0 M U X D 2 D 1 D 0 Y 0 Y 1 Y 2 Y 3 S 1 0123S 1 S 0 M U X 0123S 1 S 0 M U X 0123S 1 S 0 M U X 012

16 16 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Datapath Representation Have looked at detailed design of ALU and shifter in the datapath in slide 8 Here we move up one level in the hierarchy from that datapath The registers, and the multiplexer, decoder, and enable hardware for accessing them become a register file The ALU, shifter, Mux F and status hardware become a function unit The remaining muxes and buses which handle data transfers are at the new level of the hierarchy

17 17 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Datapath Representation (continued) 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

18 18 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Boolean Equations: MFS = F 3 F 2 GS i = F i HS i = F i G Select, H and MF in Tof FS Codes Definition of Function Unit Select (FS) Codes

19 19 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 The 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 microinstruction, we apply control word values for a clock cycle. For most microoperations, the positive edge of the clock cycle is needed to perform the register load The datapath control word format and the field definitions are shown on the next slide

20 20 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 The Control Word Fields Fields –DA – D Address –AA – A Address –BA – B Address –MB – Mux B –FS – Function Select –MD – Mux D –RW – Register Write The connections to datapath are shown in the next slide Control word DAAABA M B FS M D R W 1514131211109876543210

21 21 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Control Word Block Diagram

22 22 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 F A Encoding of ControlW DA, AA, BAMBFSMDRW FunctionCodeFunctionCodeFunctionCodeFunctionCodeFunctionCode R0000Register00000Function0No write0 R1001Constant10001Data In1Write1 R20100010 R30110011 R41000100 R51010101 R61100110 R71110111 1000 1001 1010 1011 1100 1101 1110 FA  F A1   B  B1  B  B1  1   B  B  B  F A  F B  FsrB  FslB        Control Word Encoding

23 23 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Microoperations for the Datapath - Symbolic Representation Micro- operationDAAABAMBFSMDRW R1R2R3RegisterFunctionWrite R4—R6RegisterFunctionWrite R7R7—RegisterFunctionWrite R1R0—ConstantFunctionWrite ——R3Register——No Write R4————Data inWrite R5R0R0RegisterFunctionWrite R1R2R3 –  F AB1 + = R4sl R6  FslB = R7R7 1 +  F A1 += R1R0 2 +  F AB += Data outR3  R4Data in  R5 0  F AB  =

24 24 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 mMicrooperations from Ta Binary Coo Microoperations for the Datapath - Binary Representation

25 25 KU College of Engineering Elec 204: Digital Systems Design Lecture 23

26 26 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Pipelined Datapath Concerned about how fast can we execute a single micro-op –Maximum delay values need to be considered –Allowable clock rate will be a function of maximal delay for a single micro-op Pipelined datapath: break the datapath into smaller functional blocks and placed registers between each consecutive blocks

27 27 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Operand-fetch Execute Write-back

28 28 KU College of Engineering Elec 204: Digital Systems Design Lecture 23

29 29 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Execution of pipeline micro-operations


Download ppt "1 KU College of Engineering Elec 204: Digital Systems Design Lecture 23 Introduction Computer Specification –Instruction Set Architecture (ISA) - the specification."

Similar presentations


Ads by Google