Top Banner
MIPS Processor
26

MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

Jan 15, 2016

Download

Documents

Melinda Floyd
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: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

MIPS Processor

Page 2: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

Registers in MIPS• In MIPS, there are 32 Registers.• We need read up to two registers, and

write to up to one register.• Think registers as D flip-flops. Each

register has 32 Dffs.• The control signals are:

– readReg1, readReg2: 5 bits. Used to specify which reg to read.

– writeReg: 5-bits. Used to specify which reg to write.

– Data: if write, what data should be written into the reg.

– RegWrite: whether to write or not.

Page 3: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

• This is for read.

Page 4: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

• The data is connected to every register.• Use RegWrite, generate a ``LOAD’’ signal for

the register you want to write to.Every register has a LOAD signal. If that

signal is `1’, new data will be set. Only the target register’s LOAD signal is

`1’.

To write to a register

Page 5: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

RAM

Page 6: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

11/8/2007 10:04:17 AM week11-5.ppt 6

A RAM Example

• RAM. Control signals:– address: If write, which location

to write to. If read, which location to read from.

– Chip select: whether to use this chip or not.

– Output enable: whether to enable output (output some voltage or in high-impedence state)

– Write enable: whether to read or write.

– Din: if write, what data should be written into the location specified by address.

• Assume that there is a RAM with only 2 address lines and two bit data lines. How many bits can it hold?

Page 7: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

The processor

• We now know all the parts in the processor. – ALU– PC– Register fileAlso– RAM

• How to put them together? How to make them execute an instruction as we need?

Page 8: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

ALU

Page 9: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

The execution of an instruction

• First we need to fetch the instruction at the address given by the current PC from instruction memory

• Then we need to decode the instruction• Based on the instruction, we need to do

accordingly• For sequential instructions, we then go the next

instruction by increasing the PC. For jump and branch instructions, PC will be changed

Page 10: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

11/18/2007 7:39:36 PM week13-1.ppt 10

Basic MIPS Implementation

• We will focus on design of a basic MIPS processor that includes a subset of the core MIPS instruction set– The arithmetic-logic instructions add, sub, and, or,

and slt– The memory-reference instructions load word and

store word– The instructions branch equal and jump

Page 11: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.
Page 12: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

11/18/2007 7:39:36 PM week13-1.ppt 12

MIPS Implementation Overview• For every instruction, the first two steps are identical– Fetch the instruction from the memory according to the

value of the program counter– Read one or two registers (using fields of instructions to

select the registers)• For load word, we need to read only one register• Most other instructions (except jump) require we read two

registers

– After the two steps, the actions required depend on the instructions• However, the actions are similar

Page 13: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

11/18/2007 7:39:38 PM week13-1.ppt 13

Instruction Fetch and PC Increment• Since for every instruction, the first step is to fetch

the instruction from memory– In addition, for most instructions, the next instruction will

be at PC + 4

Page 14: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

11/18/2007 7:39:38 PM week13-1.ppt 14

R-type Instructions• Also called arithmetic-logical instructions– Including add, sub, and, or, and slt– Each one reads from two registers, performs an

arithmetic or logical operation on the registers, and then write the result to a register

Page 15: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

11/15/2007 5:02:08 PM week-13-3.ppt 15

R-type Instructions

• Suppose the instruction is add $t0, $t1, $t2, what are the read reg1, read reg2, and write reg? What is the value of RegWrite? How to control the ALU to do add?

Page 16: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

Datapath only for R-type instructions

Page 17: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

Datapath only for R-type instructions (Answer)

Page 18: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

11/15/2007 5:02:10 PM week-13-3.ppt 18

Data Transfer Instructions

• Load word and store word instructions have the following general form– lw $rt, offset_value($rs) • opcode (6 bits) rs (5 bits) rt (5 bits) offset (16 bits)

– sw $rt, offset_value($rs)• opcode (6 bits) rs (5 bits) rt (5 bits) offset (16 bits)

– They need to compute a memory address by adding the base register to the sign-extended 16-bit offset

Page 19: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

Load

• For instruction load $t0, 16($t1), what should the control signal be?

Page 20: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

Data path

Page 21: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

Data path only for lw (answer)

Page 22: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

Data path only for sw (answer)

Page 23: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

11/18/2007 7:39:42 PM week13-1.ppt 23

Branch Instruction

• Beq has three operands, two registers that are compared for equality and a 16-bit offset used to compute the branch-target address– beq $rs, $rt, offset• opcode (6 bits) rs (5 bits) rt (5 bits) offset (16 bits)

– Note that the 16-bit offset is given in terms of instructions, not bytes and is relative to PC + 4

Page 24: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

Designing a processor only for beq

Are these enough? How many adders do we need? How to do the selection?

Page 25: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

Designing a processor only for beq

Page 26: MIPS Processor. Registers in MIPS In MIPS, there are 32 Registers. We need read up to two registers, and write to up to one register. Think registers.

11/18/2007 7:39:43 PM week13-1.ppt 26

Designing a processor only for beq (answer)