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.
University of Amsterdam Computer Systems – cache characteristics Arnoud Visser 1 Computer Systems Cache characteristics.
Machine-Level Programming III: Procedures Feb. 8, 2000 Topics IA32 stack Stack-based languages Stack frames Register saving conventions Creating pointers.
Fabián E. Bustamante, Spring 2007 Machine-Level Programming – Introduction Today Assembly programmer’s exec model Accessing information Arithmetic operations.
Architecture Chapter 2 - Supplement Additional Features In Chapter 2.
Gnu Debugger (GDB) Topics Overview Quick Reference Card Readings: Quick Reference Card February 7, 2012 CSCE 212Honors Computer Organization.
University of Amsterdam Computer Systems – cache characteristics Arnoud Visser 1 Computer Systems Cache characteristics.
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.
Lecture 22 Code Generation Topics Arrays Code Generation Readings: 9 April 10, 2006 CSCE 531 Compiler Construction.
Compiler Construction
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
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
Assembly תרגול 5 תכנות באסמבלי. Assembly vs. Higher level languages There are NO variables’ type definitions.  All kinds of data are stored in the same.
1 Carnegie Mellon Assembly and Bomb Lab : Introduction to Computer Systems Recitation 4, Sept. 17, 2012.
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.
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
Conditional Branch Example
Homework Reading Labs PAL, pp
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
Machine-Level Programming 2 Control Flow
Machine-Level Representation of Programs III
Machine-Level Programming I: Introduction
ECEG-3202 Computer Architecture and Organization
Homework Reading Machine Projects Labs PAL, pp
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
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 last decades: –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, AVX) 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

University of Amsterdam Computer Systems – the instruction set architecture Arnoud Visser 10 Assignment Practice Problem 3.6 ‘Calculate Word Index’(see Fig. 3.3 page 203) InstructionEffectDescription leal S,DD ← &SLoad effective address