CPS3340 COMPUTER ARCHITECTURE Fall Semester, 2013 10/08/2013 Lecture 10: MIPS Instructor: Ashraf Yaseen DEPARTMENT OF MATH & COMPUTER SCIENCE CENTRAL STATE.

Slides:



Advertisements
Similar presentations
1 Lecture 3: MIPS Instruction Set Today’s topic:  More MIPS instructions  Procedure call/return Reminder: Assignment 1 is on the class web-page (due.
Advertisements

Goal: Write Programs in Assembly
Instruction Set-Intro
Lecture 5: MIPS Instruction Set
1 ECE462/562 ISA and Datapath Review Ali Akoglu. 2 Instruction Set Architecture A very important abstraction –interface between hardware and low-level.
CPS3340 COMPUTER ARCHITECTURE Fall Semester, /15/2013 Lecture 11: MIPS-Conditional Instructions Instructor: Ashraf Yaseen DEPARTMENT OF MATH & COMPUTER.
1 ECE369 ECE369 Chapter 2. 2 ECE369 Instruction Set Architecture A very important abstraction –interface between hardware and low-level software –standardizes.
10/9: Lecture Topics Starting a Program Exercise 3.2 from H+P Review of Assembly Language RISC vs. CISC.
CS1104 – Computer Organization PART 2: Computer Architecture Lecture 5 MIPS ISA & Assembly Language Programming.
ELEN 468 Advanced Logic Design
CS3350B Computer Architecture Winter 2015 Lecture 4
Systems Architecture Lecture 5: MIPS Instruction Set
Chapter 2 Instructions: Language of the Computer
Chapter 2.
Chapter 2 Instructions: Language of the Computer Part III.
ECE 15B Computer Organization Spring 2010 Dmitri Strukov Lecture 4: Arithmetic / Data Transfer Instructions Partially adapted from Computer Organization.
Computer Architecture CPSC 321 E. J. Kim. Overview Logical Instructions Shifts.
S. Barua – CPSC 440 CHAPTER 2 INSTRUCTIONS: LANGUAGE OF THE COMPUTER Goals – To get familiar with.
1 Lecture 2: MIPS Instruction Set Today’s topic:  MIPS instructions Reminder: sign up for the mailing list cs3810 Reminder: set up your CADE accounts.
Lecture 5 Sept 14 Goals: Chapter 2 continued MIPS assembly language instruction formats translating c into MIPS - examples.
Lecture 4 Sept 9 Goals: Amdahl’s law Chapter 2 MIPS assembly language instruction formats translating c into MIPS - examples.
ECE 15B Computer Organization Spring 2010 Dmitri Strukov Lecture 6: Logic/Shift Instructions Partially adapted from Computer Organization and Design, 4.
COMPUTER ARCHITECTURE & OPERATIONS I Instructor: Hao Ji.
CS 300 – Lecture 6 Intro to Computer Architecture / Assembly Language Instructions.
ISA-2 CSCE430/830 MIPS: Case Study of Instruction Set Architecture CSCE430/830 Computer Architecture Instructor: Hong Jiang Courtesy of Prof. Yifeng Zhu.
CMPT 334 Computer Organization Chapter 2 Instructions: Language of the Computer [Adapted from Computer Organization and Design 5 th Edition, Patterson.
CMPT 334 Computer Organization
1  2004 Morgan Kaufmann Publishers Instructions: bne $t4,$t5,Label Next instruction is at Label if $t4≠$t5 beq $t4,$t5,Label Next instruction is at Label.
Lecture Objectives: 1)Define the terms least significant bit and most significant bit. 2)Explain how unsigned integer numbers are represented in memory.
CS224 Fall 2011 Chap 2a Computer Organization CS224 Fall 2011 Chapter 2 a With thanks to M.J. Irwin, D. Patterson, and J. Hennessy for some lecture slide.
Chapter 2 Instructions: Language of the Computer Part I.
IFT 201: Unit 1 Lecture 1.3: Processor Architecture-3
Chapter 2 CSF 2009 The MIPS Assembly Language: Introduction to Binary System.
CHAPTER 6 Instruction Set Architecture 12/7/
Chapter 2 CSF 2009 The MIPS Assembly Language. Stored Program Computers Instructions represented in binary, just like data Instructions and data stored.
Computer Organization CS224 Fall 2012 Lessons 7 and 8.
EET 4250 Instruction Representation & Formats Acknowledgements: Some slides and lecture notes for this course adapted from Prof. Mary Jane Penn.
MIPS Instructions Instructions: Language of the Machine
Chapter 2 — Instructions: Language of the Computer — 1 Memory Operands Main memory used for composite data – Arrays, structures, dynamic data To apply.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO Session 9 Binary Representation and Logical Operations.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO Session 7, 8 Instruction Set Architecture.
CS Computer Organization Numbers and Instructions Dr. Stephen P. Carl.
Chapter 2 Instructions: Language of the Computer.
COMPUTER ARCHITECTURE & OPERATIONS I Instructor: Yaohang Li.
Computer Architecture & Operations I
Computer Architecture & Operations I
MIPS Assembly.
COMPUTER ARCHITECTURE & OPERATIONS I
Instruction Set Architecture
Morgan Kaufmann Publishers
Lecture 4: MIPS Instruction Set
ELEN 468 Advanced Logic Design
The University of Adelaide, School of Computer Science
Computer Architecture (CS 207 D) Instruction Set Architecture ISA
Lecture 4: MIPS Instruction Set
Systems Architecture I (CS ) Lecture 5: MIPS Instruction Set*
CSCI206 - Computer Organization & Programming
The University of Adelaide, School of Computer Science
Systems Architecture Lecture 5: MIPS Instruction Set
Computer Architecture & Operations I
The University of Adelaide, School of Computer Science
ECE232: Hardware Organization and Design
The University of Adelaide, School of Computer Science
Chapter 2 Instructions: Language of the Computer
The University of Adelaide, School of Computer Science
Computer Architecture
UCSD ECE 111 Prof. Farinaz Koushanfar Fall 2018
COMS 361 Computer Organization
MIPS Assembly.
Systems Architecture I (CS ) Lecture 5: MIPS Instruction Set*
Presentation transcript:

CPS3340 COMPUTER ARCHITECTURE Fall Semester, /08/2013 Lecture 10: MIPS Instructor: Ashraf Yaseen DEPARTMENT OF MATH & COMPUTER SCIENCE CENTRAL STATE UNIVERSITY, WILBERFORCE, OH 1

Review  Last Class  Register File  Memory SRAM DRAM  This Class  MIPS Instruction Set  Representation of MIPS Instructions  Next Class  Quiz 2

Instruction Set  Instructions  Program commands that a computer can understand  Instruction Set  The repertoire of instructions of a computer  Different computers have different instruction sets  But with many aspects in common 3 Words Vocabulary

CISC and RISC  CISC (complex instruction set computer)  VAX, Intel X86, IBM 360/370, etc.  RISC (reduced instruction set computer)  MIPS, DEC Alpha, SUN Sparc, IBM RS6000 4

Top 10 x86 Instructions 5

CISC and RISC Today  Boundaries have blurred  Modern CPUs utilize features of both 6

Stored-Program Concept  Stored-Program Concept  Instructions and data of many types can be stored in memory as numbers 7

The MIPS Instruction Set  Used as the example throughout the book  Stanford MIPS commercialized by MIPS Technologies (  Large share of embedded core market  Applications in consumer electronics, network/storage equipment, cameras, printers, …  Power consumption  Heat dissipation 8

Arithmetic Operations  Add and subtract, three operands  Two sources and one destination add a, b, c # a gets b + c  All arithmetic operations have this form §2.2 Operations of the Computer Hardware 9

ISA Design Principle 1: Simplicity favors regularity  Simplicity favors regularity  Regularity makes implementation simpler  Simplicity enables higher performance at lower cost 10

Arithmetic Example  C code: f = (g + h) - (i + j);  Compiled MIPS code: add t0, g, h # temp t0 = g + h add t1, i, j # temp t1 = i + j sub f, t0, t1 # f = t0 - t1 11

More Arithmetic Example  C code: f = g + h + i + j + k;  Compiled MIPS code: add t0, g, h # temp t0 = g + h add t1, t0, i # temp t1 = t0 + i add t2, t1, j # temp t2 = t1 + j add f, t2, k # f = t2 + k Do we really need three registers? 12

Register Operands  Arithmetic instructions use register operands  MIPS has a 32 × 32-bit register file  Use for frequently accessed data  Numbered 0 to 31  32-bit data called a “word”  Assembler names  $t0, $t1, …, $t9 for temporary values  $s0, $s1, …, $s7 for saved variables §2.3 Operands of the Computer Hardware 13

ISA Design Principle 2: Smaller is faster  Design Principle 2: Smaller is faster  c.f. main memory: millions of locations 14

Register Operand Example  C code: f = (g + h) - (i + j);  f,…, j in $s0, …, $s4  Compiled MIPS code: add $t0, $s1, $s2 add $t1, $s3, $s4 sub $s0, $t0, $t1 15

Memory Operands  Main memory used for composite data  Arrays, structures, dynamic data  To apply arithmetic operations  Load values from memory into registers  Store result from register to memory  Memory is byte addressed  Each address identifies an 8-bit byte  Words are aligned in memory  Address must be a multiple of 4 16

Memory Operand Example 1  C code: g = h + A[8];  g in $s1, h in $s2, base address of A in $s3  Compiled MIPS code:  Index 8 requires offset of 32 4 bytes per word lw $t0, 32($s3) # load word add $s1, $s2, $t0 offset base register 17

Memory Operand Example 2  C code: A[12] = h + A[8];  h in $s2, base address of A in $s3  Compiled MIPS code:  Index 8 requires offset of 32 lw $t0, 32($s3) # load word add $t0, $s2, $t0 sw $t0, 48($s3) # store word 18

Registers vs. Memory  Registers are faster to access than memory  Operating on memory data requires loads and stores  More instructions to be executed  Compiler must use registers for variables as much as possible  Only spill to memory for less frequently used variables  Register optimization is important! 19

Immediate Operands  Constant data specified in an instruction addi $s3, $s3, 4  No subtract immediate instruction  Just use a negative constant addi $s2, $s1, -1  Design Principle 3: Make the common case fast  Small constants are common  Immediate operand avoids a load instruction 20

The Constant Zero  MIPS register 0 ($zero) is the constant 0  Cannot be overwritten  Useful for common operations  E.g., move between registers add $t2, $s1, $zero 21

Unsigned Binary Integers  Given an n-bit number Range: 0 to +2 n – 1 Example = 0 + … + 1× ×2 2 +1×2 1 +1×2 0 = 0 + … = Using 32 bits 0 to +4,294,967,295 22

2s-Complement Signed Integers  Given an n-bit number Range: –2 n – 1 to +2 n – 1 – 1 Example = –1× × … + 1×2 2 +0×2 1 +0×2 0 = –2,147,483, ,147,483,644 = –4 10 Using 32 bits –2,147,483,648 to +2,147,483,647 23

2s-Complement Signed Integers  Bit 31 is sign bit  1 for negative numbers  0 for non-negative numbers  2 n – 1 can’t be represented  Some specific numbers  0: … 0000  –1: … 1111  Most-negative: … 0000  Most-positive: …

Signed Negation  Complement and add 1  Complement means 1 → 0, 0 → 1 Example: negate = … –2 = … = …

Sign Extension  Representing a number using more bits  Preserve the numeric value  In MIPS instruction set  addi : extend immediate value  lb, lh : extend loaded byte/halfword  beq, bne : extend the displacement  Replicate the sign bit to the left  c.f. unsigned values: extend with 0s  Examples: 8-bit to 16-bit  +: =>  –: =>

Representing Instructions  Instructions are encoded in binary  Called machine code  MIPS instructions  Encoded as 32-bit instruction words  Small number of formats encoding operation code (opcode), register numbers, …  Regularity!  Register numbers  $t0 – $t7 are reg’s 8 – 15  $t8 – $t9 are reg’s 24 – 25  $s0 – $s7 are reg’s 16 – 23 §2.5 Representing Instructions in the Computer 27

R-Format and I-Format 28

MIPS R-format Instructions  Instruction fields  op: operation code (opcode)  rs: first source register number  rt: second source register number  rd: destination register number  shamt: shift amount (00000 for now)  funct: function code (extends opcode) oprsrtrdshamtfunct 6 bits 5 bits 29

R-format Example add $t0, $s1, $s2 R-format$s1$s2$t00add = oprsrtrdshamtfunct 6 bits 5 bits 30

Hexadecimal  Base 16  Compact representation of bit strings  4 bits per hex digit c d a1010e b1011f1111 Example: eca

MIPS I-format Instructions  Immediate arithmetic and load/store instructions  rt: destination or source register number  Constant: –2 15 to – 1  Address: offset added to base address in rs oprsrtconstant or address 6 bits5 bits 16 bits 32

In Class Exercises  Convert the following MIPS instructions into Machine Instructions ADD $t1, $t2, $t1 ADDI $t5, $s3, 5 LW $t4, 200($s3) 33

In Class Exercises (Answers)  Convert the following MIPS instructions into Machine Instructions ADD $t1, $t2, $t3 R-format$t2$t3$t10add

In Class Exercises (Answers)  Convert the following MIPS instructions into Machine Instructions ADDI $t5, $s3, 5 I-format$s3$t

In Class Exercises (Answers)  Convert the following MIPS instructions into Machine Instructions LW $t4, 200($s3) I-format$s3$t

Design Principle 4: Good design demands good compromises  Different formats complicate decoding, but allow 32-bit instructions uniformly  Keep formats as similar as possible 37

Stored Program Computers  Instructions represented in binary, just like data  Instructions and data stored in memory  Programs can operate on programs  e.g., compilers, linkers, …  Binary compatibility allows compiled programs to work on different computers  Standardized ISAs The BIG Picture 38

Logical Operations  Instructions for bitwise manipulation OperationCJavaMIPS Shift left<< sll Shift right>>>>> srl Bitwise AND&& and, andi Bitwise OR|| or, ori Bitwise NOT~~ nor Useful for extracting and inserting groups of bits in a word §2.6 Logical Operations 39

Shift Operations  shamt: how many positions to shift  Shift left logical  Shift left and fill with 0 bits  sll by i bits multiplies by 2 i  Shift right logical  Shift right and fill with 0 bits  srl by i bits divides by 2 i (unsigned only) oprsrtrdshamtfunct 6 bits 5 bits 40

AND Operations  Useful to mask bits in a word  Select some bits, clear others to 0 and $t0, $t1, $t $t2 $t $t0 41

OR Operations  Useful to include bits in a word  Set some bits to 1, leave others unchanged or $t0, $t1, $t $t2 $t $t0 42

NOT Operations  Useful to invert bits in a word  Change 0 to 1, and 1 to 0  MIPS has NOR 3-operand instruction  a NOR b == NOT ( a OR b ) nor $t0, $t1, $zero $t $t0 Register 0: always read as zero 43

Summary  Instruction and Instruction Set  CISC and RISC  MIPS  Arithmetic Operations  Register Operands  Memory Operands  Immediate Operands  Constant Zero 44

Summary  Binary Integers  Unsigned  Signed  Signed Extension  Representation of MIPS Instructions  R-format  I-format 45

What I want you to do  Review Chapter 2  Prepare for Quiz3 46