Top Banner
Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU
29

Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Jan 19, 2016

Download

Documents

Roxanne Summers
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer ArchitectureLecture 9

MIPS ALU and Data Paths

Ralph GrishmanOct. 2015

NYU

Page 2: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 2

MIPS Instruction Set

• We will build a processor which implements a small subset of the MIPS instruction set

• load word and store word• R-type: add, subtract, and, or, set less than• branch on equal

10/5/15

Page 3: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 3

Two memories

• To make the design simpler, we will build a machine with two memories:

• instruction memory• data memory

– “Harvard architecture”

• Such a design is typical for controllers but not for general-purpose PC’s (Why?)

• It will allow us to do both instruction fetch and execution in a single (long) clock cycle

10/5/15

Page 4: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 4

A sequential machine

• Conceptually, we are still designing a sequential machine:

• But we will design it in pieces, and then put the pieces together

10/5/15

current state next state

output input

Page 5: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 5

The pieces

• We need logic for• instruction fetch• R-type instructions• load word• store word• branch on equal

10/5/15

Page 6: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 6

Instruction fetch

• To fetch instructions in sequence, we need

10/5/15

Page 7: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 7

Instruction fetch

• We will connect them up like so:

10/5/15

Page 8: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 8

R-type instructions

• To implement one R-type instruction, we need• our MIPS register file

– set up for MIPS:two read ports, one write port, 32 32-bit registers

• the logic for this operation (add, sub, and, …)

10/5/15

adder

Page 9: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 9

• How do we set up a circuit which can either do ‘add’ or ‘and’ or ‘or’ … depending on some external signal?

10/5/15

Page 10: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 10

• We use a multiplexer:

10/5/15

multiplexer

add

and

or

S

Page 11: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 11

ALU

• This arrangement for choosing one of the arithmetic or logical operations is termed an Arithmetic-Logic Unit, or ALU

10/5/15

Page 12: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 1212Copyright © 2014 Elsevier Inc. All rights reserved.

FIGURE B.5.6 A 1-bit ALU that performs AND, OR, and addition (see Figure B.5.5).

10/5/15

Page 13: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 1313Copyright © 2014 Elsevier Inc. All rights reserved.

FIGURE B.5.8 A 1-bit ALU that performs AND, OR, and addition on a and b or a and b. By selecting (Binvert 5 1) and setting CarryIn to 1 in the least significant bit of the ALU, we get two’s comple-ment subtraction of b from a instead of addition of b to a.

10/5/15

Page 14: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 1414Copyright © 2014 Elsevier Inc. All rights reserved.

FIGURE B.5.9 A 1-bit ALU that performs AND, OR, and addition on a and b or a and b. By selecting (Ainvert 5 1) and (Binvert 5 1), we get a NOR b instead of a AND b.

10/5/15

Page 15: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 15

R-type instructions

• So we will implement the R-type instructions using• our MIPS register file• an ALU

10/5/15

Page 16: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 16

Data memory

• To implement load word and store word, we must first add a data memory:

10/5/15

Page 17: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 17

registers + ALU + data memory

10/5/15

Page 18: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 18

R-type

10/5/15

Page 19: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 19

Load word

10/5/15

from instr

Page 20: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 20

Store word

10/5/15

from instr

Page 21: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 21

Combining lw, sw, and R-type

• Note the mux-es

10/5/15

Page 22: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 22

Branches

• Branch condition: register equality

• Branch instruction specifies offset relative to address of next instruction

• signed offset (branch forward / backward)• offset in words

10/5/15

Page 23: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 23

Branch logic

10/5/15

Page 24: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 24

Full core MIPS data path

10/5/15

Page 25: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 25

Control Logic

• What’s left: setting the proper control lines for each instruction

• We will do this in two steps• ALU function for each instruction• other control lines for each instruction

10/5/15

Page 26: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 26

ALU Control InputsALU function A invert Binvert Operation

and

or

add

subtract

set less than

nor

10/5/15

Page 27: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 27

ALU Control InputsALU function A invert Binvert Operation

and 0 0 00

or 0 0 01

add 0 0 10

subtract 0 1 10

set less than 0 1 11

nor 1 1 00

10/5/15

Page 28: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 28

ALU functions requiredInstruction ALU function

load word

store word

and

or

add

subtract

set less than

branch on equal

10/5/15

Page 29: Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct. 2015 NYU.

Computer Architecture lecture 9 29

ALU functions requiredInstruction ALU function

load word add

store word add

and and

or or

add add

subtract subtract

set less than set less than

branch on equal subtract

10/5/15