Chapter 1. Computer Abstractions and Technology. Lesson 3: Understanding Performance

Similar documents
CS3350B Computer Architecture

Chapter 2A Instructions: Language of the Computer

Introduction to the MIPS. Lecture for CPSC 5155 Edward Bosworth, Ph.D. Computer Science Department Columbus State University

Instructions: Language of the Computer

CS3350B Computer Architecture MIPS Introduction

Chapter 2. Instructions: Language of the Computer. Adapted by Paulo Lopes

Announcements HW1 is due on this Friday (Sept 12th) Appendix A is very helpful to HW1. Check out system calls

EECS Computer Organization Fall Based on slides by the author and prof. Mary Jane Irwin of PSU.

Computer Organization MIPS ISA

Chapter 1. Computer Abstractions and Technology

Instructions: MIPS ISA. Chapter 2 Instructions: Language of the Computer 1

Architecture I. Computer Systems Laboratory Sungkyunkwan University

MIPS Instruction Set Architecture (1)

Chapter 2. Instruction Set. RISC vs. CISC Instruction set. The University of Adelaide, School of Computer Science 18 September 2017

Computer Organization and Structure. Bing-Yu Chen National Taiwan University

COMPUTER ORGANIZATION AND DESIGN

EN164: Design of Computing Systems Lecture 09: Processor / ISA 2

Chapter 2. Instructions: Language of the Computer. HW#1: 1.3 all, 1.4 all, 1.6.1, , , , , and Due date: one week.

Math 230 Assembly Programming (AKA Computer Organization) Spring 2008

Unsigned Binary Integers

Unsigned Binary Integers

Chapter 2. Instructions: Language of the Computer

Instructions: Language of the Computer

Lecture 2. Instructions: Language of the Computer (Chapter 2 of the textbook)

ECE 154A Introduction to. Fall 2012

CSEE 3827: Fundamentals of Computer Systems

Instructions: Language of the Computer

Computer Organization and Structure. Bing-Yu Chen National Taiwan University

ECE232: Hardware Organization and Design

CISC 662 Graduate Computer Architecture. Lecture 4 - ISA MIPS ISA. In a CPU. (vonneumann) Processor Organization

Rechnerstrukturen. Chapter 2. Instructions: Language of the Computer

Computer Architecture. Lecture 2 : Instructions

CISC 662 Graduate Computer Architecture. Lecture 4 - ISA

LECTURE 2: INSTRUCTIONS

Chapter 2: Instructions:

CS222: MIPS Instruction Set

ENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design

Chapter 2. Baback Izadi Division of Engineering Programs

MIPS R-format Instructions. Representing Instructions. Hexadecimal. R-format Example. MIPS I-format Example. MIPS I-format Instructions

CS3350B Computer Architecture MIPS Instruction Representation

Computer Architecture

CSCI 402: Computer Architectures

COMPSCI 313 S Computer Organization. 7 MIPS Instruction Set

Stored Program Concept. Instructions: Characteristics of Instruction Set. Architecture Specification. Example of multiple operands

Chapter 4. The Processor. Computer Architecture and IC Design Lab

Computer Architecture Computer Science & Engineering. Chapter 2. Instructions: Language of the Computer BK TP.HCM

ELEC / Computer Architecture and Design Fall 2013 Instruction Set Architecture (Chapter 2)

Machine Language Instructions Introduction. Instructions Words of a language understood by machine. Instruction set Vocabulary of the machine

Today s topics. MIPS operations and operands. MIPS arithmetic. CS/COE1541: Introduction to Computer Architecture. A Review of MIPS ISA.

CS/COE1541: Introduction to Computer Architecture

ECE232: Hardware Organization and Design. Computer Organization - Previously covered

ECE232: Hardware Organization and Design

EN164: Design of Computing Systems Topic 03: Instruction Set Architecture Design

Course Administration

Operations, Operands, and Instructions

CENG3420 Lecture 03 Review

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: MIPS Instruction Set Architecture

Reduced Instruction Set Computer (RISC)

Reduced Instruction Set Computer (RISC)

CSE 141 Computer Architecture Spring Lecture 3 Instruction Set Architecute. Course Schedule. Announcements

CS 4200/5200 Computer Architecture I

Chapter 2. Instructions: Language of the Computer

ECE331: Hardware Organization and Design

Chapter 2. Instruction Set Architecture (ISA)

Computer Architecture

Instruction Set Architectures Part I: From C to MIPS. Readings:

Lecture 4: MIPS Instruction Set

Chapter 3 MIPS Assembly Language. Ó1998 Morgan Kaufmann Publishers 1

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: MIPS Instruction Set Architecture

Chapter 2. Instructions: Language of the Computer. Jiang Jiang

Character Is a byte quantity (00~FF or 0~255) ASCII (American Standard Code for Information Interchange) Page 91, Fig. 2.21

Instruction Set Architecture part 1 (Introduction) Mehran Rezaei

Levels of Programming. Registers

ECE260: Fundamentals of Computer Engineering

Thomas Polzer Institut für Technische Informatik

Control Instructions. Computer Organization Architectures for Embedded Computing. Thursday, 26 September Summary

Control Instructions

Chapter 2. Instructions:

Instructions: MIPS arithmetic. MIPS arithmetic. Chapter 3 : MIPS Downloaded from:

Instruction Set Architecture. "Speaking with the computer"

CSCI 402: Computer Architectures. Instructions: Language of the Computer (3) Fengguang Song Department of Computer & Information Science IUPUI.

CS61C Machine Structures. Lecture 13 - MIPS Instruction Representation I. 9/26/2007 John Wawrzynek. www-inst.eecs.berkeley.

MIPS ISA. 1. Data and Address Size 8-, 16-, 32-, 64-bit 2. Which instructions does the processor support

MIPS%Assembly% E155%

ECE 486/586. Computer Architecture. Lecture # 7

EEC 581 Computer Architecture Lecture 1 Review MIPS

Chapter 4. The Processor

Chapter 2. Instructions: Language of the Computer

ECE369. Chapter 2 ECE369

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 2. Instructions: Language of the Computer

Chapter 2. Instructions: Language of the Computer

Rui Wang, Assistant professor Dept. of Information and Communication Tongji University.

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 2. Instructions: Language of the Computer

Instruction Set. The MIPS Instruction Set. Chapter 2

Chapter 2. lw $s1,100($s2) $s1 = Memory[$s2+100] sw $s1,100($s2) Memory[$s2+100] = $s1

Introduction. Datapath Basics

CS31001 COMPUTER ORGANIZATION AND ARCHITECTURE. Debdeep Mukhopadhyay, CSE, IIT Kharagpur. Instructions and Addressing

Lecture Topics. Announcements. Today: The MIPS ISA (P&H ) Next: continued. Milestone #1 (due 1/26) Milestone #2 (due 2/2)

Lecture 4: Instruction Set Architecture

Communicating with People (2.8)

Transcription:

Chapter 1 Computer Abstractions and Technology Lesson 3: Understanding Performance

Manufacturing ICs 1.7 Real Stuff: The AMD Opteron X4 Yield: proportion of working dies per wafer Chapter 1 Computer Abstractions and Technology 2

AMD Opteron X2 Wafer X2: 300mm wafer, 117 chips, 90nm technology X4: 45nm technology Chapter 1 Computer Abstractions and Technology 3

Integrated Circuit Cost Cost per die = Cost per wafer Dies per wafer Yield Dies per wafer Wafer area Die area Yield = (1+ (Defects per 1 area Die area/2)) 2 Nonlinear relation to area and defect rate Wafer cost and area are fixed Defect rate determined by manufacturing process Die area determined by architecture and circuit design Chapter 1 Computer Abstractions and Technology 4

Pitfall: Amdahl s Law Improving an aspect of a computer and expecting a proportional improvement in overall performance T improvement affected T improved = + factor T unaffected 1.8 Fallacies and Pitfalls Example: "Suppose a program runs in 100 seconds on a machine, with multiply responsible for 80 seconds of this time. 1. How much do we have to improve the speed of multiplication if we want the program to run 4 times faster?

Amdahl's Law To be 4 times faster the program should run in 100/4 seconds (i.e. 25 seconds) 25sec = 20sec + (80sec / n) i.e. n = 80/5 = 16 sec i.e. the multiplication should run in 16 sec. How about making it 5 times faster? 20sec = 20sec + (80sec / n) impossible!!!! Principle: Make the common case fast

Remember Performance is specific to a particular program/s Total execution time is a consistent summary of performance For a given architecture performance increases come from: increases in clock rate (without adverse CPI affects) improvements in processor organization that lower CPI compiler enhancements that lower CPI and/or instruction count Algorithm/Language choices that affect instruction count Pitfall: expecting improvement in one aspect of a machine s performance to affect the total performance

Pitfall: MIPS as a Performance Metric MIPS: Millions of Instructions Per Second Doesn t account for Differences in ISAs between computers Differences in complexity between instructions MIPS = Instruction count Execution time 10 6 = Instruction count Instruction count CPI 10 Clock rate 6 = Clock rate 6 CPI 10 CPI varies between programs on a given CPU Chapter 1 Computer Abstractions and Technology 8

Chapter 2 Instructions: Language of the Computer

Instruction Set The repertoire of instructions of a computer Different computers have different instruction sets But with many aspects in common 2.1 Introduction Early computers had very simple instruction sets Simplified implementation Many modern computers also have simple instruction sets Chapter 2 Instructions: Language of the Computer 10

The MIPS Instruction Set Used as the example throughout the book Stanford MIPS commercialized by MIPS Technologies (www.mips.com) Large share of embedded core market Applications in consumer electronics, network/storage equipment, cameras, printers, Typical of many modern ISAs See MIPS Reference Data tear-out card, and Appendixes B and E Chapter 2 Instructions: Language of the Computer 11

MIPS (RISC) Design Principles Simplicity favors regularity fixed size instructions 32-bits small number of instruction formats opcode always the first 6 bits Good design demands good compromises three instruction formats Smaller is faster limited instruction set limited number of registers in register file limited number of addressing modes Make the common case fast arithmetic operands from the register file (load-store machine) allow instructions to contain immediate operands

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 Design Principle 1: Simplicity favours regularity Regularity makes implementation simpler Simplicity enables higher performance at lower cost 2.2 Operations of the Computer Hardware Chapter 2 Instructions: Language of the Computer 13

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 Chapter 2 Instructions: Language of the Computer 14

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 Design Principle 2: Smaller is faster c.f. main memory: millions of locations Chapter 2 Instructions: Language of the Computer 15

Aside: MIPS Register Convention Name Register Number Usage Preserve on call? $zero 0 constant 0 (hardware) n.a. $at 1 reserved for assembler n.a. $v0 - $v1 2-3 returned values no $a0 - $a3 4-7 arguments yes $t0 - $t7 8-15 temporaries no $s0 - $s7 16-23 saved values yes $t8 - $t9 24-25 temporaries no $gp 28 global pointer yes $sp 29 stack pointer yes $fp 30 frame pointer yes $ra 31 return addr (hardware) yes CS35101 Computer Architecture Fall 2008

MIPS Arithmetic Instructions MIPS assembly language arithmetic statement add $t0, $s1, $s2 sub $t0, $s1, $s2 Each arithmetic instruction performs only one operation Each arithmetic instruction fits in 32 bits and specifies exactly three operands destination source1 op source2 Operand order is fixed (destination first) Those operands are all contained in the datapath s register file ($t0,$s1,$s2) indicated by $

MIPS R3000 Instruction Set Architecture (ISA) Instruction Categories Computational Load/Store Jump and Branch Floating Point coprocessor Memory Management Special Registers R0 - R31 PC HI LO 3 Instruction Formats: all 32 bits wide OP OP OP rs rt rd sa funct rs rt immediate jump target R format I format J format

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 Chapter 2 Instructions: Language of the Computer 20

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 MIPS is Big Endian Most-significant byte at least address of a word c.f. Little Endian: least-significant byte at least address Chapter 2 Instructions: Language of the Computer 21

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) add $s1, $s2, $t0 # load word offset base register Chapter 2 Instructions: Language of the Computer 22

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) add $t0, $s2, $t0 sw $t0, 48($s3) # load word # store word Chapter 2 Instructions: Language of the Computer 23

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! Chapter 2 Instructions: Language of the Computer 24

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 Chapter 2 Instructions: Language of the Computer 25

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 Chapter 2 Instructions: Language of the Computer 26

Review: Unsigned Binary Representation Hex Binary Decimal 0x00000000 0 0000 0 0x00000001 0 0001 1 0x00000002 0 0010 2 0x00000003 0 0011 3 0x00000004 0 0100 4 0x00000005 0 0101 5 0x00000006 0 0110 6 0x00000007 0 0111 7 0x00000008 0 1000 8 0x00000009 0 1001 9 0xFFFFFFFC 1 1100 0xFFFFFFFD 1 1101 2 32-4 2 32-3 0xFFFFFFFE 1 1110 2 32-2 0xFFFFFFFF 1 1111 2 32-1 2 31 2 30 2 29... 2 3 2 2 2 1 2 0 bit weight 31 30 29... 3 2 1 0 bit position 1 1 1... 1 1 1 1 bit 1 0 0 0... 0 0 0 0-1 2 32-1 CS35101 Computer Architecture Fall 2008

Aside: Beyond Numbers American Std Code for Info Interchange (ASCII): 8-bit bytes representing characters ASCII Char ASCII Char ASCII Char ASCII Char ASCII Char ASCII Char 0 Null 32 space 48 0 64 @ 96 ` 112 p 1 33! 49 1 65 A 97 a 113 q 2 34 50 2 66 B 98 b 114 r 3 35 # 51 3 67 C 99 c 115 s 4 EOT 36 $ 52 4 68 D 100 d 116 t 5 37 % 53 5 69 E 101 e 117 u 6 ACK 38 & 54 6 70 F 102 f 118 v 7 39 55 7 71 G 103 g 119 w 8 bksp 40 ( 56 8 72 H 104 h 120 x 9 tab 41 ) 57 9 73 I 105 i 121 y 10 LF 42 * 58 : 74 J 106 j 122 z 11 43 + 59 ; 75 K 107 k 123 { 12 FF 44, 60 < 76 L 108 l 124 15 47 / 63? 79 O 111 o 127 DEL

Unsigned Binary Integers Given an n-bit number x = x + n 1 n 2 1 0 n 12 + xn 22 + + x12 x02 Range: 0 to +2 n 1 Example 2.4 Signed and Unsigned Numbers 0000 0000 0000 0000 0000 0000 0000 1011 2 = 0 + + 1 2 3 + 0 2 2 +1 2 1 +1 2 0 = 0 + + 8 + 0 + 2 + 1 = 11 10 Using 32 bits 0 to +4,294,967,295 Chapter 2 Instructions: Language of the Computer 29

2s-Complement Signed Integers Given an n-bit number x = x + n 1 n 2 1 0 n 12 + xn 22 + + x12 x02 Range: 2 n 1 to +2 n 1 1 Example 1111 1111 1111 1111 1111 1111 1111 1100 2 = 1 2 31 + 1 2 30 + + 1 2 2 +0 2 1 +0 2 0 = 2,147,483,648 + 2,147,483,644 = 4 10 Using 32 bits 2,147,483,648 to +2,147,483,647 Chapter 2 Instructions: Language of the Computer 30

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 Non-negative numbers have the same unsigned and 2s-complement representation Some specific numbers 0: 0000 0000 0000 1: 1111 1111 1111 Most-negative: 1000 0000 0000 Most-positive: 0111 1111 1111

Signed Negation Complement and add 1 Complement means 1 0, 0 1 x + x = 1111...1112 = 1 x + 1= x Example: negate +2 +2 = 0000 0000 0010 2 2 = 1111 1111 1101 2 + 1 = 1111 1111 1110 2 Chapter 2 Instructions: Language of the Computer 32

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 +2: 0000 0010 => 0000 0000 0000 0010 2: 1111 1110 => 1111 1111 1111 1110

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 Chapter 2 Instructions: Language of the Computer 34

MIPS R-format Instructions op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 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) Chapter 2 Instructions: Language of the Computer 35

R-format Example op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits add $t0, $s1, $s2 special $s1 $s2 $t0 0 add 0 17 18 8 0 32 000000 10001 10010 01000 00000 100000 00000010001100100100000000100000 2 = 02324020 16 Chapter 2 Instructions: Language of the Computer 36

Conclusion MIPS as millions of Instructions per second Amdhal s Law MIPS-32 and 64 instruction Set Reading assignment PH, Chapter 2 Next time we continue Ch 2