Evolution of ISAs. Instruction set architectures have changed over computer generations with changes in the

Similar documents
Instruction Set Architecture (ISA)

Instruction Set Principles and Examples. Appendix B

55:132/22C:160, HPCA Spring 2011

Lecture 4: Instruction Set Architecture

Chapter 2: Instructions How we talk to the computer

New Advances in Micro-Processors and computer architectures

Lecture 3 Machine Language. Instructions: Instruction Execution cycle. Speaking computer before voice recognition interfaces

Hakim Weatherspoon CS 3410 Computer Science Cornell University

Instruction Set Architectures

CISC Attributes. E.g. Pentium is considered a modern CISC processor

Instruction Set Architecture. "Speaking with the computer"

Review of instruction set architectures

Instruction Set Principles. (Appendix B)

RISC, CISC, and ISA Variations

EC-801 Advanced Computer Architecture

Alternate definition: Instruction Set Architecture (ISA) What is Computer Architecture? Computer Organization. Computer structure: Von Neumann model

Chapter 13 Reduced Instruction Set Computers

Instruction Set Architecture

Computer Organization CS 206 T Lec# 2: Instruction Sets

RISC Principles. Introduction

Processing Unit CS206T

Lecture 4: Instruction Set Design/Pipelining

Math 230 Assembly Programming (AKA Computer Organization) Spring MIPS Intro

EITF20: Computer Architecture Part2.1.1: Instruction Set Architecture

Computer Architecture

CHAPTER 5 A Closer Look at Instruction Set Architectures

COMPUTER ORGANIZATION & ARCHITECTURE

Typical Processor Execution Cycle

Computer Architecture

CSCE 5610: Computer Architecture

Lecture 4: RISC Computers

Outline. What Makes a Good ISA? Programmability. Implementability

CMSC Computer Architecture Lecture 2: ISA. Prof. Yanjing Li Department of Computer Science University of Chicago

Outline. What Makes a Good ISA? Programmability. Implementability. Programmability Easy to express programs efficiently?

ECE 486/586. Computer Architecture. Lecture # 7

Chapter 5. A Closer Look at Instruction Set Architectures

ARSITEKTUR SISTEM KOMPUTER. Wayan Suparta, PhD 17 April 2018

CHAPTER 5 A Closer Look at Instruction Set Architectures

EITF20: Computer Architecture Part2.1.1: Instruction Set Architecture

Chapter 2. Instruction Set Design. Computer Architectures. software. hardware. Which is easier to change/design??? Tien-Fu Chen

INSTITUTO SUPERIOR TÉCNICO. Architectures for Embedded Computing

CS4617 Computer Architecture

Reduced Instruction Set Computer

Computer Systems Architecture I. CSE 560M Lecture 10 Prof. Patrick Crowley

Real instruction set architectures. Part 2: a representative sample

ASSEMBLY LANGUAGE MACHINE ORGANIZATION

Instruction Set Architectures. Part 1

Page 1. Structure of von Nuemann machine. Instruction Set - the type of Instructions

RISC & Superscalar. COMP 212 Computer Organization & Architecture. COMP 212 Fall Lecture 12. Instruction Pipeline no hazard.

William Stallings Computer Organization and Architecture. Chapter 12 Reduced Instruction Set Computers

Understand the factors involved in instruction set

CHAPTER 5 A Closer Look at Instruction Set Architectures

Lecture 4: RISC Computers

Instruction Set Design

An Overview of ISA (Instruction Set Architecture)

COSC 6385 Computer Architecture. Instruction Set Architectures

CSEE 3827: Fundamentals of Computer Systems

COMPUTER ORGANIZATION & ARCHITECTURE

Instruction Sets Ch 9-10

Computer Hardware Generations

Instruction Sets Ch 9-10

Figure 1-1. A multilevel machine.

From CISC to RISC. CISC Creates the Anti CISC Revolution. RISC "Philosophy" CISC Limitations

Lecture Topics. Announcements. Today: The MIPS ISA (P&H ) Next: continued. Milestone #1 (due 1/26) Milestone #2 (due 2/2)

Chapter 11. Instruction Sets: Addressing Modes and Formats. Yonsei University

CA226 Advanced Computer Architecture

1 5. Addressing Modes COMP2611 Fall 2015 Instruction: Language of the Computer

Instruction Set. Instruction Sets Ch Instruction Representation. Machine Instruction. Instruction Set Design (5) Operation types

Prof. Hakim Weatherspoon CS 3410, Spring 2015 Computer Science Cornell University. See P&H Appendix , and 2.21

Von Neumann architecture. The first computers used a single fixed program (like a numeric calculator).

Instruction Set Architectures. CS301 Prof. Szajda

ECE232: Hardware Organization and Design

Instruction Set Architecture

General Purpose Processors

Microprocessor Architecture Dr. Charles Kim Howard University

Computer Organization

Chapter 5. A Closer Look at Instruction Set Architectures. Chapter 5 Objectives. 5.1 Introduction. 5.2 Instruction Formats

Instruction Sets: Characteristics and Functions Addressing Modes

Chapter 5. A Closer Look at Instruction Set Architectures

ECE 486/586. Computer Architecture. Lecture # 8

Lecture 4: ISA Tradeoffs (Continued) and Single-Cycle Microarchitectures

Chapter 2A Instructions: Language of the Computer

Computer Organization MIPS ISA

Computer Architecture Lecture 3: ISA Tradeoffs. Prof. Onur Mutlu Carnegie Mellon University Spring 2014, 1/17/2014

We briefly explain an instruction cycle now, before proceeding with the details of addressing modes.

Lecture Topics. Branch Condition Options. Branch Conditions ECE 486/586. Computer Architecture. Lecture # 8. Instruction Set Principles.

What is Computer Architecture?

Computer Systems Laboratory Sungkyunkwan University

Instruction Level Parallelism

Addressing Modes. Immediate Direct Indirect Register Register Indirect Displacement (Indexed) Stack

Computer Architecture and Organization. Instruction Sets: Addressing Modes and Formats

Instruction-set Design Issues: what is the ML instruction format(s) ML instruction Opcode Dest. Operand Source Operand 1...

Pipelining, Branch Prediction, Trends

Instruction-set Design Issues: what is the ML instruction format(s) ML instruction Opcode Dest. Operand Source Operand 1...

I ve been getting this a lot lately So, what are you teaching this term? Computer Organization. Do you mean, like keeping your computer in place?

Computer Architecture. MIPS Instruction Set Architecture

CS222: Dr. A. Sahu. Indian Institute of Technology Guwahati

Lecture 04: Machine Instructions

Chapter 5:: Target Machine Architecture (cont.)

ISA and RISCV. CASS 2018 Lavanya Ramapantulu

Transcription:

Evolution of ISAs Instruction set architectures have changed over computer generations with changes in the cost of the hardware density of the hardware design philosophy potential performance gains One way to characterize ISAs: number of addresses/instruction regularity of instruction formats number of addressing modes

Number & Type of Operands/Instruction One address & an implied accumulator register hardware was expensive accumulator architecture: EDSAC (1949) load add store AddressB # accum = Memory[AddressB] AddressC # accum = accum + Memory[AddressC] AddressA # Memory[AddressA]= accum One address & a few special purpose registers extended accumulator (special-purpose register) architecture: Intel 8086 registers for: data addresses segment pointers special, e.g., PC

Number & Type of Operands/Instruction General-purpose registers register-memory architectures one operand is in memory: IBM 360 (1964) add reg10, AddressA memory-memory architectures all operands can be in memory: VAX 780 (1977) add AddressA, AddressB, AddressC load-store architectures CDC 6600 (1963), Cray 1 current RISCs (1982 and on) One address & no registers stack architectures: Burroughs 5000, Intel 8087 use the top of the stack for other, implied operands push AddressC # increment stack pointer # TOS = Memory[AddressB] push AddressB # do it again add # add top 2 locations; result on TOS] pop AddressA # Memory[AddressA] = TOS # decrement stack pointer

Regularity of Instruction Formats Startedwith1format(!) for ease of programming (programming on the binary level!) Then 3 or 4 formats, not necessarily the same length assembly language & compilers made programming easier More formats & encoding of variable length instructions small, low density, expensive memory CPU-to-memory bottleneck ISAs reflected high-level language operations Back to fixed length instructions, few formats memory is large & cheap simple encoding facilitates faster hardware interpretation of instructions

CISC Instruction Formats Lots of instruction formats IBM 360: 5 Intel x86: lots, in part due to lots of addressing modes Digital VAX: also lots orthogonal design: all opcodes can be used with any addressing mode & any information unit Instructions have varying lengths IBM 360: instructions can be 2,4 or 6 bytes Intel x86:, 1 to 17 bytes Digital VAX: 1 to 54 bytes

IBM 360 Formats RR format: r1 <- r1 op r2 [ opcode ][R1][R2] RX format: [ opcode ][R1][X2][B2][displ] r1 <- r1 op mem[x2+b2+displ] RS format: [ opcode ][r1][r3][b2][displ] mem[b2+displ] <- r1 op r3 SI format: [ opcode ][value][b2][displ] mem[b2+displ] <- mem[b2+displ] op value SS format: [ opcode ][count][r1][addr][r2][addr2] mem[addr2+r2+i] <- mem[addr1+r1+i], 0 <=i<count

Addressing Modes Start with immediate, direct, indirect (or deferred) indirect: register contains the address of the operand Then index registers special registers for an array index Then index + base allow the sum of 2 registers to be an address Even more...

VAX Addressing Modes Immediate different addressing modes for constants of different sizes different addressing modes for data and address constants Register: reg the register contains the operand Register deferred: (reg) the register contains the address of the operand Autoincrement: (reg)+ the register contains the address of the operand & is incremented by the size of the operand after it s accessed Autodecrement: -(reg) the address in the register is decremented before the access Autoincrement deferred: @(reg)+ address in the register is a pointer to the address of the operand & is incremented by the size of the operand PC-relative: both regular & deferred

VAX Addressing Modes Displacement: displ(reg) separate addressing modes for each information unit which is stored only in the number of bits needed & then sign extended both regular & deferred Indexed: used in conjunction with other addressing modes the contents of the index register is multiplied by the size of the operand in bytes & added to the contents of the other register register deferred indexed: (reg)[indexreg] autoincrement indexed: (reg)+[indexreg] autodecrement indexed: -(reg)[indexreg] autoincrement deferred indexed: @(reg)+[indexreg] displacement indexed: displ(reg)[indexreg] displacement deferred indexed: {@displ(reg)}[indexreg] add the displacement & the contents of reg to form a pointer to the base address (the address where the base address is stored); the base address is fetched & added to the adjusted index in IndexReg to form the operand address; the operand is then fetched

Intel x86 85% of the microprocessors in the world (not counting embedded processors) Only 8 GPRs (other registers are special purpose) Register-memory architecture 2 operand instructions; 1 is both source & destination Addressing relies on segments (code, stack & static data) String instructions in addition to computation, data transfer, control Condition codes instead of condition registers No regularity in the ISA ISA for 8 bits & an extended ones for 16, 32 & 64 bits Lots of addressing modes (but fewer than the VAX) some can t use certain registers Variable length instructions, variable length opcodes (later) addresses in bytes, not instructions Encoding is complicated (see Figure 3.35)

RISC Vs. CISC RISC general philosophy: simple instructions execute faster than complex instructions less to do fewer choices; therefore it takes less time to decide what is being executed now (smaller circuitry) simplicity leads to regularity in the hardware design easier to get the hardware right & to debug it use simple instructions as building blocks for more complex operations short cycle time & single-cycle instructions; therefore more instructions executed per time unit few instructions, simple instructions few addressing modes fixed-length instructions (32 bits) few instruction formats: (almost) fixed fields within an instruction load/store architecture hardwired control conducive to pipelining because each instruction takes about the same amount of time to execute (later) expose the implementation to the compiler/programmer

RISC Vs. CISC CISC general philosophy: get faster execution by having a better match between the high-level operations & the hardware operations direct execution of one instruction in hardware is faster than many instructions in software tight encoding & fewer instructions => fewer bytes brought in from memory developed when: memory was expensive caching was not so widespread large number of instructions examples: sobgtr for loop indexing search for a substring evaluate a polynomial many addressing modes variable-length instructions

RISC Vs. CISC CISC, cont d. lots of instruction formats; use the same fields for different purposes memory-to-memory architecture microprogrammed control difficult to pipeline because instructions take vastly different amount of time to execute (later) implementation hidden from the compiler/programmer; separation of architecture & implementation

RISC Vs. CISC Why the change to RISC? performance studies showed that: few instructions were used most of the time (VAX study: 15/90%. 26/95%) very complex instructions were never generated increase in technology density instruction caches for loops advances in compiler technology that enabled code to be scheduled to hide operation latencies in a pipeline (later) Bottom line: fast instruction execution, pipelining, compiler support for pipelining, onchip caches, more general-purpose registers more important than encoded instructions & functionality in hardware result: lots of fast instructions executed more quickly than slower, fewer instructions

RISC VS. CISC A comparison is difficult today Pentium Pro hardware translates instructions into uops (very RISC-like micro operations) & pipelines uop execution improvements in implementation that are somewhat architecture-independent superscalar execution (wide issue width) speculative execution out-of-order execution & register renaming branch prediction with 96% accuracy huge on-chip caches multithreading majority of microprocessor market $$$ more engineers on microprocessor design teams & better fabrication lines

MIPS is Not the Only RISC RISC architectures began (again) in the 1980 s in reaction to more complex CISCs Cray & CDC 6600 were early load-store architectures research at IBM on the IBM 801 (the first RISC processor) became the RT/PC RS6000 PowerPC research at Stanford on the MIPS led to MIPS Rxxx research at Berkeley on the RISC I & II led to Sun SPARC processors HP Precision DEC Alphas (the fastest cycle time today)