Control Transfer and Arithmetic Conditional/Unconditional branches Delayed Control Transfer –Increases the efficiency of pipelining Annulled branches.

Slides:



Advertisements
Similar presentations
STRING AN EXAMPLE OF REFERENCE DATA TYPE. 2 Primitive Data Types  The eight Java primitive data types are:  byte  short  int  long  float  double.
Advertisements

THE SPARC ARCHITECTURE Presented By M. SHAHADAT HOSSAIN NAIEEM TOURZO KHAN SARDER FERDOUS SADIQUE
Review of the MIPS Instruction Set Architecture. RISC Instruction Set Basics All operations on data apply to data in registers and typically change the.
1 ECE462/562 ISA and Datapath Review Ali Akoglu. 2 Instruction Set Architecture A very important abstraction –interface between hardware and low-level.
ECE 232 L6.Assemb.1 Adapted from Patterson 97 ©UCBCopyright 1998 Morgan Kaufmann Publishers ECE 232 Hardware Organization and Design Lecture 6 MIPS Assembly.
SPARC Architecture & Assembly Language
ITCS 3181 Logic and Computer Systems 2015 B. Wilkinson slides3.ppt Modification date: March 16, Addressing Modes The methods used in machine instructions.
1 Today’s lecture  Last lecture we started talking about control flow in MIPS (branches)  Finish up control-flow (branches) in MIPS —if/then —loops —case/switch.
Functions Functions and Parameters. History A function call needs to save the registers in use The called function will use the registers The registers.
Microprocessors General Features To be Examined For Each Chip Jan 24 th, 2002.
Chapter 7: Subroutines Lecture notes to accompany the text book SPARC Architecture, Assembly Language Programming, and C, by Richard P. Paul, 2 nd edition,
MIPS Overview (with comparisons to x86)
CIS429/529 ISA - 1 Instruction Set Architectures Classification Addressing Modes Types of Instructions Encoding Instructions MIPS64 Instruction Set.
S. Barua – CPSC 440 CHAPTER 2 INSTRUCTIONS: LANGUAGE OF THE COMPUTER Goals – To get familiar with.
CIS429.S00: Lec7- 1 Instruction Set Architectures (cont) History Addressing Modes --> Types of Instructions --> Encoding Instructions --> DLX Instruction.
What is an instruction set?
1 RISC Machines l RISC system »instruction –standard, fixed instruction format –single-cycle execution of most instructions –memory access is available.
Pentium Addressing Modes
1 CSC 3210 Computer Organization and Programming Chapter 7 SUBROUTINES D.M. Rasanjalee Himali.
Variables and Data Types
CDA 3101 Fall 2012 Introduction to Computer Organization Instruction Set Architecture MIPS Instruction Format 04 Sept 2013.
The Instruction Set Architecture Level Dept. of Computer Science Virginia Commonwealth University.
Classifying GPR Machines TypeNumber of Operands Memory Operands Examples Register- Register 30 SPARC, MIPS, etc. Register- Memory 21 Intel 80x86, Motorola.
Floating Point Representation for non-integral numbers – Including very small and very large numbers Like scientific notation – –2.34 × –
Natawut NupairojAssembly Language1 Memory and Stack.
CSC 3210 Computer Organization and Programming Chapter 5 THE STACK D.M. Rasanjalee Himali.
Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C Chapter 7 – Subroutines These are lecture notes to accompany the book SPARC Architecture,
Chapter Six Sun SPARC Architecture. SPARC Processor The name SPARC stands for Scalable Processor Architecture SPARC architecture follows the RISC design.
Microprocessors The ia32 User Instruction Set Jan 31st, 2002.
Computer Architecture EKT 422
by Richard P. Paul, 2nd edition, 2000.
ARM (Advanced RISC Machine; initially Acorn RISC Machine) Load/store architecture 65 instructions (all fixed length – one word each = 32 bits) 16 registers.
Crosscutting Issues: The Rôle of Compilers Architects must be aware of current compiler technology Compiler Architecture.
Copyright © – Curt Hill Types What they do.
Lecture 04: Instruction Set Principles Kai Bu
Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C Chapter 8 – Machine Instructions These are lecture notes to accompany the book.
What is a program? A sequence of steps
Addressing Modes. Register Addressing Immediate Addressing Base Addressing Indexed Addressing PC-Relative Addressing.
Department of Electronic & Electrical Engineering Types and Memory Addresses Pointers & and * operators.
MIPS Instruction Set Architecture Prof. Sirer CS 316 Cornell University.
Data Types Always data types will decide which type of information we are storing into variables In C programming language we are having 3 types of basic.
EECS 370 Discussion 1 xkcd.com. EECS 370 Discussion Topics Today: – ARM Addressing Endianness, Loading, and Storing Data – Data Layout Struct Packing.
Arrays in MIPS Assembly Computer Organization and Assembly Language: Module 6.
Instruction Sets. Instruction set It is a list of all instructions that a processor can execute. It is a list of all instructions that a processor can.
The Stack Chapter 5 Lecture notes for SPARC Architecture, Assembly Language Programming and C, Richard P. Paul by Anu G. Bourgeois, Abinashi Dhungel.
Stacks and Frames Memory Stacks Frames Automatic Variables.
©2000 Addison Wesley Little- and big-endian memory organizations.
Objectives A data type is  A set of values AND  A set of operations on those values A data type is used to  Identify the type of a variable when the.
Type of addressing mode
Lecture 4 Monday Sept 9, Variables and Data Types ►A►A►A►A variable is simply a name given by the programmer that is used to refer to computer storage.
Chapter 8 – Machine Instructions
Morgan Kaufmann Publishers Arithmetic for Computers
CPEG323 Quiz 1 Review Long Chen October, 26th, 2005.
The Stack Chapter 5 Lecture notes for SPARC Architecture, Assembly Language Programming and C, Richard P. Paul by Anu G. Bourgeois.
The Cortex-M3/m4 Embedded Systems: Cortex-M3/M4 Instruction Sets
EPSII 59:006 Spring 2004.
Chapter 7 Subroutines Dr. A.P. Preethy
Introduction to Programming
EECE.3170 Microprocessor Systems Design I
FIGURE 9-1 Graph for Example of Conversion from Infix to RPN
Storing Information Each memory cell stores a set number of bits (usually 8 bits, or one byte) (byte addressable)
EECE.3170 Microprocessor Systems Design I
Computer Instructions
Instruction Set Principles
Review In last lecture, done with unsigned and signed number representation. Introduced how to represent real numbers in float format.
C Language B. DHIVYA 17PCA140 II MCA.
Assistant Professor Rabia Koser Dept. of Computer Applications
August 31 addresses Drop box Questions? 31 August 2004
Data in a C++ Program Numeric data and character data
Presentation transcript:

Control Transfer and Arithmetic Conditional/Unconditional branches Delayed Control Transfer –Increases the efficiency of pipelining Annulled branches Usual arithmetic and logical operations

5. Data Types and Addressing Eleven Data Types –unsigned byte (8 bits) to extended precision floating point (128 bit)

SPARC Data Types TypeSize (bits) Corresponding C Data Type Range Unsigned Byte8 unsigned char 0 … 256 Byte8 char –128 … 127 Unsigned Halfword16 unsigned short 0 … Halfword16 short – … Unsigned Word32 unsigned int/long 0 … Word32 int/long – … Doubleword64N/AVery large! Tagged Data30 + 2N/A0 … Single Precision Floating Point 32 float s = 1, e = 8, f = 23 Double Precision Floating Point 64 double s = 1, e = 11, f = 52 Extended Precision Floating Point 128N/As = 1, e = 15, j = 1, f = 63

Registers and Memory Registers –All 32 bits Big-Endian Convention Data Alignment

Addressing Modes Four addressing modes: –Two register –Register + (13-bit) immediate –30-bit PC-relative –22-bit PC-relative

Register Windows save and restore Window over/under flow

Register Windows

Variables Accessed using ld and st –ld [%fp - 4], %l0

Some Useful m4 Macros define(local_vars, `define(last_sym, 0)’) define(var, `$1 = last_sym - $2 & -$2 define(`last_sym’, $1)’) define(begin, `.globalmain main: save%sp, last_sym & -8, %sp’) define(end, `mov1, %g1 t0’)

Using the Macros include(macro_defs.m) local_vars var(x, 4) var(y, 4) begin ld[%fp + x], %l0! l0 <- x st%l0, [%fp + y]! y <- l0 end

Expansion x = & -4 y = x - 4 & -4.global main main: save %sp, y & -8, %sp ld [%fp + x], %l0 ! l0 <- x st %l0, [%fp + y] ! y <- l0 mov 1, %g1 t 0

Global Variables Use data definition pseudo-ops.data ! Start of data segment x:.word 12 ! int x = 12; y:.byte 'a' ! char y = 'a';.align 2 ! Get alignment correct z:.half 0xffff ! short z = 0xffff;.align 4 ! Get alignment correct lst:.skip 4 * 100 ! int lst[100];.text ! Start of program segment...