University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 1 Computer Systems The instruction set architecture.

Slides:



Advertisements
Similar presentations
Microprocessor A microprocessor also called the CPU is the heart of the computer system or any computing device. It is a semiconductor chip which can be.
Advertisements

University of Amsterdam Computer Systems – Control in C Arnoud Visser 1 Computer Systems New to C?
University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 1 Computer Systems The instruction set architecture.
Machine-Level Programming III: Procedures Feb. 8, 2000 Topics IA32 stack Stack-based languages Stack frames Register saving conventions Creating pointers.
University of Washington Procedures and Stacks II The Hardware/Software Interface CSE351 Winter 2013.
Fabián E. Bustamante, Spring 2007 Machine-Level Programming – Introduction Today Assembly programmer’s exec model Accessing information Arithmetic operations.
1 Homework / Exam Turn in mp2 at start of class today Reading –PAL, pp 3-6, Exam #1 next class –Open Book / Open Notes –NO calculators or other.
PC hardware and x86 3/3/08 Frans Kaashoek MIT
1 Function Calls Professor Jennifer Rexford COS 217 Reading: Chapter 4 of “Programming From the Ground Up” (available online from the course Web site)
Lecture 25 Generating Code for Basic Blocks Topics Code Generation Readings: April 19, 2006 CSCE 531 Compiler Construction.
Machine-Level Programming I: Introduction Apr. 14, 2008 Topics Assembly Programmer’s Execution Model Accessing Information Registers Memory Arithmetic.
Compiler Construction
1 Assembly Language: Overview. 2 If you’re a computer, What’s the fastest way to multiply by 5? What’s the fastest way to divide by 5?
1 Machine-Level Programming I: Basics Computer Systems Organization Andrew Case Slides adapted from Jinyang Li, Randy Bryant and Dave O’Hallaron.
6.828: PC hardware and x86 Frans Kaashoek
Y86 Processor State Program Registers
Dr. José M. Reyes Álamo 1.  An assembly language that is easier to understand that regular assembly  Borrow some features from high-level languages.
Processor Architecture: The Y86 Instruction Set Architecture
SE 435 – Distributed Systems Marshalling – Background Principles Version 2.0 Clark Elliott DePaul University.
Introduction CS 104: Applied C++ What is Programming? For some given problem: __________ a solution for it -- identify, organize & store the problem's.
Computer Architecture and Organization Introduction.
Assembly Questions תרגול 12.
EKT 422 Computer Architecture
Introduction 1 (Read Chap. 1) What is Programming? For some given problem: design a solution for it -- identify, organize & store the problem's data --
1 Sequential CPU Implementation. 2 Outline Logic design Organizing Processing into Stages SEQ timing Suggested Reading 4.2,4.3.1 ~
Low Level Programming Lecturer: Duncan Smeed The Interface Between High-Level and Low-Level Languages.
University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 1 Computer Systems The instruction set architecture.
CS642: Computer Security X86 Review Process Layout, ISA, etc. Drew Davidson
Introduction to Intel IA-32 and IA-64 Instruction Set Architectures.
Computer Operation. Binary Codes CPU operates in binary codes Representation of values in binary codes Instructions to CPU in binary codes Addresses in.
IA32 Stack –Region of memory managed with stack discipline –Grows toward lower addresses –Register %esp indicates lowest stack address address of top element.
CPSC 121: Models of Computation
A job ad at a game programming company
CS 177 Computer Security Lecture 9
X86 Assembly - Data.
CPSC 121: Models of Computation
Instruction Set Architecture
Data in Memory variables have multiple attributes symbolic name
Credits and Disclaimers
C function call conventions and the stack
IA32 Processors Evolutionary Design
Credits and Disclaimers
Conditional Branch Example
Aaron Miller David Cohen Spring 2011
Homework In-line Assembly Code Machine Language
Recitation 2 – 2/4/01 Outline Machine Model
Assembly Language Programming V: In-line Assembly Code
Machine-Level Programming II: Arithmetic & Control
Chapter 3 Machine-Level Representation of Programs
Machine-Level Programming 1 Introduction
عمارة الحاسب.
Computer Architecture adapted by Jason Fritts then by David Ferry
Y86 Processor State Program Registers
Instructor: David Ferry
ECEG-3202 Computer Architecture and Organization
Introduction to Intel IA-32 and IA-64 Instruction Set Architectures
Assembly Language Programming II: C Compiler Calling Sequences
Machine-Level Programming 2 Control Flow
Machine-Level Representation of Programs III
Machine-Level Programming I: Introduction
ECEG-3202 Computer Architecture and Organization
X86 Assembly - Data.
Machine-Level Programming: Introduction
Chapter 3 Machine-Level Representation of Programs
C structures and Compilation to IA32
The von Neumann Machine
Credits and Disclaimers
Credits and Disclaimers
Sequential Design תרגול 10.
Compiler Construction CS 606 Sohail Aslam Lecture 1.
Presentation transcript:

University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 1 Computer Systems The instruction set architecture

University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 2 Intel Processors A stable platform for nearly 20 years –8086 (1978) 8 bits –80186 (1980) 8 or 16 bits –80286 (1982) 16 bits –80386 (1985) 32 bits (33 MHz) –Pentium 4 (2001) 32 bits (3.2 GHz)

University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 3 Intel Architecture 32-bit Each processor was designed to be backward compatible Co-processor is been integrated Extra instructions are added for vector manipulation (MMX, SSE) Gcc didn’t use these instructions until version 3.1 (May 2002)

University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 4 ALU is still the core Unit that performs arithmetic / logic operations on two inputs ALUALU Y X X + Y 0 ALUALU Y X X - Y 1 ALUALU Y X X & Y 2 ALUALU Y X X ^ Y 3 A B A B A B A B

University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 5 Basic Knowledge Introduced in ‘Digitale Techniek’

University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 6 Timing For an subtraction, you needed three steps (automated with an sequencer)

University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 7 Micro-instructions The ‘invoer’ is moved from memory to two registers (a,d), followed by operation subl int subtract(int invoer1, int invoer2) { return (invoer1 - invoer2); } _subtract: pushl%ebp movl%esp, %ebp movl12(%ebp), %edx movl8(%ebp), %eax subl%edx, %eax popl%ebp ret Register file ALU Gcc -S

University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 8 Integer Arithmetic Operations Of the 15 operations, we concentrate on 4 (Y86) InstructionEffectDescription addl S,DD ← D + SAdd subl S,DD ← D - SSubtract andl S,DD ← D & SAnd xorl S,DD ← D ^ SExclusive-or Incl DD ← D + 1Increment Sarl k, DD ← D >> kArithmetic right shift

University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 9 Conclusion We understand know how the simplest of subroutines is translated in micro- instructions int subtract(int invoer1, int invoer2) { return (invoer1 - invoer2); } _subtract: pushl%ebp movl%esp, %ebp movl12(%ebp), %edx movl8(%ebp), %eax subl%edx, %eax popl%ebp ret Gcc -S