MIPS Processor.

Slides:



Advertisements
Similar presentations
MIPS processor continued. Review Different parts in the processor should be connected appropriately to be able to carry out the functions. Connections.
Advertisements

331 W08.1Spring :332:331 Computer Architecture and Assembly Language Spring 2006 Week 8: Datapath Design [Adapted from Dave Patterson’s UCB CS152.
The Processor: Datapath & Control
1  1998 Morgan Kaufmann Publishers Chapter Five The Processor: Datapath and Control.
Levels in Processor Design
Lec 17 Nov 2 Chapter 4 – CPU design data path design control logic design single-cycle CPU performance limitations of single cycle CPU multi-cycle CPU.
Computer Structure - Datapath and Control Goal: Design a Datapath  We will design the datapath of a processor that includes a subset of the MIPS instruction.
The Processor 2 Andreas Klappenecker CPSC321 Computer Architecture.
Chapter Five The Processor: Datapath and Control.
COSC 3430 L08 Basic MIPS Architecture.1 COSC 3430 Computer Architecture Lecture 08 Processors Single cycle Datapath PH 3: Sections
Chapter 4 CSF 2009 The processor: Building the datapath.
Processor: Datapath and Control
Gary MarsdenSlide 1University of Cape Town Chapter 5 - The Processor  Machine Performance factors –Instruction Count, Clock cycle time, Clock cycles per.
ECE 445 – Computer Organization
Datapath and Control Unit Design
1 A single-cycle MIPS processor  An instruction set architecture is an interface that defines the hardware operations which are available to software.
D ATA P ATH OF A PROCESSOR (MIPS) Module 1.1 : Elements of computer system UNIT 1.
Chapter 4 From: Dr. Iyad F. Jafar Basic MIPS Architecture: Single-Cycle Datapath and Control.
Datapath and Control AddressInstruction Memory Write Data Reg Addr Register File ALU Data Memory Address Write Data Read Data PC Read Data Read Data.
COM181 Computer Hardware Lecture 6: The MIPs CPU.
Gary MarsdenSlide 1University of Cape Town Computer Architecture – Introduction Andrew Hutchinson & Gary Marsden (me) ( ) September 2003.
MIPS Processor.
MIPS processor continued. Review Different parts in the processor should be connected appropriately to be able to carry out the functions. Connections.
Computer Architecture Lecture 6.  Our implementation of the MIPS is simplified memory-reference instructions: lw, sw arithmetic-logical instructions:
Access the Instruction from Memory
EE204 Computer Architecture
CS161 – Design and Architecture of Computer Systems
Single-Cycle Datapath and Control
Computer Architecture
IT 251 Computer Organization and Architecture
Introduction CPU performance factors
Morgan Kaufmann Publishers The Processor
Morgan Kaufmann Publishers
Processor (I).
CS/COE0447 Computer Organization & Assembly Language
Design of the Control Unit for Single-Cycle Instruction Execution
MIPS processor continued
COSC 2021: Computer Organization Instructor: Dr. Amir Asif
MIPS processor continued
CSCI206 - Computer Organization & Programming
CS/COE0447 Computer Organization & Assembly Language
CSCI206 - Computer Organization & Programming
CSCE 212 Chapter 5 The Processor: Datapath and Control
Single-Cycle CPU DataPath.
CS/COE0447 Computer Organization & Assembly Language
Design of the Control Unit for One-cycle Instruction Execution
CSCI206 - Computer Organization & Programming
MIPS Processor.
Levels in Processor Design
MIPS processor continued
Topic 5: Processor Architecture Implementation Methodology
Rocky K. C. Chang 6 November 2017
Composing the Elements
Composing the Elements
The Processor Lecture 3.2: Building a Datapath with Control
The Processor Lecture 3.1: Introduction & Logic Design Conventions
Topic 5: Processor Architecture
Lecture 9. MIPS Processor Design – Decoding and Execution
COMS 361 Computer Organization
COSC 2021: Computer Organization Instructor: Dr. Amir Asif
COSC 2021: Computer Organization Instructor: Dr. Amir Asif
MIPS processor continued
CS/COE0447 Computer Organization & Assembly Language
Control Unit (single cycle implementation)
The Processor: Datapath & Control.
COMS 361 Computer Organization
MIPS Processor.
Processor: Datapath and Control
CS/COE0447 Computer Organization & Assembly Language
Presentation transcript:

MIPS Processor

In Class Exercise Question Design a 2-bit up-down counter with a control signal U and a control signal R. If U=0, count down, else count up. If R=1, reset counter to 0, else count as appropriate. You don’t have to worry about output, as the value of each bit of output is the same as the value of the counter.

In Class Exercise Answer This counter requires 4 states S0 Counter is at 00, named 00 S1 Counter is at 01, named 01 S2 Counter is at 10, named 10 S3 Counter is at 11, named 11

In Class Exercise Answer U=0, R=0 U=X, R=1 U=1, R=0 U=1, R=0 U=1, R=0 S0 S1 S2 S3 U=0, R=0 U=0, R=0 U=0, R=0 U=X, R=1 U=X, R=1 U=X, R=1 U=1, R=0

Q1 Q0 U R D1 D0 1 0 (X) 1 (X)

In Class Exercise Answer D0 = = ~R &~Q0 Q1Q0 UR 00 01 11 10 00 1 01 11 10

In Class Exercise Answer D1 = = (~Q1 & ~Q0 & ~U & ~R) | (~Q1 & Q1 & U & ~R) | (Q1 & Q0 & ~U & ~R) | (Q1 & ~Q0 & U & ~R) Q1Q0 UR 00 01 11 10 00 1 01 11 10

The Register File In MIPS, there are 32 Registers. In any given instruction, we will need to read up to two registers, and write to up to one register. Think registers as D flip-flops. Each register has 32 Dffs (one for each bit). The data signals are: readReg1, readReg2: 5 bits. Used to specify which register to read. writeReg: 5-bits. Used to specify which register to write. writeData: 32-bits. The value that should be written into the writeRegister. readData1, readData2: 32-bits. The value that will be read out of readRegister1 and readRegister2 The control signals are: RegWrite: whether to write or not.

This is for read.

To write to a register 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’.

RAM

A RAM Example RAM. Data signals: RAM. Control signals: address: 21-bits. If write, which location to write to. If read, which location to read from. Din: 16-bits. The data that should be written into the location specified by the address. Dout: 16-bits. The data that is read out of the location specified by the address RAM. Control signals: 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. 11/8/2007 10:04:17 AM week11-5.ppt

The processor We now know all the parts in the processor. ALU PC Register file Also RAM How to put them together? How to make them execute an instruction as we need?

ALU

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 branching instructions: branch equal and jump 11/18/2007 7:39:36 PM week13-1.ppt

The execution of an instruction First, we need to fetch the instruction at the address given by the current PC from instruction memory Second, we need to decode the instruction Third, we grab the values from the register file Fourth, we need to perform ALU operations on the values Fifth, the output from the ALU goes to back to the register file and/or data memory Sixth, based on the instruction, we need to update the PC in one of two ways For sequential instructions, we then go the next instruction by setting PC = PC + 4. For jump and branch instructions, PC will be changed based off the value from the ALU

MIPS Implementation Overview For every instruction, the first three steps are identical Fetch the instruction from the memory according to the value of the program counter Parse the fields of the instructions using the encodings Read one or two 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 11/18/2007 7:39:36 PM week13-1.ppt

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 11/18/2007 7:39:38 PM week13-1.ppt

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 11/18/2007 7:39:38 PM week13-1.ppt

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? ($t0 == $8) 11/15/2007 5:02:08 PM week-13-3.ppt

Datapath only for R-type instructions

Datapath only for R-type instructions (Answer)

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) They need to compute a memory address by adding the base register to the sign-extended 16-bit offset () 11/15/2007 5:02:10 PM week-13-3.ppt

Load For instruction load $t0, 16($t1), what should the control signal be? RegWrite = 1 ALUOp = add code

Data path Do both lw and sw, and ask for student participation

Data path only for lw (answer)

Data path only for sw (answer)

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 11/18/2007 7:39:42 PM week13-1.ppt

Designing a processor only for beq Are these enough? How many adders do we need? How to do the selection?

Designing a processor only for beq

Designing a processor only for beq (answer) 11/18/2007 7:39:43 PM week13-1.ppt

In class exercise