Roadmap C: Java: Assembly language: OS: Machine code: Computer system:

Slides:



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

Instructor: Tor Aamodt
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.
Computer Organization and Assembly language
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
CS 6461: Computer Architecture Fall 2013 History and Trends Instructor: Morris Lancaster.
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 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.
 Introduction to SUN SPARC  What is CISC?  History: CISC  Advantages of CISC  Disadvantages of CISC  RISC vs CISC  Features of SUN SPARC  Architecture.
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.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO CS 219 Computer Organization.
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.
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);
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
Computer Architecture & Operations I
Computer Architecture & Operations I
Topics to be covered Instruction Execution Characteristics
CSC235 Computer Organization & Assembly Language
Machine-Level Programming I: Basics
Assembly Programming I CSE 351 Spring 2017
Computer Organization
Final exam: Wednesday, March 20, 2:30pm
IA32 Processors Evolutionary Design
Roadmap C: Java: Assembly language: OS: Machine code: Computer system:
Today How’s Lab 3 going? HW 3 will be out today
INTRODUCTION TO MICROPROCESSORS
INTRODUCTION TO MICROPROCESSORS
The Hardware/Software Interface CSE351 Winter 2013
INTRODUCTION TO MICROPROCESSORS
عمارة الحاسب.
Announcements VM on the website! Speedometer!
Arrays CSE 351 Winter
Data III & Integers I CSE 351 Winter 2017
Central Processing Unit
Roadmap C: Java: Assembly language: OS: Machine code: Computer system:
Roadmap C: Java: Assembly language: OS: Machine code: Computer system:
x86-64 Assembly CSE 351 Winter 2018 Instructor: Mark Wyse
5.6 Real-World Examples of ISAs
x86-64 Assembly CSE 351 Winter 2018 Instructor: Mark Wyse
Introduction to Microprocessor Programming
What is Computer Architecture?
Evolution of ISA’s ISA’s have changed over computer “generations”.
Course Outline for Computer Architecture
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:

Roadmap C: Java: Assembly language: OS: Machine code: Computer system: Memory & data Integers & floats Machine code & C x86 assembly Procedures & stacks Arrays & structs Memory & caches Processes Virtual memory Memory allocation Java vs. C C: Java: 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(); Assembly language: get_mpg: pushq %rbp movq %rsp, %rbp ... popq %rbp ret OS: Machine code: 0111010000011000 100011010000010000000010 1000100111000010 110000011111101000011111 Computer system: Introduction to ISA

Section 3: Basics of architecture, machine programming What is an ISA (Instruction Set Architecture)? A brief history of Intel processors and architectures C, assembly, machine code x86 basics: registers Introduction to ISA

Translation Code Time Compile Time Run Time User program in C Hardware C compiler Assembler .c file .exe file What makes programs run fast? Introduction to ISA

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 The operating system also matters! Introduction to ISA

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 CPU Memory PC Registers Textbook: “the format and behavior of a machine-level program is defined by the ISA, defining the processor state, the format of the instructions, and the effect each of these instructions will have on the state.” Introduction to ISA

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? Introduction to ISA

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) Introduction to ISA

Intel x86 Evolution: Milestones Name Date Transistors MHz 8086 1978 29K 5-10 First 16-bit processor. Basis for IBM PC & DOS 1MB address space 386 1985 275K 16-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 2005 230M 2800-3800 First 64-bit Intel x86 processor, referred to as x86-64 http://en.wikipedia.org/wiki/List_of_Intel_microprocessors#Pentium_4F_2 Introduction to ISA

Intel x86 Processors Intel Core i7 Machine Evolution Added Features Pentium 1993 3.1M Pentium/MMX 1997 4.5M PentiumPro 1995 6.5M Pentium III 1999 8.2M Pentium 4 2001 42M Core 2 Duo 2006 291M Core i7 2008 731M 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! Introduction to ISA

More information References for Intel processor specifications: Intel’s “automated relational knowledgebase”: http://ark.intel.com/ Wikipedia: http://en.wikipedia.org/wiki/List_of_Intel_microprocessors Introduction to ISA

x86 Clones: Advanced Micro Devices (AMD) 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 Introduction to ISA

Our Coverage IA32 x86-64 The traditional x86 The emerging standard – all lab assignments use x86-64! Introduction to ISA