CS/COE0447 Computer Organization & Assembly Language

Slides:



Advertisements
Similar presentations
CS/COE1541: Introduction to Computer Architecture Datapath and Control Review Sangyeun Cho Computer Science Department University of Pittsburgh.
Advertisements

Pipeline Example: cycle 1 lw R10,9(R1) sub R11,R2, R3 and R12,R4, R5 or R13,R6, R7.
MIPS processor continued. Review Different parts in the processor should be connected appropriately to be able to carry out the functions. Connections.
The Processor: Datapath & Control
Processor II CPSC 321 Andreas Klappenecker. Midterm 1 Tuesday, October 5 Thursday, October 7 Advantage: less material Disadvantage: less preparation time.
Levels in Processor Design
CMPUT Computer Organization and Architecture II1 CMPUT229 - Fall 2003 TopicE: Building a Data Path and a Control Path for a Microprocessor José Nelson.
ENEE350 Ankur Srivastava University of Maryland, College Park Based on Slides from Mary Jane Irwin ( )
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.
Copyright 1998 Morgan Kaufmann Publishers, Inc. All rights reserved. Digital Architectures1 Machine instructions execution steps (1) FETCH = Read the instruction.
The Datapath Andreas Klappenecker CPSC321 Computer Architecture.
The Processor: Datapath & Control. Implementing Instructions Simplified instruction set memory-reference instructions: lw, sw arithmetic-logical instructions:
Chapter 4 Sections 4.1 – 4.4 Appendix D.1 and D.2 Dr. Iyad F. Jafar Basic MIPS Architecture: Single-Cycle Datapath and Control.
COSC 3430 L08 Basic MIPS Architecture.1 COSC 3430 Computer Architecture Lecture 08 Processors Single cycle Datapath PH 3: Sections
Gary MarsdenSlide 1University of Cape Town Chapter 5 - The Processor  Machine Performance factors –Instruction Count, Clock cycle time, Clock cycles per.
1 CS/COE0447 Computer Organization & Assembly Language Multi-Cycle Execution.
CS2100 Computer Organisation The Processor: Datapath (AY2015/6) Semester 1.
Computer Architecture and Design – ECEN 350 Part 6 [Some slides adapted from A. Sprintson, M. Irwin, D. Paterson and others]
1 A single-cycle MIPS processor  An instruction set architecture is an interface that defines the hardware operations which are available to software.
Chapter 4 From: Dr. Iyad F. Jafar Basic MIPS Architecture: Single-Cycle Datapath and Control.
PC Instruction Memory Address Instr. [31-0] 4 Fig 4.6 p 309 Instruction Fetch.
1 CS/COE0447 Computer Organization & Assembly Language Chapter 5 Part 2.
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.
MIPS Processor.
1 CS/COE0447 Computer Organization & Assembly Language Chapter 5 Part 3.
Chapter 4 From: Dr. Iyad F. Jafar Basic MIPS Architecture: Multi-Cycle Datapath and Control.
1 CS/COE0447 Computer Organization & Assembly Language Chapter 5 Part 3.
Computer Architecture Lecture 6.  Our implementation of the MIPS is simplified memory-reference instructions: lw, sw arithmetic-logical instructions:
Single-cycle CPU Control
Access the Instruction from Memory
EE204 Computer Architecture
CS 230: Computer Organization and Assembly Language
Single-Cycle Datapath and Control
Computer Architecture
Single Cycle Processor
MIPS Processor.
CS/COE0447 Computer Organization & Assembly Language
MIPS processor continued
CSCI206 - Computer Organization & Programming
CS/COE0447 Computer Organization & Assembly Language
Single-Cycle CPU DataPath.
CS/COE0447 Computer Organization & Assembly Language
CSCI206 - Computer Organization & Programming
CS/COE0447 Computer Organization & Assembly Language
CS/COE0447 Computer Organization & Assembly Language
CS/COE0447 Computer Organization & Assembly Language
MIPS Processor.
Datapath & Control MIPS
Levels in Processor Design
Topic 5: Processor Architecture Implementation Methodology
Rocky K. C. Chang 6 November 2017
Composing the Elements
Composing the Elements
The Processor Lecture 3.3: Single-cycle Implementation
The Processor Lecture 3.2: Building a Datapath with Control
Topic 5: Processor Architecture
COMS 361 Computer Organization
COSC 2021: Computer Organization Instructor: Dr. Amir Asif
Lecture 14: Single Cycle MIPS Processor
Processor: Multi-Cycle Datapath & Control
Control Unit (single cycle implementation)
MIPS processor continued
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:

CS/COE0447 Computer Organization & Assembly Language Chapter 5 Part 1

Memory reference instructions Arithmetic-logical instructions We will study the datapath and control using only these instructions [similar ideas apply to others] Memory reference instructions lw (load word) and sw (store word) Arithmetic-logical instructions add, sub, and, or, and slt Control-transfer instructions beq (branch if equal) j (unconditional jump)

An Abstract Implementation (fig 5.1) Combinational logic ALU, adder Sequential logic Register file, instruction memory, data memory

Building Blocks (figs 5.7-5.8)

from which instruction Instruction Fetch Instruction width is 4 bytes! PC keeps the current memory address from which instruction is fetched Instruction memory here is read-only!

Instruction Execution lw (load word) Fetch instruction and add 4 to PC lw $t0,-12($t1) Read the base register $t1 Sign-extend the immediate offset fff4  fffffff4 Add two values to get address X = fffffff4 + $t1 Access data memory with the computed address M[X] Store the memory data to the destination register $t0

Memory + R-Instructions (fig 5.10) E.G: lw $t0,8($t1) Load data from memory Imm. offset for address To be in a register!

Instruction Execution sw (store word) Fetch instruction and add 4 to PC sw $t0,-4($t1) Read the base register $t1 Read the source register $t0 Sign-extend the immediate offset fffc  fffffffc Add two values to get address X = fffffffc + $t1 Store the contents of the source register to the computed address $t0  Memory[X]

Memory + R-Instructions (fig 5.10) E.G: sw $t0,-4($t1) Suppose: $t0 = 0x5 $t1 = 0x10010010 $t1 fffc $t0 Add 10010010 1 ? ? NA 1 1001000c 5 5  1001000c 5 fffffffc

Instruction Execution add Fetch instruction and add 4 to PC add $t2,$t1,$t0 Read two source registers $t1 and $t0 Add two values $t1 + $t0 Store result to the destination register $t1 + $t0  $t2

Memory + R-Instructions (fig 5.10) E.G: add $t2,$t1,$t0 Suppose: $t0 = 0x5 $t1 = 0x10 $t1 Add 10 ? $t0 ? 15 5 $t2 15  $t2 15 1 15

Instruction Execution beq Fetch instruction and add 4 to PC beq $t0,$t1,L Assume that L is +3 instructions away Read two source registers $t0,$t1 Sign Extend the immediate, and shift it left by 2 0x0003  0x0000000c Perform the test, and update the PC if it is true If $t0 == $t1, the PC = PC + 0x0000000c [we will follow what Mars does, so this is not Immediate == 0x0002; PC = PC + 4 + 0x00000008]

Branch Datapath (fig. 5.9) Beq $t0,$t1,L stored in 0x10010004, where L is +3 away 0x10010004 [not PC+4 in Mars] 0x10010010 0x0000000c 8 Contents of $t0 ? Sub 9 Contents of $t1 If Zero == 1, then PC = 0x10010010 0x0003 0x00000003

Instruction Execution, cont’d j Fetch instruction and add 4 to PC Take the 26-bit immediate field Shift left by 2 (to make 28-bit immediate) Get 4 bits from the current PC and attach to the left of the immediate Assign the value to PC

Datapath so far (fig 5.11) Warning: This MUX Is not controlled by a single control signal; later slide fixes this j not considered so far!

Instruction Format

More Elaborated Design (fig 5.15) rs rt rd Write register # selection imm Compare: add $t0,$t1,$t2 lw $t0,4($t1) ALU control bits from I[5:0] Funct!

A First Look at Control (fig 5.17) If a branch instruction and Zero == 1 [beq is the only branch in these diagrams] opcode

Control Signals Overview RegDst: which instr. field to use for dst. register specifier? instruction[20:16] vs. instruction[15:11] ALUSrc: which one to use for ALU src 2? immediate vs. register read port 2 MemtoReg: is it memory load? RegWrite: update register? MemRead: read memory? MemWrite: write to memory? Branch: is it a branch? ALUop: what type of ALU operation?