CSE 410: Computer Systems Instructor: David Ely

Slides:



Advertisements
Similar presentations
Slide 1Michael Flynn EE382 Winter/99 EE382 Processor Design Stanford University Winter Quarter Instructor: Michael Flynn Teaching Assistant:
Advertisements

Syllabus Instructor: Dr. Wesam Ashour
Instructor: Tor Aamodt
1 ECE462/562 ISA and Datapath Review Ali Akoglu. 2 Instruction Set Architecture A very important abstraction –interface between hardware and low-level.
CEG3420 L1 Intro.1 Copyright (C) 1998 UCB CEG3420 Computer Design Lecture 1 Philip Leong.
10/9: Lecture Topics Starting a Program Exercise 3.2 from H+P Review of Assembly Language RISC vs. CISC.
Systems Architecture Lecture 5: MIPS Instruction Set
Chapter 2.
Spring 2008, Jan. 14 ELEC / Lecture 2 1 ELEC / Computer Architecture and Design Spring 2007 Introduction Vishwani D. Agrawal.
RISC By Don Nichols. Contents Introduction History Problems with CISC RISC Philosophy Early RISC Modern RISC.
Computer Architecture Instructor: Wen-Hung Liao Office: 大仁樓三樓 Office hours: TBA Course web page:
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.
August 26 TA: Angela Van Osdol Questions?. What is a computer? Tape drives? Big box with lots of lights? Display with huge letters? Little box with no.
ECE 232 L1 Intro.1 Adapted from Patterson 97 ©UCBCopyright 1998 Morgan Kaufmann Publishers ECE 232 Hardware Organization and Design Lecture 1 Introduction.
9/29: Lecture Topics Memory –Addressing (naming) –Address space sizing Data transfer instructions –load/store on arrays on arrays with variable indices.
CENG311 Computer Architecture Kayhan Erciyes. CS231 Assembly language and Digital Circuits Instructor:Kayhan Erciyes Office:
CSE378 Gen. Intro1 Machine Organization and Assembly Language Programming Machine Organization –Hardware-centric view (in this class) –Not at the transistor.
Part 1.  Intel x86/Pentium family  32-bit CISC processor  SUN SPARC and UltraSPARC  32- and 64-bit RISC processors  Java  C  C++  Java  Why Java?
Computer Architecture ECE 4801 Berk Sunar Erkay Savas.
CDA 3101 Fall 2012 Introduction to Computer Organization Instruction Set Architecture MIPS Instruction Format 04 Sept 2013.
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
Introduction CSE 410, Spring 2008 Computer Systems
Fall 2015, Aug 17 ELEC / Lecture 1 1 ELEC / Computer Architecture and Design Fall 2015 Introduction Vishwani D. Agrawal.
1 (Based on text: David A. Patterson & John L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, 3 rd Ed., Morgan Kaufmann,
Part 1.  Intel x86/Pentium family  32-bit CISC processor  SUN SPARC and UltraSPARC  32- and 64-bit RISC processors  Java  C  C++  Java  Why Java?
Computer System Design Lecture 1 Wannarat Suntiamorntut.
by Computer System Design Lecture 1 Wannarat Suntiamorntut
Computer Organization Instructors Course By: Lecturer: Shimaa Ibrahim Hassan TA: Eng: Moufeda Hussien Lecture: 9:45 Address:
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO CS 219 Computer Organization.
Review of the numeration systems The hardware/software representation of the computer and the coverage of that representation by this course. What is the.
ISA's, Compilers, and Assembly
Spring 2016, Jan 13 ELEC / Lecture 1 1 ELEC / Computer Architecture and Design Spring 2016 Introduction Vishwani D. Agrawal.
COMPUTER ORGANIZATION LECTURE 3: ISA YASSER MOHAMMAD.
1 CHAPTER 1 COMPUTER ABSTRACTIONS AND TECHNOLOGY Parts of these notes have been adapter from those of Prof. Professor Mike Schulte, Prof. D. Patterson,
By Wannarat Computer System Design Lecture 1 Wannarat Suntiamorntut.
CS4100: 計算機結構 Course Outline 國立清華大學資訊工程學系 九十九年度第二學期.
Introduction CSE 410, Spring 2005 Computer Systems
© 2015 Pearson Education Limited 2015 Quiz in last 15 minutes Midterm 1 is next Sunday Assignment 1 due today at 4pm Assignment 2 will be up today; due.
Computer Architecture & Operations I
Computer Architecture & Operations I
IT253: Computer Organization
Instruction Set Architecture
CSE 410, Spring 2006 Computer Systems
ISA's, Compilers, and Assembly
INTRODUCTION TO MICROPROCESSORS
RISC Concepts, MIPS ISA Logic Design Tutorial 8.
Prof. Sirer CS 316 Cornell University
INTRODUCTION TO MICROPROCESSORS
MIPS Assembly.
Instructions - Type and Format
Lecture 4: MIPS Instruction Set
Systems Architecture Lecture 5: MIPS Instruction Set
MIPS assembly.
ECE232: Hardware Organization and Design
Morgan Kaufmann Publishers The Processor
August 29 New address for Fang-Yi
MIPS History MIPS is a computer family
Prof. Sirer CS 316 Cornell University
What is Computer Architecture?
What is Computer Architecture?
What is Computer Architecture?
CS4100: 計算機結構 Course Outline
MIPS History MIPS is a computer family
January 16 The books are here. Assignment 1 now due Thursday 18 Jan.
CPU Structure CPU must:
Computer Architecture
9/27: Lecture Topics Memory Data transfer instructions
Lecture 1 Class Overview
ELEC / Computer Architecture and Design Fall 2014 Introduction
CSE378 Introduction to Machine Organization
Presentation transcript:

CSE 410: Computer Systems Instructor: David Ely (ely@cs) Office Hours: Sieg 226D TAs: Jiwon Kim(jwkim@cs) and Tao Xie(taoxie@cs) Office Hours: Jiwon MF 2-3 (Sieg 226A), Tao M 1:30-2:30 and Th 12-1(Sieg 226A) Web page: http://www.cs.washington.edu/410 Mailing List: cse410@cs

Administrative Textbooks Anonymous feedback Architecture component: Computer Organization and Design: The Hardware/Software Interface, 2nd edition. Hennessy and Patterson. Operating Systems: Design And Implementation, Second Edition by Andrew S. Tanenbaum and Albert S. Woodhull Anonymous feedback

More Administrative Schedule (on web page): weeks 1+2: Intro, MIPS assembly week 3+4: Speeding things up (pipelining, the memory hierarchy) Midterm: Monday, October 30th weeks 5-10: Operating systems week 11: Wrap up, review Final: Wednesday, December 13th, 8:30am

Yet More Administrative Grading 9 Homeworks: 40% (drop lowest) Midterm: 25% Final: 35% Homework policy due at the beginning of class on Wednesday no late work accepted preferably typed, neatly written is acceptable high level collaboration only (write names of collaborators on your assignments) Cheating Don’t do it

9/25: Lecture Topics Administrative stuff An overview of computer architecture Organization vs. architecture Levels of abstraction The hierarchy of computer languages Some example architectures An introduction to MIPS

Architecture Overview How do you talk to a computer? What do computers have in them? How do computers execute programs? How can we speed up execution? What are today’s hot topics in architecture?

Computerese Bits = binary digits Instruction = set of bits forming a command People used to write these by hand... 1 1 1 1 1 1 01110101110101001101000110010110

Machine Language is Tedious Writing this is hard Debugging this is impossible 0110100011100110011000110101010101101010110101010101011010100010100001111101010001010100101010101000010010101110010101010100110101010101000101010110101000101010101010100010101011101010101010010101001000000101010100100101010101011100001010100010101001010

Solution #1: Assembly Assembly language is just like machine language, but more comfortable for humans 01110101110101001101000110010110 becomes add A, B

Assembly is Also Tedious Each line corresponds to one instruction Procedure call is a pain Forces the programmer to think like the computer subu $sp,$sp,32 sw $ra,20($sp) sw $fp,16($sp) addu $fp,$sp,28 li $a0,10 jal fact la $a0,$LC move $a1,$v0 jal printf lw $ra,20($sp) lw $fp,16($sp) addu $sp,$sp,32

Sol. #2: High Level Languages Programmer can think more naturally Different languages for different uses Portability Enable software reuse (libraries)

Tower of Babel C program C compiler assembly language assembler for(i=0; i<N; i++) A[i]++; C program C compiler assembly language lw $t0,1200($t1) add $t0,$s2,$t0 sw $t0,1200($t1) assembler machine language 001011011010110011010101110101010101

Organization vs. Architecture Architecture: interface between hardware and software e.g. the instruction set, registers, how to access memory Organization: components and connections e.g. how “mult” is implemented Many organizations for one architecture Intel x86, Pentium, Pentium Pro

Computer Organization level 1 cache control main memory level 2 cache functional units registers PC input/ output the chip system bus

Components of Computers The processor, or the chip, includes: Functional units: logic to manipulate bits Control: logic to control the manipulation Registers and Program Counter (PC) First level cache Second level cache Memory Other devices for input and output: disks, etc.

Instruction Set Architecture (ISA) All of the specifications necessary to program the machine What instructions does the machine understand? How do the instructions need to be formatted into bits? How many registers? How big is memory? How is memory addressed? This should become clearer with MIPS

Architecture Families IBM 360, 370, etc. IBM PowerPC (601, 603, etc.) DEC PDP-11, VAX Intel x86 (80286, 80386, 80486, Pentium, etc.) Motorola 680x0 MIPS Rx000, SGI Sun Sparc Dec Alpha (21x64)

The Bigger Picture high level language program Prog. lang. interface (C, Java) machine program OS interface (system calls) OS ISA interface (e.g. MIPS, Alpha, 80x86) hardware

Instruction Sets An assembly language has a “vocabulary” of commands add, subtract, shift, branch, etc. The set of commands forms the instruction set Computer architects argue about what should be included

RISC vs. CISC Some instruction sets are large and have complex instructions: CISC Complex Instruction Set Computer Other sets are small and have only simple instructions: RISC Reduced Instruction Set Computer More on this after you’ve seen MIPS

MIPS The Instruction Set Architecture (ISA) we’ll be studying A RISC architecture Popular for real life NEC, Nintendo, SGI, Sony Popular for classes like this one reasonably simple and elegant about 100 instructions total

Operations Arithmetic Data transfer Conditional branch Jump add, sub, mult, div Data transfer lw, sw, lb, sb Conditional branch beq, bne, slt Jump j, jr, jal

Arithmetic Operations Desired result: MIPS assembly: a = b + c add a, b, c Conventions: Always three variables Result goes into first variable How do you add up more than two variables? Desired result: MIPS assembly: a = b + c + d ???

More Than Two Variables Desired result: MIPS assembly: a = (b + c) + d add a, b, c add a, a, d Form more complex operations by combining simple ones You can reuse the same variable in more than one place

A Complex Arithmetic Example Desired result: f = (g + h) - (i + j) MIPS assembly:

Registers Variables are a high-level language concept In assembly, we use registers A special place on the chip that can hold a (32-bit) word There are only a few of them They are very fast to access

How Many Registers? MIPS has 32 registers Intel x86 has only 4 or 8 general-purpose registers Why does the number matter? Any data you use has to be in a register If you’re using 5 data items and have 4 registers, that’s a pain

How Many Registers? cont. If registers are so great, why not have lots? space is at a premium the more you have, the less efficient your design they might all get slower it takes more bits to describe which one you mean

MIPS Registers (p. A-23)