University of Washington Roadmap 1 car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Car c = new Car(); c.setMiles(100);

Slides:



Advertisements
Similar presentations
Introduction to Machine/Assembler Language Noah Mendelsohn Tufts University Web:
Advertisements

Instructor: Tor Aamodt
Dr. Ken Hoganson, © August 2014 Programming in R COURSE NOTES 2 Hoganson Language Translation.
Computers Organization & Assembly Language Chapter 1 THE 80x86 MICROPROCESSOR.
University of Washington Instruction Set Architectures ISAs Brief history of processors and architectures C, assembly, machine code Assembly basics: registers,
ECE 109 / CSCI 255 What’s next.
Pentium 4 and IA-32 ISA ELEC 5200/6200 Computer Architecture and Design, Fall 2006 Lectured by Dr. V. Agrawal Lectured by Dr. V. Agrawal Kyungseok Kim.
Instruction Set Architectures
COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) Lecturer: Hui Wu Session.
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
The AMD and Intel Architectures COMP Jamie Curtis.
Computer Organization and Assembly language
Carnegie Mellon 1 Machine-Level Programming I: Basics Lecture, Feb. 14, 2013 These slides are from website which accompanies the.
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?
1 Layers of Computer Science, ISA and uArch Alexander Titov 20 September 2014.
Computer Organization & Assembly Language
Introduction CSE 410, Spring 2008 Computer Systems
CS 6461: Computer Architecture Fall 2013 History and Trends Instructor: Morris Lancaster.
University of Washington Today Lab 5 out  Puts a *lot* together: pointers, debugging, C, etc.
Computers organization & Assembly Language Chapter 0 INTRODUCTION TO COMPUTING Basic Concepts.
University of Washington Roadmap 1 car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Car c = new Car(); c.setMiles(100);
University of Washington Memory and Caches I The Hardware/Software Interface CSE351 Winter 2013.
Computer Organization and Design Computer Abstractions and Technology
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?
University of Washington Today Finished up virtual memory On to memory allocation Lab 3 grades up HW 4 up later today. Lab 5 out (this afternoon): time.
1 Instruction Set Architecture (ISA) Alexander Titov 10/20/2012.
Computer Organization & Assembly Language © by DR. M. Amer.
Ted Pedersen – CS 3011 – Chapter 10 1 A brief history of computer architectures CISC – complex instruction set computing –Intel x86, VAX –Evolved from.
PC hardware and x86 programming Lec 2 Jinyang Li.
Small constants are used quite frequently (50% of operands) e.g., A = A + 5; B = B + 1; C = C - 18; Solutions? Why not? put 'typical constants' in memory.
University of Washington Basics of Machine Programming The Hardware/Software Interface CSE351 Winter 2013.
THE BRIEF HISTORY OF 8085 MICROPROCESSOR & THEIR APPLICATIONS
University of Washington Exceptional Control Flow The Hardware/Software Interface CSE351 Winter 2013.
The Instruction Set Architecture. Hardware – Software boundary Java Program C Program Ada Program Compiler Instruction Set Architecture Microcode Hardware.
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
University of Washington Roadmap 1 car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Car c = new Car(); c.setMiles(100);
University of Washington Today Midterm topics end here. HW 2 is due Wednesday: great midterm review. Lab 3 is posted. Due next Wednesday (July 31)  Time.
University of Washington Today Lab1, how is it going?  Now due on Sunday HW 1 out! (Integer, FP, …) Luis out of town Monday (no class)  Spend the time.
Multi-Core CPUs Matt Kuehn. Roadmap ► Intel vs AMD ► Early multi-core processors ► Threads vs Physical Cores ► Multithreading and Multi-core processing.
Spring 2016Assembly Review Roadmap 1 car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Car c = new Car(); c.setMiles(100);
Introduction CSE 410, Spring 2005 Computer Systems
University of Washington Roadmap 1 car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Car c = new Car(); c.setMiles(100);
Spring 2016Machine Code & C Roadmap 1 car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Car c = new Car(); c.setMiles(100);
Computer Organization and Architecture Lecture 1 : Introduction
Homework Reading Machine Projects Labs Exam Next Class
Computer Architecture & Operations I
Computer Architecture & Operations I
Assembly Programming I CSE 351 Spring 2017
Final exam: Wednesday, March 20, 2:30pm
IA32 Processors Evolutionary Design
Roadmap C: Java: Assembly language: OS: Machine code: Computer system:
Roadmap C: Java: Assembly language: OS: Machine code: Computer system:
Today How’s Lab 3 going? HW 3 will be out today
The Hardware/Software Interface CSE351 Winter 2013
64 BIT COMPUTING By: Kapil Kaushik VIII Sesmester(IT)
Central Processing Unit
Roadmap C: Java: Assembly language: OS: Machine code: Computer system:
5.6 Real-World Examples of ISAs
What is Computer Architecture?
Introduction to Microprocessor Programming
Evolution of ISA’s ISA’s have changed over computer “generations”.
Course Outline for Computer Architecture
Evolution of ISA’s ISA’s have changed over computer “generations”.
Machine-Level Programming I: Basics Comp 21000: Introduction to Computer Organization & Systems Instructor: John Barr * Modified slides from the book.
The von Neumann Machine
Assembly Programming I CSE 351 Spring 2017
Presentation transcript:

University of Washington Roadmap 1 car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Car c = new Car(); c.setMiles(100); c.setGals(17); float mpg = c.getMPG(); get_mpg: pushq %rbp movq %rsp, %rbp... popq %rbp ret Java: C: Assembly language: Machine code: Computer system: OS: Data & addressing Integers & floats Machine code & C x86 assembly programming Procedures & stacks Arrays & structs Memory & caches Processes Virtual memory Memory allocation Java vs. C

University of Washington Basics of Machine Programming and Architecture What is an ISA (Instruction Set Architecture)? A brief history of Intel processors and architectures C, assembly, machine code x86 basics: registers 2

University of Washington 3 What makes programs run fast? Hardware User program in C Assembler C compiler Code TimeCompile TimeRun Time.exe file.c file Translation

University of Washington Translation Impacts Performance The time required to execute a program depends on:  The program (as written in C, for instance)  The compiler: what set of assembler instructions it translates the C program into  The instruction set architecture (ISA): what set of instructions it makes available to the compiler  The hardware implementation: how much time it takes to execute an instruction 4 What should the HW/SW interface contain?

University of Washington Instruction Set Architectures The ISA defines:  The system’s state (e.g. registers, memory, program counter)  The instructions the CPU can execute  The effect that each of these instructions will have on the system state 5 CPU Memory PC Registers

University of Washington General ISA Design Decisions Instructions  What instructions are available? What do they do?  How are they encoded? Registers  How many registers are there?  How wide are they? Memory  How do you specify a memory location? 6

University of Washington x86 Processors that implement the x86 ISA completely dominate the server, desktop and laptop markets Evolutionary design  Backwards compatible up until 8086, introduced in 1978  Added more features as time goes on Complex instruction set computer (CISC)  Many different instructions with many different formats  But, only small subset encountered with Linux programs  (as opposed to Reduced Instruction Set Computers (RISC), which use simpler instructions) 7

University of Washington Intel x86 Evolution: Milestones 8 NameDateTransistorsMHz K5-10  First 16-bit processor. Basis for IBM PC & DOS  1MB address space K16-33  First 32 bit processor, referred to as IA32  Added “flat addressing”  Capable of running Unix  32-bit Linux/gcc targets i386 by default Pentium 4F M  First 64-bit Intel x86 processor, referred to as x86-64

University of Washington Machine Evolution  M  Pentium M  Pentium/MMX M  PentiumPro M  Pentium III M  Pentium M  Core 2 Duo M  Core i M Added Features  Instructions to support multimedia operations  Parallel operations on 1, 2, and 4-byte data  Instructions to enable more efficient conditional operations  More cores! 9 Intel x86 Processors Intel Core i7

University of Washington More information References for Intel processor specifications:  Intel’s “automated relational knowledgebase”:   Wikipedia: 

University of Washington x86 Clones: Advanced Micro Devices (AMD) Same ISA, different implementation Historically  AMD has followed just behind Intel  A little bit slower, a lot cheaper Then  Recruited top circuit designers from Digital Equipment and other downward trending companies  Built Opteron: tough competitor to Pentium 4  Developed x86-64, their own extension of x86 to 64 bits 11

University of Washington Intel’s Transition to 64-Bit Intel attempted radical shift from IA32 to IA64 (2001)  Totally different architecture (Itanium) and ISA than x86  Executes IA32 code only as legacy  Performance disappointing AMD stepped in with evolutionary solution (2003)  x86-64 (also called “AMD64”) Intel felt obligated to focus on IA64  Hard to admit mistake or that AMD is better Intel announces “EM64T” extension to IA32 (2004)  Extended Memory 64-bit Technology  Almost identical to AMD64! Today: all but low-end x86 processors support x86-64  But, lots of code out there is still just IA32 12

University of Washington Our Coverage in 351 IA32  The traditional 32-bit x86 ISA x86-64  The new 64-bit x86 ISA – all lab assignments use x86-64! 13

University of Washington Section meets immediately after lecture in CSE 303. Recording? Lab 1, due Monday HW 1 is up, due Thursday 14