Computer Architecture CSCE 350

Slides:



Advertisements
Similar presentations
DAP teaching computer architecture at Berkeley since 1977
Advertisements

CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language.
CpE442 Intro. To Computer Architecture CpE 442 Introduction To Computer Architecture Lecture 1 Instructor: H. H. Ammar These slides are based on the lecture.
CPSC 321 Computer Architecture Fall 2006 Lecture 1 Introduction and Five Components of a Computer Adapted from CS 152 Spring 2002 UC Berkeley Copyright.
Computer Organization and Architecture 18 th March, 2008.
CPSC 321 Computer Architecture Spring 2005 Lecture 1 Introduction and Five Components of a Computer Adapted from CS 152 Spring 2002 UC Berkeley Adapted.
ENGS 116 Lecture 21 Performance and Quantitative Principles Vincent H. Berk September 26 th, 2008 Reading for today: Chapter , Amdahl article.
מבנה מחשבים הרצאה 1 מבנה מחשבים Lecture 1 Course Introduction Eytan Ruppin and Alon Schclar Slides from Randy H. Katz, John Wawrzynek and Dan Garcia Berkeley.
Computer ArchitectureFall 2007 © October 3rd, 2007 Majd F. Sakr CS-447– Computer Architecture.
ECE 232 L2 Basics.1 Adapted from Patterson 97 ©UCBCopyright 1998 Morgan Kaufmann Publishers ECE 232 Hardware Organization and Design Lecture 2 Computer.
CS472 COMPUTER ARCHITECTURE AND ASSEMBLY LANGUAGE –Bruce D’Ambrosio Dearborn, –Text: Computer Organization and Design.
CPEN Digital System Design Chapter 10 – Instruction SET Architecture (ISA) © Logic and Computer Design Fundamentals, 4 rd Ed., Mano Prentice Hall.
EET 4250: Chapter 1 Performance Measurement, Instruction Count & CPI Acknowledgements: Some slides and lecture notes for this course adapted from Prof.
CS / Schlesinger Lec1.1 1/20/99©UCB Spring 1999 Computer Architecture Lecture 1 Introduction and Five Components of a Computer Spring, 1999 Arie Schlesinger.
Lecture 16: Basic CPU Design
CIS 314 : Computer Organization Lecture 1 – Introduction.
ELEN 350 Computer Architecture Spring 2005 Introduction and Five Components of a Computer Adapted from CS 152 Spring 2002 UC Berkeley Adapted from CPSC.
Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI.
CENG311 Computer Architecture Kayhan Erciyes. CS231 Assembly language and Digital Circuits Instructor:Kayhan Erciyes Office:
Department of Computer and Information Science, School of Science, IUPUI Dale Roberts, Lecturer Computer Science, IUPUI CSCI.
Summary: Computer System Components Proc Caches Busses Memory I/O Devices: Controllers adapters Disks Displays Keyboards Networks.
1 CS/COE0447 Computer Organization & Assembly Language Pre-Chapter 2.
Gary MarsdenSlide 1University of Cape Town Computer Architecture – Introduction Andrew Hutchinson & Gary Marsden (me) ( ) 2005.
Cs 152 L1 Intro.1 Patterson Fall 97 ©UCB What is “Computer Architecture” Computer Architecture = Instruction Set Architecture + Machine Organization.
Computer Architecture And Organization UNIT-II Multilevel View Point Of A Machine.
Lecture 1: Performance EEN 312: Processors: Hardware, Software, and Interfacing Department of Electrical and Computer Engineering Spring 2013, Dr. Rozier.
Sogang University Advanced Computing System Chap 1. Computer Architecture Hyuk-Jun Lee, PhD Dept. of Computer Science and Engineering Sogang University.
COMP3221 lec04--prog-model.1 Saeid Nooshabadi COMP 3221 Microprocessors and Embedded Systems Lecture 4: Programmer’s Model of Microprocessors
C OMPUTER O RGANIZATION AND D ESIGN The Hardware/Software Interface 5 th Edition Chapter 1 Computer Abstractions and Technology Sections 1.5 – 1.11.
COSC 3430 L08 Basic MIPS Architecture.1 COSC 3430 Computer Architecture Lecture 08 Processors Single cycle Datapath PH 3: Sections
Computer Organization and Design Computer Abstractions and Technology
Computer Architecture Mehran Rezaei
CS35101 Computer Architecture Spring 2006 Week 1 Slides adapted from: Mary Jane Irwin ( Course url:
Cps-104 Intro.1 ©GK Spring 1999 CPS104 Computer Organization Lecture 1 January 14, 1999 Gershon Kedem Slides available on:
1 CS/COE0447 Computer Organization & Assembly Language CHAPTER 4 Assessing and Understanding Performance.
Chapter 1 Computer Abstractions and Technology. Chapter 1 — Computer Abstractions and Technology — 2 The Computer Revolution Progress in computer technology.
Computer Organization & Assembly Language © by DR. M. Amer.
Computer Architecture CPSC 350
1 Computer Architecture Part II-B: CPU Instruction Set.
Morgan Kaufmann Publishers
CPSC 321 Computer Architecture Summer 2005 Lecture 1 Introduction and Five Components of a Computer Praveen Bhojwani Adapted from CS 152 Spring 2002 UC.
1 chapter 1 Computer Architecture and Design ECE4480/5480 Computer Architecture and Design Department of Electrical and Computer Engineering University.
1  1998 Morgan Kaufmann Publishers How to measure, report, and summarize performance (suorituskyky, tehokkuus)? What factors determine the performance.
TEST 1 – Tuesday March 3 Lectures 1 - 8, Ch 1,2 HW Due Feb 24 –1.4.1 p.60 –1.4.4 p.60 –1.4.6 p.60 –1.5.2 p –1.5.4 p.61 –1.5.5 p.61.
Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO Session 2 Computer Organization.
Introduction Computer Organization Spring 1436/37H (2015/16G) Dr. Mohammed Sinky Computer Architecture
Compsci Today’s topics l Operating Systems  Brookshear, Chapter 3  Great Ideas, Chapter 10  Slides from Kevin Wayne’s COS 126 course l Performance.
EEL5708/Bölöni Lec 3.1 Fall 2004 Sept 1, 2004 Lotzi Bölöni Fall 2004 EEL 5708 High Performance Computer Architecture Lecture 3 Review: Instruction Sets.
Cs 152 L1 Intro.1 Patterson Fall 97 ©UCB CS152 Computer Architecture and Engineering Lecture 1 August 27, 1997 Dave Patterson (http.cs.berkeley.edu/~patterson)
COMPUTER ARCHITECTURE & OPERATIONS I Instructor: Yaohang Li.
1 TM 1 Embedded Systems Lab./Honam University ARM Microprocessor Programming Model.
1 CHAPTER 1 COMPUTER ABSTRACTIONS AND TECHNOLOGY Parts of these notes have been adapter from those of Prof. Professor Mike Schulte, Prof. D. Patterson,
New-School Machine Structures Parallel Requests Assigned to computer e.g., Search “Katz” Parallel Threads Assigned to core e.g., Lookup, Ads Parallel Instructions.
Computer Organization IS F242. Course Objective It aims at understanding and appreciating the computing system’s functional components, their characteristics,
COD Ch. 1 Introduction + The Role of Performance.
Introduction to Computers - Hardware
CpE 442 Introduction to Computer Architecture The Role of Performance
Computer Architecture & Operations I
How do we evaluate computer architectures?
Computer Architecture & Operations I
Architecture & Organization 1
Morgan Kaufmann Publishers
CSCE 212 Chapter 4: Assessing and Understanding Performance
Architecture & Organization 1
T Computer Architecture, Autumn 2005
CMSC 611: Advanced Computer Architecture
COMS 361 Computer Organization
CMSC 611: Advanced Computer Architecture
Chapter 2: Performance CS 447 Jason Bakos Fall 2001 CS 447.
Presentation transcript:

Computer Architecture CSCE 350 Rabi Mahapatra Spring 2017

Course Contents

Course Contents Organization of a computer Assembly language Design of a computer Verilog Future architectures

How does the course fit into the curriculum? CPSC 4xx compiler OS CPSC 483 Computer Sys Design CPSC 350 Computer Architecture ELEN 220 Intro to Digital Design ELEN 248 Intro to DGTL Sym Design

Grading Two exams 55% Assignments and quizzes 10% Lab & Projects 35%

Course Information Labs MIPS (Assembly Programming), Verilog (HDL) Projects Project 1: MIPS Projects 2 & 3: Verilog (Datapath Design) TA & Peer Teacher: TBA

Course Information [contd…] Course Webpage http://courses.cs.tamu.edu/rabi/csce350/index.htmlhttp://people.tamu.edu/~d.dharanidhar/CSCE350_Spring2017_Fellow/SyllabusSpring2017.htm

Computer Architecture Some people define computer architecture as the combination of the instruction set architecture (what the executable can see of the hardware, the functional interface) and the machine organization (how the hardware implements the instruction set architecture)

What is Computer Architecture ? Applications Instruction set architecture Machine organization Operating System Compiler Firmware Instr. Set Proc. I/O system Datapath & Control Digital Design Circuit Design Layout Many levels of abstraction

Factors affecting ISA ??? Technology Cleverness Applications History Programming Languages Applications Computer Architecture Cleverness Operating Systems History

ISA: Critical Interface software instruction set hardware Examples: 80x86 50,000,000 vs. MIPS 5500,000 ???

The Big Picture Since 1946 all computers have had 5 components!!! Processor Input Control Memory Datapath Output Since 1946 all computers have had 5 components!!!

Technology Trends Processor logic capacity: about 30% per year clock rate: about 20% per year Memory DRAM capacity: about 60% per year (4x every 3 years) Memory speed: about 10% per year Cost per bit: improves about 25% per year Disk capacity: about 60% per year Total use of data: 100% per 9 months! Network Bandwidth Bandwidth increasing more than 100% per year!

Technology Trends Microprocessor Logic Density DRAM chip capacity DRAM Year Size 1980 64 Kb 1983 256 Kb 1986 1 Mb 1989 4 Mb 1992 16 Mb 1996 64 Mb 1999 256 Mb 2002 1 Gb In ~1985 the single-chip processor (32-bit) and the single-board computer emerged In the 2002+ timeframe, these may well look like mainframes compared single-chip computer (maybe 2 chips)

Technology Trends Smaller feature sizes – higher speed, density ECE/CS 752; copyright J. E. Smith, 2002 (Univ. of Wisconsin)

Technology Trends Number of transistors doubles every 18 months (amended to 24 months) ECE/CS 752; copyright J. E. Smith, 2002 (Univ. of Wisconsin)

Levels of Representation High Level Language Program temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; Compiler Assembly Language Program lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) Assembler Machine Language Program 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Machine Interpretation Control Signal Specification ALUOP[0:3] <= InstReg[9:11] & MASK

Execution Cycle Instruction Fetch Decode Operand Execute Result Store Next Obtain instruction from program storage Determine required actions and instruction size Locate and obtain operand data Compute result value or status Deposit results in storage for later use Determine successor instruction

What next? How does better technology help to improve performance? How can we quantify the gain? The MIPS architecture MIPS instructions First contact with assembly language programming

The Role of Performance

Performance Response time: time between start and finish of the task (aka execution time) Throughput: total amount of work done in a given time

Question Suppose that we replace the processor in a computer by a faster model Does this improve the response time? How about the throughput?

Question Suppose we add an additional processor to a system that uses separate processors for separate tasks. Does this improve the response time? Does this improve the throughput?

CPU Performance CPU Execution time for a program = CPU Clock Cycles for a program X Clock Cycle time = CPU Clock Cycles for a program / Clock rate

CPU Performance Example A program runs in 10 secs on computer A with a 4 GHz clock. We try to build computer B, that runs this program in 6 secs where computer B requires 1.2 times as many clock cycles as computer A for this program. What clock rate should we target?

CPU Performance CPU clock cycles = instruction count X CPI CPU time = instruction count X CPI X Clock cycle time inst count Cycle time CPI

Cycles Per Instruction (Throughput) “Average Cycles per Instruction” CPI = (CPU Time * Clock Rate) / Instruction Count = Cycles / Instruction Count “Instruction Frequency”

Example: Calculating CPI Base Machine (Reg / Reg) Op Freq Cycles CPI(i) (% Time) ALU 50% 1 .5 (33%) Load 20% 2 .4 (27%) Store 10% 2 .2 (13%) Branch 20% 2 .4 (27%) 1.5 Typical Mix of instruction types in program

" X is n times faster than Y" means Performance (Absolute) Performance Relative Performance " X is n times faster than Y" means n =

MIPS as a performance measure MIPS = Instruction count / (Execution time X 10^6)

Amdahl’s Law The execution time after making an improvement to the system is given by Exec time after improvement = I/A + E I = execution time affected by improvement A = amount of improvement E = execution time unaffected

Amdahl’s Law Suppose that program runs 100 seconds on a machine and multiplication instructions take 80% of the total time. How much do I have to improve the speed of multiplication if I want my program to run 5 times faster? 20 seconds = 80 seconds/n + 20 seconds => it is impossible!