EEL5708/Bölöni Lec 8.1 9/19/03 September, 2003 Lotzi Bölöni Fall 2003 EEL 5708 High Performance Computer Architecture Lecture 5 Intel 80x86.

Slides:



Advertisements
Similar presentations
More Intel machine language and one more look at other architectures.
Advertisements

1 Lecture 3: Instruction Set Architecture ISA types, register usage, memory addressing, endian and alignment, quantitative evaluation.
EECC551 - Shaaban #1 Lec # 2 Fall Instruction Set Architecture (ISA) “... the attributes of a [computing] system as seen by the programmer,
INSTRUCTION SET ARCHITECTURES
There are two types of addressing schemes:
ITCS 3181 Logic and Computer Systems 2015 B. Wilkinson slides3.ppt Modification date: March 16, Addressing Modes The methods used in machine instructions.
CSC 3650 Introduction to Computer Architecture Time: 3:30 to 6:30Meeting Days: WLocation: Oxendine 1237B Textbook: Essentials of Computer Architecture,
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.
CSE378 ISA evolution1 Evolution of ISA’s ISA’s have changed over computer “generations”. A traditional way to look at ISA complexity encompasses: –Number.
COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) Lecturer: Hui Wu Session.
S. Barua – CPSC 440 CHAPTER 2 INSTRUCTIONS: LANGUAGE OF THE COMPUTER Goals – To get familiar with.
Recap.
Pentium Addressing Modes
©UCB CPSC 161 Lecture 5 Prof. L.N. Bhuyan
Part II: Addressing Modes
Lecture 18 Last Lecture Today’s Topic Instruction formats
Parul Polytechnic Institute Subject Code : Name Of Subject : Microprocessor and assembly language programming Name of Unit : Introduction to Microprossor.
CEG 320/520: Computer Organization and Assembly Language ProgrammingIntel Assembly 1 Intel IA-32 vs Motorola
The Pentium Processor.
The Pentium Processor Chapter 3 S. Dandamudi To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer,
The Pentium Processor Chapter 3 S. Dandamudi.
1  2004 Morgan Kaufmann Publishers Instructions: bne $t4,$t5,Label Next instruction is at Label if $t4≠$t5 beq $t4,$t5,Label Next instruction is at Label.
L/O/G/O The Instruction Set Chapter 9 CS.216 Computer Architecture and Organization.
Intel Pentium II Processor Brent Perry Pat Reagan Brian Davis Umesh Vemuri.
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR1 Addressing Mode.
CSC 221 Computer Organization and Assembly Language
Classifying GPR Machines TypeNumber of Operands Memory Operands Examples Register- Register 30 SPARC, MIPS, etc. Register- Memory 21 Intel 80x86, Motorola.
Lecture 4: MIPS Subroutines and x86 Architecture Professor Mike Schulte Computer Architecture ECE 201.
Chapter 5 A Closer Look at Instruction Set Architectures.
Instruction Set Architecture The portion of the machine visible to the programmer Issues: Internal storage model Addressing modes Operations Operands Encoding.
Microprocessors The ia32 User Instruction Set Jan 31st, 2002.
Oct. 25, 2000Systems Architecture I1 Systems Architecture I (CS ) Lecture 9: Alternative Instruction Sets * Jeremy R. Johnson Wed. Oct. 25, 2000.
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.
Chapter 10 Instruction Sets: Characteristics and Functions Felipe Navarro Luis Gomez Collin Brown.
Instruction Sets: Addressing modes and Formats Group #4  Eloy Reyes  Rafael Arevalo  Julio Hernandez  Humood Aljassar Computer Design EEL 4709c Prof:
EEL5708/Bölöni Lec 3.1 Fall 2006 Sept 1, 2006 Lotzi Bölöni EEL 5708 High Performance Computer Architecture Lecture 3 Review: Instruction Sets.
What is a program? A sequence of steps
Introduction to Intel IA-32 and IA-64 Instruction Set Architectures.
Internal Programming Architecture or Model
1 Contents: 3.1 Instruction format and Addressing Modes 3.2 Instruction Introduction Chapter 3 Instruction system.
Computer Science 516 Intel x86 Overview. Intel x86 Family Eight-bit 8080, 8085 – 1970s 16-bit 8086 – was internally 16 bits, externally 8 bits.
EEL 4709C Prof. Watson Herman Group 4 Ali Alshamma, Derek Montgomery, David Ortiz 11/11/2008.
Instruction set Architecture
How objects are located in memory
IA32 Processors Evolutionary Design
Part of the Assembler Language Programmers Toolbox
A Closer Look at Instruction Set Architectures
COMP2121: Microprocessors and Interfacing
A Closer Look at Instruction Set Architectures
Microcomputer Programming
A Closer Look at Instruction Set Architectures: Expanding Opcodes
Basics Of X86 Architecture
University of Gujrat Department of Computer Science
CS170 Computer Organization and Architecture I
These are slides from Comp411
Introduction to Intel IA-32 and IA-64 Instruction Set Architectures
MIPS History MIPS is a computer family
MIPS History MIPS is a computer family
Classification of instructions
A Closer Look at Instruction Set Architectures Chapter 5
Evolution of ISA’s ISA’s have changed over computer “generations”.
Instruction Set Principles
Evolution of ISA’s ISA’s have changed over computer “generations”.
MIPS History MIPS is a computer family
Evolution of ISA’s ISA’s have changed over computer “generations”.
Other Processors Having learnt MIPS, we can learn other major processors. Not going to be able to cover everything; will pick on the interesting aspects.
Evolution of ISA’s ISA’s have changed over computer “generations”.
Computer Organization
Presentation transcript:

EEL5708/Bölöni Lec 8.1 9/19/03 September, 2003 Lotzi Bölöni Fall 2003 EEL 5708 High Performance Computer Architecture Lecture 5 Intel 80x86

EEL5708/Bölöni Lec 8.2 9/19/03 Acknowledgements All the lecture slides were adopted from the slides of David Patterson (1998, 2001) and David E. Culler (2001), Copyright , University of California Berkeley

EEL5708/Bölöni Lec 8.3 9/19/03 Opinions… The x86 isn’t all that complex – it just doesn’t make a lot of sense. Mike Johnson Leader of 80x86 Design at AMD Microprocessor Report (1994) Sour grapes? In the industry “execution” is at least as important as bright ideas Intel, Microsoft: good at execution

EEL5708/Bölöni Lec 8.4 9/19/03 Golden handcuffs 1978 – 8086 assembly language compatible extension of the successful bit microprocessor 1980 – 8087 floating point coprocessor. The architects decided to go with an extended stack architecture (!) 1982 – – new addressing mode (protected), backwards compatibility maintained (real addressing)

EEL5708/Bölöni Lec 8.5 9/19/03 Golden handcuffs (cont’d) 1985 – –Extension to 32 bits. New registers, 32 bit instructions. –New instructions make 386 an almost general purpose register machine. –New addressing mode (segmented addressing) –Backwards compatibility maintained! 1989 – = Pentium, II, III, IV. Only 4 instructions added The basic instruction set seems that it is stabilized.

EEL5708/Bölöni Lec 8.6 9/19/03 Multimedia extensions 1997 – MMX (57 instructions, operating on the existing floating point registers) – SSE (four way single precision 32 bit floating point parallelism on 128 bit registers) 2001 – SSE2 (two way double precision 64 bit parallelism on 128 bit registers). –It allows compilers to use these registers for floating point, instead of the x87 stack architecture

EEL5708/Bölöni Lec 8.7 9/19/03 Register set See figure D.1

EEL5708/Bölöni Lec 8.8 9/19/03 Instruction set Two operand instructions (first operand is also the destination) Allowed combinations: Dest / 1 st operand2 nd operand Register Immediate RegisterMemory Register MemoryImmediate

EEL5708/Bölöni Lec 8.9 9/19/03 Addressing modes Absolute [d] Register indirect [R] Based [Rb+d] Indexed [R+Ri] Based indexed with displacement [R+Ri+d] Based with scaled indexed Based with scaled indexed and displacement [R+(2^I)*Ri+d]

EEL5708/Bölöni Lec /19/03 Segmented addresses Addressing is not absolute: they are relative to segments Original role: to access 20 bit address space with 16 bit registers Now, their main role is memory protection. Segments memory protection modes Four segment registers: CS, DS, SS, ES Every time we address something, we need to make sure which segment we mean (but there are defaults)

EEL5708/Bölöni Lec /19/03 Segmented addressing (cont’d) See figure D.3

EEL5708/Bölöni Lec /19/03 X86 Integer Instructions Data movement instructions: move, push, pop Arithmetic and logic instructions: test, shift, integer, decimal arithmetic Control flow: jumps, branches, calls, returns String instructions: string move, compare

EEL5708/Bölöni Lec /19/03 X86 integer instructions, examples See figure D.4, D.5

EEL5708/Bölöni Lec /19/03 X86 mathematical instructions 80 bit registers, operating like a stack –Loads push numbers on this stack –Operations find operands as top two elements and push result –Stores can pop elements off the stack –There are also some instructions for addressing in the stack Double precision floating point (64 bit) Long integers (64 bit)

EEL5708/Bölöni Lec /19/03 X86 mathematical operations Four classes of instructions Data movement instructions: load, load constant, store Arithmetics: +, -, *, /, square root, absolute value Comparison – sending the result to CPU, to be used in branches Transcendental instructions: sine, cosine, logarithms, exponentiation

EEL5708/Bölöni Lec /19/03 Instruction format Complex, with many different instruction formats Ranges from 1 byte to 17 bytes. Components –Prefixes (repeat, lock, segment override…) –Opcode –Address specifiers –Displacement (8, 16 or 32 bit) –Immediate (8, 16 or 32 bit)

EEL5708/Bölöni Lec /19/03 Comparisons Shortage of general purpose registers Performs about 2-4 times as many memory accesses for floating point than RISC, 1.25 times for integer “Extremely painful addressing scheme” Problem with the floating point scheme (stack is too small). SSE2 fixes this.